Suporte ao recurso MariaDB no Amazon RDS - Amazon Relational Database Service

Suporte ao recurso MariaDB no Amazon RDS

O RDS para MariaDB é compatível com os recursos do MariaDB. Alguns recursos podem ter suporte limitado ou privilégios restritos.

Você pode filtrar novos recursos do Amazon RDS na página What's New with Database? (Novidades sobre bancos de dados). Em Products (Produtos), escolha Amazon RDS. Em seguida, pesquise usando palavras-chave como MariaDB 2023.

nota

As listas a seguir não são completas.

Suporte a recursos do MariaDB nas versões principais do Amazon RDS para MariaDB

Nas seções a seguir, localize informações sobre compatibilidade de recursos do MariaDB nas versões principais do Amazon RDS para MariaDB:

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

Compatibilidade do MariaDB 10.11 com o Amazon RDS

O Amazon RDS é compatível com estes novos recursos nas instâncias de banco de dados que executam o MariaDB versão 10.11 ou posterior.

  • Plug-in de verificação de reutilização de senha: você pode usar o plug-in de verificação de reutilização de senha do MariaDB para impedir que os usuários reutilizem senhas e definir o período de retenção das senhas. Para obter mais informações, consulte Plug-in de verificação de reutilização de senha.

  • Autorização GRANT TO PUBLIC: você pode conceder privilégios a todos os usuários que têm acesso ao seu servidor. Para obter mais informações, consulte GRANT TO PUBLIC.

  • Separação dos privilégios SUPER e READ ONLY ADMIN: você pode remover os privilégios READ ONLY ADMIN de todos os usuários, mesmo aqueles que anteriormente tinham privilégios SUPER.

  • Segurança: agora você pode definir a opção --ssl como padrão para seu cliente MariaDB. O MariaDB não desabilita mais silenciosamente o SSL se a configuração estiver incorreta.

  • Comandos e funções SQL: agora você pode usar o comando SHOW ANALYZE FORMAT=JSON e as funções ROW_NUMBER, SFORMAT e RANDOM_BYTES. SFORMAT permite a formatação de strings e é habilitado por padrão. Você pode converter partição em tabela e tabela em partição usando um único comando. Há também várias melhorias em torno das funções JSON_*(). As funções DES_ENCRYPT e DES_DECRYPT foram descontinuadas na versão 10.10 e posterior. Para obter mais informações, consulte SFORMAT.

  • Aprimoramentos do InnoDB: os aprimoramentos abaixo incluem os seguintes itens:

    • Melhorias na performance do redo log para reduzir a amplificação de gravação e melhorar a simultaneidade.

    • A possibilidade de alterar o espaço de tabela undo sem reinicializar o diretório de dados. Esse aprimoramento reduz as despesas operacionais indiretas do ambiente de gerenciamento. É necessário reiniciar, mas não é preciso reinicializar após a alteração do espaço de tabela undo.

    • Suporte para CHECK TABLE … EXTENDED e para índices descendentes internamente.

    • Melhorias na inserção em massa.

  • Alterações no log binário: essas mudanças incluem os seguintes itens:

    • Registro em log de ALTER em duas fases para diminuir a latência da replicação. O parâmetro binlog_alter_two_phase é desabilitado por padrão, mas pode ser habilitado por meio de grupos de parâmetros.

    • Registro em log de explicit_defaults_for_timestamp.

    • Não há mais registro em log de INCIDENT_EVENT quando a transação pode ser revertida com segurança.

  • Melhorias na replicação: as instâncias de banco de dados do MariaDB versão 10.11 usam a replicação GTID por padrão quando a principal a comporta. Além disso, Seconds_Behind_Master é mais preciso.

  • Clientes: você pode usar novas opções de linha de comando para mysqlbinglog e mariadb-dump. Você pode usar mariadb-dump para despejar e restaurar dados históricos.

  • Versionamento do sistema: você pode modificar o histórico. O MariaDB cria automaticamente novas partições.

  • DDL atômico: CREATE OR REPLACE agora é atômico. Se a instrução não for bem-sucedida, ela será totalmente revertida.

  • Gravação de redo log: o redo log grava de forma assíncrona.

  • Funções armazenadas: as funções armazenadas agora comportam os mesmos parâmetros IN, OUT e INOUT dos procedimentos armazenados.

  • Parâmetros obsoletos ou removidos: os seguintes parâmetros foram descontinuados ou removidos para instâncias de banco de dados do MariaDB versão 10.11:

  • Parâmetros dinâmicos: os seguintes parâmetros agora são dinâmicos para instâncias de banco de dados do MariaDB versão 10.11:

  • 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.11:

  • 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.11:

    • Os valores válidos para o parâmetro old foram mesclados com aqueles para o parâmetro old-mode.

    • Os valores válidos para o parâmetro histogram_type agora incluem JSON_HB.

    • O intervalo de valores válido para o parâmetro innodb_log_buffer_size agora vai de 262144 a 4294967295 (de 256 KB a 4.096 MB).

    • O intervalo de valores válido para o parâmetro innodb_log_file_size agora vai de 4194304 a 512GB (de 4 MB a 512 GB).

    • Os valores válidos para o parâmetro optimizer_prune_level agora incluem 2.

  • Novos parâmetros: os seguintes parâmetros agora são dinâmicos para instâncias de banco de dados do MariaDB versão 10.11:

