MariaDB no Amazon RDS - Amazon Relational Database Service

MariaDB no Amazon RDS

O Amazon RDS oferece suporte a instâncias de banco de dados executando várias versões do MariaDB. Você pode usar as seguintes versões principais:

  • MariaDB 10.6

  • MariaDB 10.5

  • MariaDB 10.4

  • MariaDB 10.3

  • MariaDB 10.2

Para obter mais informações sobre o suporte a versões secundárias, consulte MariaDB em versões do Amazon RDS.

Primeiro, use as ferramentas de gerenciamento ou interfaces do Amazon RDS para criar uma instância de banco de dados MariaDB. Depois, é possível usar as ferramentas do Amazon RDS para executar ações de gerenciamento na instância de banco de dados, como reconfigurar ou redimensionar a instância de banco de dados, autorizar conexões com a instância de banco de dados, criar e restaurar backups ou snapshots, criar Multi-AZ secundários, criar réplicas de leitura e monitorar a performance da instância de banco de dados. Você usa utilitários e aplicativos padrão do MariaDB para armazenar e acessar os dados na instância de banco de dados.

O MariaDB está disponível em todas as regiões AWS. Para obter mais informações sobre as regiões AWS, consulte Regiões, zonas de disponibilidade e Local Zones.

Você pode usar bancos de dados do Amazon RDS for MariaDB para criar aplicativos em conformidade com a norma HIPAA. É possível armazenar informações relacionadas à saúde, inclusive informações de saúde protegidas (PHI), sob um Acordo de associado comercial (BAA) com AWS. Para obter mais informações, consulte Compatibilidade com a HIPAA. AWS Os serviços no escopo foram totalmente avaliados por um auditor terceirizado e resultam em uma certificação, declaração de compatibilidade ou Authority to Operate (ATO). Para obter mais informações, consulte Serviços da AWS no escopo por programa de conformidade.

Antes de criar sua primeira instância de banco de dados, você deve concluir as etapas na seção de configuração deste guia. Para obter mais informações, consulte Configuração do Amazon RDS.

Tarefas comuns de gerenciamento do MariaDB no Amazon RDS

A seguir, você encontra tarefas de gerenciamento comuns que são executadas com uma instância de banco de dados Amazon RDS executando MariaDB, com links para documentação relevante de cada tarefa.

Área de tarefa Documentação relevante

Classes de instância, armazenamento e PIOPS

Se você estiver criando uma instância de banco de dados para fins de produção, deve entender como classes de instâncias, tipos de armazenamento e IOPS provisionadas funcionam no Amazon RDS.

Classes de instância de banco de dados

Tipos de armazenamento do Amazon RDS

Implantações Multi-AZ

Forneça alta disponibilidade com replicação em espera síncrona em uma zona de disponibilidade diferente, failover automático, tolerância a falhas para instâncias de banco de dados usando implantações Multi-AZ e réplicas de leitura.

Implantações Multi-AZ para alta disponibilidade

Amazon Virtual Private Cloud (VPC)

Se a sua conta AWS tiver uma VPC padrão, a instância de banco de dados será criada automaticamente dentro da VPC padrão. Se a sua conta não tiver uma VPC padrão e você quiser a instância de banco de dados em uma VPC, deverá criar os grupos de VPC e sub-redes antes de criar a instância de banco de dados.

Determinar se você está usando a plataforma EC2-VPC ou EC2-Classic

Trabalhar com uma instância de banco de dados em uma VPC