Para obter uma lista de todos os recursos e documentação, consulte as informações a seguir no site do MariaDB.

Para ver uma lista de recursos não compatíveis, consulte Recursos do MariaDB incompatíveis com o Amazon RDS.

Compatibilidade do MariaDB 10.6 com o Amazon RDS

O Amazon RDS é compatível com 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 para 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 AWS Identity and Access Management (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 do 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 para MariaDB versão 10.6 de qualquer versão principal anterior (10.3, 10.4, 10.5). Também é possível restaurar um snapshot de uma instância de banco de dados do MySQL 5.6 ou 5.7 existente para uma instância do 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, consulteConfigurar a replicação atrasada com o MariaDB

  • Compatibilidade com o Oracle PL/SQL: usando o RDS para 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 para 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:

    • O valor padrão dos seguintes parâmetros foi alterado de utf8 para utf8mb3:

      Embora os valores padrões tenham sido alterados por esses parâmetros, não há alteração funcional. Para obter mais informações, consulte Supported Character Sets and Collations (Conjuntos e agrupamentos de caracteres compatíveis) na documentação do MariaDB.

    • O valor padrão do parâmetro collation_connection foi alterado de utf8_general_ci para utf8mb3_general_ci. Embora o valor padrão tenha sido alterado para esse parâmetro, não há alteração funcional.

    • O valor padrão do parâmetro old_mode mudou de não definido para UTF8_IS_UTF8MB3. Embora o valor padrão tenha sido alterado para esse parâmetro, não há alteração funcional.

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 do MariaDB incompatíveis com o Amazon RDS.

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. (InnoDB: melhorias na performance, etc.) na documentação do MariaDB.

  • 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 (Atualizações do esquema de performance correspondentes a instrumentação e tabelas do MariaDB).

  • 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 do MariaDB incompatíveis com o Amazon RDS.

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 do MariaDB incompatíveis com o Amazon RDS.

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 do MariaDB incompatíveis com o Amazon RDS.

Mecanismos de armazenamento compatíveis com MariaDB no Amazon RDS

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

Atualmente, não há suporte a outros mecanismos de armazenamento para o RDS para 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 para 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.

Aquecimento de cache do MariaDB no Amazon RDS

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.3 e posteriores. Para habilitá-lo, defina os parâmetros innodb_buffer_pool_dump_at_shutdown e innodb_buffer_pool_load_at_startup para 1 no grupo de parâmetros da sua instância de banco de dados. Mudar esses valores de parâmetro em um grupo de parâmetros afeta todas as instâncias de banco de dados do MariaDB que usam esse grupo de parâmetros. Para habilitar o aquecimento de cache para instâncias específicas de banco de dados do MariaDB, talvez seja necessário criar um grupo de parâmetros nessas instâncias de banco de dados. Para obter informações sobre grupos de parâmetros, 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:

Recursos do MariaDB incompatíveis com o Amazon RDS

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

  • Plug-in de gerenciamento de chaves Hashicorp

  • Executar duas atualizações em paralelo

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.