Security Groups (Grupos de segurança

Por padrão, as instâncias de banco de dados são criadas com um firewall que impede o acesso a elas. Você deve criar um grupo de segurança com os endereços IP corretos e uma configuração de rede para acessar a instância de banco de dados. O grupo de segurança criado depende da plataforma do Amazon EC2 na qual a sua instância de banco de dados se encontra e se você acessará sua instância de banco de dados a partir de uma instância do Amazon EC2.

Geralmente, se sua instância de banco de dados encontra-se na plataforma EC2-Classic, será necessário criar um grupo de segurança de banco de dados. Se sua instância de banco de dados encontra-se na plataforma EC2-VPC, será necessário criar um grupo de segurança da VPC.

Determinar se você está usando a plataforma EC2-VPC ou EC2-Classic

Controlar acesso com grupos de segurança

Grupos de parâmetros

Se a sua instância de banco de dados exigir parâmetros de banco de dados específicos, você poderá criar um parameter group antes de criar essa instância de banco de dados.

Trabalhar com grupos de parâmetros

Importação e exportação de dados

Estabeleça procedimentos para importar ou exportar os dados.

Importação de dados para uma instância de banco de dados MariaDB

Replicação

É possível descarregar o tráfego de leitura da instância de banco de dados MariaDB de origem criando réplicas de leitura.

Como trabalhar com réplicas de leitura

Conexão à instância de banco de dados

Conecte-se à sua instância de banco de dados usando um aplicativo de cliente SQL padrão.

Conectar-se a uma instância de banco de dados executando o mecanismo de banco de dados MariaDB

Backup e restauração

Ao criar sua instância de banco de dados, você pode configurá-la para receber backups automáticos. Você também pode fazer backup e restaurar seus bancos de dados manualmente usando arquivos de backup completos (arquivos .bak).

Trabalhar com backups

Monitoramento

Monitore sua instância de banco de dados MariaDB usando métricas, eventos e monitoramento avançado do RDS do Amazon CloudWatch​. Visualize arquivos de log para a sua instância de banco de dados MariaDB.

Visualizar métricas no console do Amazon RDS

Visualizar eventos do Amazon RDS

Arquivos de log

Você pode acessar os arquivos de log de sua instância de banco de dados MariaDB.

Monitorar arquivos de log do Amazon RDS

Arquivos de log do banco de dados MariaDB

Há também tarefas administrativas avançadas para trabalhar com instâncias de banco de dados executando MariaDB. Para obter mais informações, consulte a documentação a seguir:

MariaDB em versões do Amazon RDS

No MariaDB, os números de versão são organizados como versão X.Y.Z. Na terminologia do Amazon RDS, X.Y representa a versão principal, e Z é o número da versão secundária. Para implementações do Amazon RDS, uma alteração da versão é considerada primária se o número da versão primária for alterado, por exemplo, da versão 10.4 para a 10.5. Uma alteração da versão é considerada secundária se apenas o número da versão secundária for alterado, por exemplo, da versão 10.3.20 para a 10.3.23.

O Amazon RDS oferece suporte às seguintes versões do MariaDB no momento:

Versão principal Versão secundária

MariaDB 10.6

  • 10.6.7

  • 10.6.5

MariaDB 10.5

  • 10.5.15

  • 10.5.13

  • 10.5.12

  • 10.5.9

  • 10.5.8

MariaDB 10.4

  • 10.4.24

  • 10.4.22

  • 10.4.21

  • 10.4.18

  • 10.4.13

MariaDB 10.3

  • 10.3.34

  • 10.3.32

  • 10.3.31

  • 10.3.28

  • 10.3.23

  • 10.3.20

  • 10.3.13

  • 10.3.8

MariaDB 10.2

  • 10.2.43

  • 10.2.41

  • 10.2.40

  • 10.2.39

  • 10.2.37

  • 10.2.32

  • 10.2.21

  • 10.2.15

  • 10.2.12

  • 10.2.11

Você pode especificar qualquer versão compatível atualmente do MariaDB ao criar uma nova instância de banco de dados. Você pode especificar a versão principal (como o MariaDB 10.5) e qualquer versão secundária com suporte para a versão principal especificada. Se nenhuma versão for especificada, o Amazon RDS usará uma versão compatível por padrão, geralmente a versão mais recente. Se uma versão principal for especificada, mas uma versão secundária não, o Amazon RDS usará por padrão um lançamento recente da versão principal que você especificou. Para ver uma lista de versões com suporte, bem como os padrões para instâncias de banco de dados recém-criadas, use o comando da AWS CLI describe-db-engine-versions.

A versão padrão do MariaDB pode variar de acordo com a região da AWS. Para criar uma instância de banco de dados com uma versão secundária específica, especifique a versão secundária durante a criação da instância de banco de dados. É possível determinar a versão secundária padrão para uma região da AWS usando o seguinte comando AWS CLI:

aws rds describe-db-engine-versions --default-only --engine mariadb --engine-version major-engine-version --region region --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

Substitua major-engine-version pela versão principal do mecanismo e substitua region pela região da AWS. Por exemplo, o comando da AWS CLI a seguir retorna a versão secundária padrão do mecanismo MariaDB para a versão principal 10.5 e a região da AWS Oeste dos EUA (Oregon) (us-west-2):

aws rds describe-db-engine-versions --default-only --engine mariadb --engine-version 10.5 --region us-west-2 --query "*[].{Engine:Engine,EngineVersion:EngineVersion}" --output text

Suporte ao recurso MariaDB no Amazon RDS

Nas seções a seguir, localize o suporte do recurso MariaDB nas versões principais do Amazon RDS for MariaDB:

Para obter informações sobre versões secundárias compatíveis do Amazon RDS for MariaDB, consulte MariaDB em versões do Amazon RDS.

Compatibilidade do MariaDB 10.6 com o Amazon RDS

O Amazon RDS oferece suporte a estes novos recursos nas instâncias de banco de dados que executam o MariaDB versão 10.6 ou posterior:

  • Mecanismo de armazenamento do MyRocks: você pode usar o mecanismo de armazenamento MyRocks com o RDS for MariaDB para otimizar o consumo de armazenamento de suas aplicações Web de alta performance com uso intenso de gravação. Para obter mais informações, consulte Mecanismos de armazenamento compatíveis com MariaDB no Amazon RDS e MyRocks.

  • Autenticação de banco de dados do IAM: você pode usar a autenticação de banco de dados do IAM para melhorar a segurança e o gerenciamento central de conexões com suas instâncias de banco de dados MariaDB. Para obter mais informações, consulte . Autenticação do banco de dados do IAM para MariaDB, MySQL e PostgreSQL.

  • Opções de atualização: agora você pode atualizar para o RDS for MariaDB versão 10.6 de qualquer versão principal anterior (10.2, 10.3, 10.4, 10.5). Você também pode tirar um snapshot de uma instância de banco de dados MySQL 5.6 ou 5.7 existente e restaurar o snapshot para uma instância MariaDB 10.6. Para obter mais informações, consulte . Atualizar o mecanismo de banco de dados MariaDB.

  • Replicação atrasada: já é possível definir um período configurável pelo qual uma réplica de leitura fica atrasada em relação ao banco de dados de origem. Em uma configuração de replicação padrão do MariaDB, há um atraso mínimo de replicação entre a origem e a réplica. Com a replicação atrasada, é possível definir um atraso intencional como estratégia para a recuperação de desastres. Para obter mais informações, consulte . Configurar a replicação atrasada com o MariaDB.

  • Compatibilidade com o Oracle PL/SQL: usando o RDS for MariaDB versão 10.6, você pode migrar mais facilmente suas aplicações Oracle herdadas para o Amazon RDS. Para obter mais informações, consulte SQL_MODE=ORACLE.

  • DDL atômico: suas instruções Dynamic Data Language (DDL – Linguagem de dados dinâmica) podem ser relativamente seguras contra falhas com o RDS for MariaDB versão 10.6. As instruções CREATE TABLE, ALTER TABLE, RENAME TABLE, DROP TABLE, DROP DATABASE e outras instruções DDL relacionadas agora são atômicas. Se a instrução não for bem-sucedida, ela será totalmente revertida. Para obter mais informações, consulte Atomic DDL (DDL atômica).

  • Outros aprimoramentos: esses aprimoramentos incluem uma função JSON_TABLE para transformar dados JSON em formato relacional dentro do SQL e carregamento de dados de tabela vazia mais rápido com o InnoDB. Eles também incluem um novo sys_schema para análise e solução de problemas, aprimoramento do otimizador para ignorar índices não utilizados e melhorias de performance. Para obter mais informações, consulte JSON_TABLE.

  • Novos valores padrão para parâmetros – os seguintes parâmetros têm novos valores padrão para instâncias de banco de dados MariaDB versão 10.6:

Para obter uma lista de todos os recursos do MariaDB 10.6 e sua respectiva documentação, consulte Changes and improvements in MariaDB 10.6 (Alterações e melhorias no MariaDB 10.6) e Release notes - MariaDB 10.6 series (Notas de lançamento - série MariaDB 10.6) no site do MariaDB.

Para ver uma lista de recursos não compatíveis, consulte Recursos não compatíveis.

Suporte para MariaDB 10.5 no Amazon RDS

O Amazon RDS oferece suporte a estes novos recursos nas instâncias de banco de dados que executam o MariaDB versão 10.5 ou posterior:

  • Melhorias do InnoDB– o MariaDB versão 10.5 inclui melhorias no InnoDB. Para obter mais informações, consulte InnoDB: Performance Improvements etc.

  • Atualizações do esquema de performance – o MariaDB versão 10.5 inclui atualizações do esquema de performance. Para obter mais informações, consulte Performance Schema Updates to Match MySQL 5.7 Instrumentation and Tables.

  • Um arquivo no redo log do InnoDB – nas versões do MariaDB anteriores à versão 10.5, o valor do parâmetro innodb_log_files_in_group foi definido como 2. No MariaDB versão 10.5, o valor desse parâmetro é definido como 1.

    Se você estiver atualizando de uma versão anterior para o MariaDB versão 10.5 e não modificar os parâmetros, o valor do parâmetro innodb_log_file_size será inalterado. No entanto, ele se aplica a um arquivo de log em vez de dois. O resultado é que a instância de banco de dados MariaDB versão 10.5 atualizada usa metade do tamanho do redo log que estava usando antes da atualização. Essa mudança pode ter um impacto notável na performance. Para resolver esse problema, você pode dobrar o valor do parâmetro innodb_log_file_size. Para obter informações sobre como modificar parâmetros, consulte Modificar parâmetros em um grupo de parâmetros de banco de dados.

  • Comando SHOW SLAVE STATUS sem suporte – em versões do MariaDB anteriores à versão 10.5, o comando SHOW SLAVE STATUS exigia o privilégio REPLICATION SLAVE. Na versão 10.5 do MariaDB, o comando SHOW REPLICA STATUS equivalente requer o privilégio REPLICATION REPLICA ADMIN. Esse novo privilégio não é concedido ao usuário mestre do RDS.

    Em vez de usar o comando SHOW REPLICA STATUS, execute o novo procedimento mysql.rds_replica_status armazenado para retornar informações semelhantes. Para obter mais informações, consulte mysql.rds_replica_status.

  • Comando SHOW RELAYLOG EVENTS sem suporte – em versões do MariaDB anteriores à versão 10.5, o comando SHOW RELAYLOG EVENTS exigiu o privilégio REPLICATION SLAVE. Na versão 10.5 do MariaDB, esse comando requer o privilégio REPLICATION REPLICA ADMIN. Esse novo privilégio não é concedido ao usuário mestre do RDS.

  • Novos valores padrão para parâmetros – os seguintes parâmetros têm novos valores padrão para instâncias de banco de dados MariaDB versão 10.5:

Para obter uma lista de todos os recursos do MariaDB 10.5 e suas respectivas documentações, consulte Changes and improvements in MariaDB 10.5 e Release notes - MariaDB 10.5 series no site do MariaDB.

Para ver uma lista de recursos não compatíveis, consulte Recursos não compatíveis.

Suporte para MariaDB 10.4 no Amazon RDS

O Amazon RDS oferece suporte a estes novos recursos nas instâncias de banco de dados executando o MariaDB versão 10.4 ou posterior:

Para obter uma lista de todos os recursos do MariaDB 10.4 e suas respectivas documentações, consulte Changes and improvements in MariaDB 10.4 e Release notes - MariaDB 10.4 series no site do MariaDB.

Para ver uma lista de recursos não compatíveis, consulte Recursos não compatíveis.

Suporte para MariaDB 10.3 no Amazon RDS

O Amazon RDS oferece suporte a estes novos recursos nas instâncias de banco de dados executando a versão 10.3 ou superior do MariaDB:

  • Compatibilidade com Oracle – analisador de compatibilidade do PL/SQL, sequências; INTERSECT e EXCEPT para complementar UNION; novas declarações TYPE OF e ROW TYPE OF e colunas invisíveis

  • Processamento de dados temporais – tabelas com controle de versão pelo sistema para a consulta de estados passados e atuais do banco de dados.

  • Flexibilidade – agregados definidos pelo usuário, compressão de colunas independentemente de armazenamento e suporte a protocolo de proxy para retransmitir o endereço IP do cliente para o servidor

  • Capacidade de gerenciamento – operações ADD COLUMN instantâneas e operações de linguagem de definição de dados (DDL) com notificação imediata de erros (fast-fail).

Para obter uma lista de todos os recursos do MariaDB 10.3 e suas respectivas documentações, consulte Mudanças e aprimoramentos no MariaDB 10.3 e Notas de release – MariaDB série 10.3 no site do MariaDB.

Para ver uma lista de recursos não compatíveis, consulte Recursos não compatíveis.

Suporte para MariaDB 10.2 no Amazon RDS

O Amazon RDS oferece suporte a estes novos recursos nas instâncias de banco de dados executando a versão 10.2 ou superior do MariaDB:

  • ALTER USER

  • Expressões de tabela comuns

  • Compactação de eventos para reduzir o tamanho do log binário

  • CREATE USER — Novas opções para limitar o uso de recursos e TLS/SSL

  • EXECUTE IMMEDIATE

  • Flashback

  • InnoDB — O mecanismo de armazenamento padrão atual em vez do XtraDB

  • InnoDB — Definição dinâmica do tamanho do grupo de buffer

  • Funções JSON

  • Funções de janela

  • WITH

Para obter uma lista de todos os recursos do MariaDB 10.2 e suas respectivas documentações, consulte Mudanças e aprimoramentos no MariaDB 10.2 e Notas de release – MariaDB série 10.2 no site do MariaDB.

Para ver uma lista de recursos não compatíveis, consulte Recursos não compatíveis.

Recursos não compatíveis

Os seguintes recursos do MariaDB não têm suporte no Amazon RDS:

  • Mecanismo de armazenamento do S3

  • Plug-in de autenticação – GSSAPI

  • Plug-in de autenticação – soquete Unix

  • AWSPlugin de criptografia do Key Management

  • Replicação atrasada para versões do MariaDB anteriores à 10.6

  • Criptografia nativa do MariaDB em repouso para InnoDB e Aria.

    Você pode habilitar a criptografia em repouso para uma instância de banco de dados do MariaDB seguindo as instruções em Criptografar recursos do Amazon RDS.

  • HandlerSocket

  • Tipo de tabela JSON para versões do MariaDB anteriores à 10.6

  • MariaDB ColumnStore

  • Cluster Galera do MariaDB

  • Replicação em várias origens

  • Mecanismo de armazenamento MyRocks para versões do MariaDB anteriores à 10.6

  • Plugin de validação de senha, simple_password_checke cracklib_password_check

  • Mecanismo de armazenamento do Spider

  • Mecanismo de armazenamento do Sphinx

  • Mecanismo de armazenamento do TokuDB

  • Atributos de objeto específicos do mecanismo de armazenamento, conforme descrito em Atributos de nova tabela/campo/índice definidos pelo mecanismo na documentação do MariaDB

  • Criptografia de tabela e do espaço de tabela

Para oferecer uma experiência de serviço gerenciado, o Amazon RDS não fornece acesso ao shell para instâncias de bancos de dados e restringe o acesso a determinados procedimentos e tabelas do sistema que exigem privilégios avançados. O Amazon RDS oferece suporte a acesso a bancos de dados em uma instância de banco de dados que usa qualquer aplicação de cliente SQL padrão. O Amazon RDS não permite o acesso direto do host a uma instância de banco de dados usando Telnet, Secure Shell (SSH) ou Windows Remote Desktop Connection.

Mecanismos de armazenamento compatíveis com MariaDB no Amazon RDS

O RDS for MariaDB é compatível com os seguintes mecanismos de armazenamento.

Atualmente, não há suporte a outros mecanismos de armazenamento para o RDS for MariaDB.

O mecanismo de armazenamento InnoDB

Embora o MariaDB suporte vários mecanismos de armazenamento com recursos variados, nem todos eles são otimizados para durabilidade de dados e recuperação. O InnoDB é o mecanismo de armazenamento recomendado para instâncias de banco de dados MariaDB no Amazon RDS. Os recursos de restauração point-in-time e de snapshot do Amazon RDS exigem um mecanismo de armazenamento de recuperação de falha e são compatíveis somente com o mecanismo de armazenamento para a versão MariaDB.

Para obter mais informações, consulte InnoDB.

O mecanismo de armazenamento MyRocks

O mecanismo de armazenamento MyRocks está disponível no RDS for MariaDB versão 10.6 e posteriores. Antes de usar o mecanismo de armazenamento MyRocks em um banco de dados de produção, recomendamos que você execute testes e benchmarking completos para verificar quaisquer benefícios potenciais em relação ao InnoDB para seu caso de uso.

O grupo de parâmetros padrão para o MariaDB versão 10.6 inclui parâmetros do MyRocks. Para obter mais informações, consulte Parâmetros para MariaDB e Trabalhar com grupos de parâmetros.

Para criar uma tabela que usa o mecanismo de armazenamento MyRocks, especifique ENGINE=RocksDB na instrução CREATE TABLE. O exemplo a seguir cria uma tabela que usa o mecanismo de armazenamento MyRocks.

CREATE TABLE test (a INT NOT NULL, b CHAR(10)) ENGINE=RocksDB;

É altamente recomendável não executar transações que envolvam as tabelas do InnoDB e do MyRocks. O MariaDB não garante ACID (atomicidade, consistência, isolamento, durabilidade) para transações em todos os mecanismos de armazenamento. Embora seja possível ter tabelas InnoDB e MyRocks em uma instância de banco de dados, não recomendamos essa abordagem, exceto durante uma migração de um mecanismo de armazenamento para o outro. Quando há tabelas InnoDB e MyRocks em uma instância de banco de dados, cada mecanismo de armazenamento tem seu próprio grupo de buffers, o que pode causar degradação da performance.

O MyRocks não é compatível com o isolamento de SERIALIZABLE ou bloqueios de lacunas. Portanto, geralmente você não pode usar o MyRocks com replicação baseada em instruções. Para obter mais informações, consulte MyRocks and Replication (MyRocks e replicação).

Atualmente, você só pode modificar os seguintes parâmetros do MyRocks:

O mecanismo de armazenamento MyRocks e o mecanismo de armazenamento InnoDB podem competir pela memória com base nas configurações dos parâmetros rocksdb_block_cache_size e innodb_buffer_pool_size. Em alguns casos, você pode ter a intenção de usar apenas o mecanismo de armazenamento MyRocks em uma instância de banco de dados específica. Se for o caso, recomendamos definir o parâmetro innodb_buffer_pool_size minimal para um valor mínimo e o rocksdb_block_cache_size para o valor mais alto possível.

Você pode acessar os arquivos de log do MyRocks usando as operações DescribeDBLogFiles e DownloadDBLogFilePortion.

Para obter mais informações sobre o MyRocks, consulte MyRocks no site do MariaDB.

Limites de tamanho de arquivo do MariaDB no Amazon RDS

Para instâncias de banco de dados do MariaDB, o tamanho máximo de uma tabela é 16 TB ao usar tablespaces de arquivo por tabela do InnoDB. Esse limite também restringe o espaço de tabela do sistema a um tamanho máximo de 16 TB. Os espaços de tabelas de arquivo por tabela do InnoDB (com cada tabela em seu próprio espaço de tabela) são definidos por padrão para instâncias de bancos de dados MariaDB. Esse limite não está relacionado ao limite máximo de armazenamento para instâncias de banco de dados do MariaDB. Para obter mais informações sobre limites de armazenamento, consulte Armazenamento de instâncias de banco de dados do Amazon RDS.

Existem vantagens e desvantagens na utilização de espaços de tabela de arquivo por tabela do InnoDB, dependendo do seu aplicativo. Para determinar a melhor abordagem para a aplicação, consulte File-per-table tablespaces na documentação do MySQL.

Não recomendamos permitir que as tabelas cresçam até o tamanho máximo do arquivo. Em geral, uma prática recomendada é particionar dados em tabelas menores, o que pode melhorar a performance e os tempos de recuperação.

Uma opção que você pode usar para dividir uma tabela grande em tabelas menores é o particionamento. O particionamento distribui partes da sua tabela grande em arquivos separados com base em regras que você especifica. Por exemplo, se você armazenar transações por data, poderá criar regras de particionamento que distribuem transações antigas em arquivos separados usando o particionamento. Em seguida, periodicamente, você pode arquivar os dados históricos de transações que não precisam estar prontamente disponíveis para o seu aplicativo. Para obter mais informações, consulte Partitioning na documentação do MySQL.

Para determinar o tamanho do arquivo de uma tabela

Use o seguinte comando SQL para determinar se algumas das suas tabelas são muito grandes e são candidatas para particionamento. Para atualizar as estatísticas de tabela, emita um comando ANALYZE TABLE em cada tabela. Para obter mais informações, consulte ANALYZE TABLE statement na documentação do MySQL.

SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH) / 1024 / 1024), 2) As "Approximate size (MB)", DATA_FREE FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema');

Para habilitar espaços de tabela de arquivo por tabela do InnoDB

  • Para habilitar espaços de tabela de arquivo por tabela do InnoDB, defina o parâmetro innodb_file_per_table como 1 no grupo de parâmetros da instância de banco de dados.

Para desabilitar espaços de tabela de arquivo por tabela do InnoDB

  • Para desabilitar espaços de tabela de arquivo por tabela do InnoDB, defina o parâmetro innodb_file_per_table como 0 no grupo de parâmetros da instância de banco de dados.

Para obter informações sobre como atualizar um grupo de parâmetros, consulte Trabalhar com grupos de parâmetros.

Ao ativar ou desativar os espaços de tabela de arquivo por tabela do InnoDB, você pode emitir um comando ALTER TABLE. Você pode usar esse comando para mover uma tabela do espaço de tabela global para seu próprio espaço de tabela. Ou você pode mover uma tabela de seu próprio espaço de tabela para o espaço de tabela global. Veja um exemplo a seguir.

ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;

Segurança do MariaDB no Amazon RDS

A segurança de instâncias de banco de dados do MariaDB é gerenciada em três níveis:

  • AWS Identity and Access ManagementO controla quem pode executar ações de gerenciamento do Amazon RDS em instâncias de banco de dados. Ao se conectar à AWS usando credenciais do IAM, sua conta do IAM deve ter políticas do IAM que concedam as permissões necessárias para executar operações de gerenciamento do Amazon RDS. Para obter mais informações, consulte Identity and Access Management no Amazon RDS.

  • Quando você cria uma instância de banco de dados, você deve usar um security group da VPC ou um security group de banco de dados para controlar quais dispositivos e instâncias do Amazon EC2 podem abrir conexões ao endpoint e à porta da instância de banco de dados. Essas conexões podem ser feitas usando o Secure Socket Layer (SSL). Além disso, as regras de firewall em sua empresa podem controlar se dispositivos sendo executados nela podem abrir conexões na instância de banco de dados.

  • Uma vez que uma conexão foi aberta em uma instância de banco de dados do MariaDB, a autenticação do login e as permissões são aplicadas da mesma forma que em uma instância autônoma do MariaDB. Comandos, como CREATE USER, RENAME USER, GRANT, REVOKE e SET PASSWORD funcionam exatamente como em bancos de dados autônomos, assim como modificando diretamente tabelas de esquema de banco de dados.

Quando você cria uma instância de banco de dados do Amazon RDS, o usuário mestre apresenta os seguintes privilégios padrão:

  • alter

  • alter routine

  • create

  • create routine

  • create temporary tables

  • create user

  • create view

  • delete

  • drop

  • event

  • execute

  • grant option

  • index

  • insert

  • lock tables

  • process

  • references

  • reload

    Esse privilégio é limitado em instâncias de banco de dados MariaDB. Não concede acesso às operações FLUSH LOGS ou FLUSH TABLES WITH READ LOCK.

  • replication client

  • replication slave

  • select

  • show databases

  • show view

  • trigger

  • update

Para obter mais informações sobre esses privilégios, consulte Gerenciamento da conta de usuário na documentação do MariaDB.

nota

Embora você possa excluir o usuário mestre em uma instância de banco de dados, não recomendamos fazer isso. Para recriar o usuário mestre, use a API ModifyDBInstance ou o modify-db-instance AWS CLI e especifique uma nova senha de usuário mestre com o parâmetro apropriado. Se o usuário mestre não existir na instância, ele será criado com a senha especificada.

Para fornecer serviços de gerenciamento para cada instância de banco de dados, o usuário rdsadmin é criado quando a instância de banco de dados é criada. Tentar descartar, renomear ou alterar a senha, ou alterar os privilégios, para a conta rdsadmin resulta em um erro.

Para permitir o gerenciamento da instância de banco de dados, os comandos kill e kill_query padrão foram restritos. Os comandos do Amazon RDS mysql.rds_kill, mysql.rds_kill_query e mysql.rds_kill_query_id são fornecidos para uso no MariaDB e também no MySQL para seja possível encerrar sessões ou consultas de usuários em instâncias de banco de dados.

Uso do SSL com uma instância de banco de dados MariaDB

O Amazon RDS oferece suporte a conexões de Secure Sockets Layer (SSL) com instâncias de banco de dados que executam o mecanismo de banco de dados MariaDB. O MariaDB usa OpenSSL para conexões confiáveis.

O Amazon RDS cria um certificado SSL e instala o certificado na instância de banco de dados quando o Amazon RDS provisionar a instância. Esses certificados são assinados por uma autoridade de certificado. O certificado SSL inclui o endpoint da instância de banco de dados como o nome comum (CN) do certificado SSL para se proteger contra ataques de falsificação.

Para obter informações sobre como fazer download de certificados, consulte Como Usar SSL/TLS para criptografar uma conexão com uma instância de banco de dados.

O Amazon RDS for MariaDB oferece suporte ao Transport Layer Security (TLS) versões 1.0, 1.1, 1.2 e 1.3. A tabela a seguir mostra o suporte a TLS para as versões do MySQL.

Versão do MariaDB TLS 1.0 TLS 1.1 TLS 1.2 TLS 1.3

MariaDB 10.6

Compatível

Compatível

Compatível

Compatível

MariaDB 10.5

Compatível

Compatível

Compatível

Compatível

MariaDB 10.4

Compatível

Compatível

Compatível

Compatível

MariaDB 10.3

Compatível

Compatível

Compatível

Compatível

MariaDB 10.2

Compatível

Compatível

Compatível

Compatível

Importante

Os parâmetros mysql do programa cliente serão ligeiramente diferentes, se você estiver usando a versão do MySQL 5.7, a versão do MySQL 8.0 ou a versão do MariaDB.

Para descobrir qual versão você tem, execute o comando mysql com a opção --version. No exemplo a seguir, a saída mostra que o programa cliente é do MariaDB.

$ mysql --version mysql Ver 15.1 Distrib 10.5.9-MariaDB, for osx10.15 (x86_64) using readline 5.1

A maioria das distribuições Linux, como o Amazon Linux, CentOS, SUSE e Debian, substituiu o MySQL pelo MariaDB, e a versão do mysql neles é de MariaDB.

Para criptografar conexões usando o cliente mysql padrão, inicie o cliente mysql usando o parâmetro --ssl-ca para referenciar a chave pública, conforme mostrado nos exemplos a seguir.

O exemplo a seguir mostra como iniciar o cliente usando o parâmetro --ssl-ca com o MySQL 5.7 e versões posteriores.

mysql -h myinstance.123456789012.rds-us-east-1.amazonaws.com --ssl-ca=[full path]global-bundle.pem --ssl-mode=REQUIRED

O exemplo a seguir mostra como iniciar o cliente usando o parâmetro --ssl-ca usando o cliente MariaDB:

mysql -h myinstance.123456789012.rds-us-east-1.amazonaws.com --ssl-ca=[full path]global-bundle.pem --ssl

Para obter informações sobre como fazer download de pacotes de certificados, consulte Como Usar SSL/TLS para criptografar uma conexão com uma instância de banco de dados.

Você pode exigir conexões SSL para determinadas contas de usuários. Por exemplo, você pode usar uma das seguintes instruções (dependendo da sua versão do MariaDB) para exigir conexões SSL na conta de usuário encrypted_user.

Use a instrução a seguir.

ALTER USER 'encrypted_user'@'%' REQUIRE SSL;

Para obter mais informações sobre conexões SSL com MariaDB, consulte Visão geral do SSL na documentação do MariaDB.

Aquecimento de cache

O aquecimento de cache do InnoDB pode fornecer ganhos de performance para sua instância de banco de dados do MariaDB salvando o estado atual do grupo de buffer quando a instância de banco de dados é desativada e, em seguida, recarregando o grupo de buffer a partir das informações salvas quando a instância do banco de dados for iniciada. Essa abordagem ignora a necessidade de o grupo de buffer "aquecer" do uso normal de banco de dados e, em vez disso, pré-carrega o grupo de buffer com as páginas para consultas comuns conhecidas. Para obter mais informações sobre o aquecimento de cache, consulte Despejo e restauração do grupo de buffers na documentação do MariaDB.

O aquecimento de cache está habilitado por padrão para instâncias de banco de dados do MariaDB 10.2 e posterior. Para habilitá-lo, defina os parâmetros innodb_buffer_pool_dump_at_shutdown e innodb_buffer_pool_load_at_startup para 1 no parameter group da sua instância de banco de dados. Mudar esses valores de parâmetro em um parameter group afeta todas as instâncias de banco de dados do MariaDB que usam esse parameter group. Para habilitar o aquecimento de cache para instâncias específicas de banco de dados do MariaDB, talvez seja necessário criar um parameter group nessas instâncias de banco de dados. Para obter informações sobre parameter groups, consulte Trabalhar com grupos de parâmetros.

O aquecimento de cache fornece principalmente um benefício de performance para instâncias de banco de dados que usam armazenamento padrão. Se você usar o armazenamento de PIOPS, não perceberá um benefício significativo de performance normalmente.

Importante

Se sua instância de banco de dados do MariaDB não fechar normalmente, por exemplo durante um failover, o estado do grupo de buffer não é salvo no disco. Nesse caso, o MariaDB carrega qualquer arquivo de grupo de buffer disponível quando a instância de banco de dados for reiniciada. Não há problema, mas o grupo de buffer restaurado pode não refletir o estado mais recente do grupo de buffer antes do reinício. Para garantir que você tenha um estado recente do grupo de buffer disponível para aquecer o cache do na inicialização, recomendamos que você descarte periodicamente o grupo de buffer "sob demanda". Você pode descartar ou carregar o grupo de buffer sob demanda.

Você pode criar um evento para descartar o grupo de buffer automaticamente e em um intervalo regular. Por exemplo, a seguinte declaração cria um evento chamado periodic_buffer_pool_dump que descarta o grupo de buffer de hora em hora.

CREATE EVENT periodic_buffer_pool_dump ON SCHEDULE EVERY 1 HOUR DO CALL mysql.rds_innodb_buffer_pool_dump_now();

Para obter mais informações, consulte Eventos na documentação do MariaDB.

Como descartar e carregar o grupo de buffer sob demanda

Você pode salvar e carregar o cache do sob demanda usando os seguintes procedimentos armazenados:

Parâmetros de banco de dados para MariaDB

Por padrão, uma instância de banco de dados MariaDB usa um parameter group de banco de dados específico para um banco de dados MariaDB. Esse parameter group contém alguns mas não todos os parâmetros contidos nos parameter groups de banco de dados do Amazon RDS para o mecanismo de banco de dados MySQL. Ele também contém alguns parâmetros novos específicos do MariaDB. Para obter mais informações sobre os parâmetros disponíveis para o mecanismo de banco de dados RDS for MariaDB, consulte Parâmetros para MariaDB.

Tarefas comuns do DBA para o MariaDB

Encerrar sessões ou consultas, ignorar erros de replicação, trabalhar com tablespaces do InnoDB para melhorar os tempos de recuperação de falhas e gerenciar o histórico de status global são tarefas comuns do DBA que você pode realizar em uma instância de banco de dados do MariaDB. Você pode lidar com essas tarefas da mesma forma que em uma instância de banco de dados MySQL do, conforme descrito em Tarefas comuns de DBA para instâncias de banco de dados MySQL. As instruções de recuperação de falhas referem-se ao mecanismo InnoDB do MySQL, mas são aplicáveis a uma instância de banco de dados MariaDB executando o InnoDB também.

Fuso horário local para as instâncias de banco de dados do MariaDB

Por padrão, o fuso horário de uma instância de banco de dados MariaDB é o Tempo Universal Coordenado (UTC). Você pode definir o fuso horário de sua instância de banco de dados como o fuso horário local de seu aplicativo.

Para definir o fuso horário local de uma instância de banco de dados, defina o parâmetro time_zone no parameter group para sua instância de banco de dados como um dos valores compatíveis listados posteriormente nesta seção. Quando você configura o parâmetro time_zone para um grupo de parâmetros, todas as instâncias de banco de dados e as réplicas de leitura que estiverem usando esse grupo de parâmetros mudarão para usar o novo fuso horário local. Para obter informações sobre como configurar parâmetros em um parameter group, consulte Trabalhar com grupos de parâmetros.

Após definir o fuso horário local, todas as novas conexões ao banco de dados refletirão a alteração. Se você tiver conexões abertas em seu banco de dados quando mudar o fuso horário local, você não verá a atualização do fuso horário local até que encerre a conexão e abra uma nova conexão.

É possível definir um fuso horário local diferente para uma instância de banco de dados e uma ou mais de suas réplicas de leitura. Para fazer isso, use um parameter group diferente para a instância de banco de dados e a(s) replica(s), e defina o parâmetro time_zone em cada parameter group para um fuso horário local diferente.

Se você estiver replicando entre as regiões AWS, a instância de banco de dados de origem e a réplica de leitura usarão grupos de parâmetros diferentes (os grupos de parâmetros são exclusivos de cada região da AWS). Para usar o mesmo fuso horário local a cada instância, é necessário configurar o parâmetro time_zone nos grupos de parâmetros da instância e da réplica de leitura.

Quando você restaura uma instância de banco de dados de um snapshot de banco de dados, o fuso horário local é definido como UTC. Você pode atualizar o fuso horário para o fuso horário local após a conclusão da restauração. Se você restaurar uma instância de banco de dados para um período específico, o fuso horário local para a instância de banco de dados restaurada representará a configuração de fuso horário do parameter group da instância de banco de dados restaurada.

Você pode definir seu fuso horário local para um dos seguintes valores.

Africa/Cairo

Asia/Riyadh

Africa/Casablanca

Asia/Seoul

Africa/Harare

Asia/Shanghai

Africa/Monrovia

Asia/Singapore

Africa/Nairobi

Asia/Taipei

Africa/Tripoli

Asia/Tehran

Africa/Windhoek

Asia/Tokyo

America/Araguaina

Asia/Ulaanbaatar

America/Asuncion

Asia/Vladivostok

America/Bogota

Asia/Yakutsk

America/Buenos_Aires

Asia/Yerevan

America/Caracas

Atlantic/Azores

America/Chihuahua

Australia/Adelaide

America/Cuiaba

Australia/Brisbane

America/Denver

Australia/Darwin

America/Fortaleza

Australia/Hobart

America/Guatemala

Australia/Perth

America/Halifax

Australia/Sydney

America/Manaus

Brazil/East

America/Matamoros

Canada/Newfoundland

America/Monterrey

Canada/Saskatchewan

America/Montevideo

Canada/Yukon

America/Phoenix

Europe/Amsterdam

America/Santiago

Europe/Athens

America/Tijuana

Europe/Dublin

Asia/Amman

Europe/Helsinki

Asia/Ashgabat

Europe/Istanbul

Asia/Baghdad

Europe/Kaliningrad

Asia/Baku

Europe/Moscow

Asia/Bangkok

Europe/Paris

Asia/Beirut

Europe/Prague

Asia/Calcutta

Europe/Sarajevo

Asia/Damascus

Pacific/Auckland

Asia/Dhaka

Pacific/Fiji

Asia/Irkutsk

Pacific/Guam

Asia/Jerusalem

Pacific/Honolulu

Asia/Kabul

Pacific/Samoa

Asia/Karachi

US/Alaska

Asia/Kathmandu

US/Central

Asia/Krasnoyarsk

US/Eastern

Asia/Magadan

US/East-Indiana

Asia/Muscat

US/Pacific

Asia/Novosibirsk

UTC

Palavra reservada InnoDB

InnoDB é uma palavra reservada ao RDS for MariaDB. Não é possível usar esse nome para um banco de dados do MariaDB.

Versões obsoletas do Amazon RDS for MariaDB

As versões 10.0 e 10.1 do Amazon RDS for MariaDB estão obsoletas.

Para obter mais informações, consulte Announcement: Extending end-of-life Process for Amazon RDS for MariaDB 10.0 and 10.1.

Para obter informações sobre a política de defasagem do Amazon RDS para o MariaDB, consulte Perguntas frequentes sobre o Amazon RDS.