Compatibilidade de recursos do MySQL no Amazon RDS
O RDS para MySQL é compatível com a maioria dos recursos do MySQL. 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)MySQL 2022
.
nota
As listas a seguir não são completas.
Tópicos
- Suporte a recursos do MySQL nas versões principais do Amazon RDS para MySQL
- Suporte aos mecanismos de armazenamento no RDS para MySQL
- Usar memcached e outras opções com o MySQL no Amazon RDS
- Aquecimento de cache do InnoDB para o MySQL no Amazon RDS
- Alterações de linguagem inclusiva para RDS para MySQL 8.4
- Recursos do MySQL sem suporte pelo Amazon RDS
Suporte a recursos do MySQL nas versões principais do Amazon RDS para MySQL
Nas seções a seguir, localize informações sobre compatibilidade de recursos do MySQL nas versões principais do Amazon RDS para MySQL:
Para obter informações sobre versões secundárias compatíveis do Amazon RDS para MySQL, consulte Versões secundárias do MySQL compatíveis com o Amazon RDS.
Suporte ao MySQL 8.4 no Amazon RDS
O Amazon RDS oferece suporte aos novos recursos descritos a seguir para instâncias de banco de dados que executam o MySQL versão 8.4 ou posterior.
-
Biblioteca criptográfica: o RDS para MySQL substituiu o OpenSSL pelo AWS Libcrypto (AWS-LC), que tem certificação da norma FIPS 140-3. Para obter mais informações, consulte o repositório do GitHub AWS-LC em https://github.com/aws/aws-lc
. -
Alterações do TLS: o RDS para MySQL é compatível somente com o TLS 1.2 e o TLS 1.3. Para ter mais informações, consulte Suporte do SSL/TLS para instâncias de banco de dados do MySQL no Amazon RDS.
-
Suporte ao memcached: a interface do memcached não está mais disponível no MySQL 8.4. Para ter mais informações, consulte Suporte a memcached MySQL.
-
Plugin de autenticação padrão: o plugin de autenticação padrão é
caching_sha2_password
. Para ter mais informações, consulte Plug-in de autenticação padrão do MySQL. -
Utilitário cliente
mysqlpump
: o utilitário clientemysqlpump
não está mais disponível no MySQL 8.4. Para obter mais informações, consulte Modelo de privilégios baseados em perfis para o RDS para MySQL e mysqldump e mysqlpump na Orientação prescritiva da AWS. -
Procedimentos armazenados de replicação gerenciada: ao usar procedimentos armazenados para gerenciar a replicação com um usuário de replicação configurado com
caching_sha2_password
, você deve configurar o TLS especificandoSOURCE_SSL=1
.caching_sha2_password
é o plugin de autenticação padrão para o RDS para MySQL 8.4. -
Mudanças no comportamento dos parâmetros: os seguintes parâmetros foram alterados para o MySQL 8.4.
-
innodb_dedicated_server
: por padrão, esse parâmetro está ativado. Para ter mais informações, consulte Configuração do tamanho do pool de buffer e a capacidade de log redo no MySQL 8.4. -
innodb_buffer_pool
: o mecanismo do banco de dados agora calcula esse parâmetro, mas você pode substituir essa configuração. Para ter mais informações, consulte Configuração do tamanho do pool de buffer e a capacidade de log redo no MySQL 8.4. -
innodb_redo_log_capacity
: esse parâmetro agora controla o tamanho dos arquivos de log de refazer. O mecanismo do banco de dados agora calcula esse parâmetro, mas você pode substituir essa configuração. Para ter mais informações, consulte Configuração do tamanho do pool de buffer e a capacidade de log redo no MySQL 8.4.
-
-
Parâmetros obsoletos ou removidos: o RDS for MySQL removeu os seguintes parâmetros dos grupos de parâmetros para instâncias de banco de dados MySQL 8.4. O parâmetro
innodb_redo_log_capacity
agora controla o tamanho dos arquivos de log de refazer.-
innodb_log_file_size
-
innodb_log_files_in_group
-
-
Novos valores padrão para parâmetros: os seguintes parâmetros têm novos valores padrão para instâncias de banco de dados MySQL versão 8.4:
-
Vários parâmetros da comunidade MySQL relacionados ao desempenho foram alterados. Para obter mais informações, consulte O que há de novo no MySQL 8.4 desde o MySQL 8.0
. Recomendamos que você teste o desempenho da aplicação no RDS for MySQL 8.4 antes de migrar uma instância de produção.
-
innodb_purge_threads
: o valor padrão é definido como a fórmulaLEAST({DBInstanceVCPU/2},4)
para evitar que o comprimento da lista de histórico do InnoDB cresça demais. -
group_replication_exit_state_action
: o valor padrão éOFFLINE_MODE
, que se alinha ao padrão no MySQL Community. Para ter mais informações, consulte Considerações e práticas recomendadas para cluster ativo-ativo do RDS para MySQL. -
binlog_format
: o valor padrão éROW
, que se alinha ao padrão no MySQL Community. Você pode modificar o parâmetro para instâncias de banco de dados single-AZ ou multi-AZ, mas não para clusters de banco de dados multi-AZ. Os clusters de banco de dados multi-AZ usam replicação semissíncrona e, quandobinlog_format
é configurado comoMIXED
ouSTATEMENT
, a replicação falha.
-
-
Alterações de linguagem inclusiva: o RDS para MySQL 8.4 inclui alterações do RDS para MySQL 8.0 relacionadas a palavras-chave e esquemas de sistema para linguagem inclusiva. Para ter mais informações, consulte Alterações de linguagem inclusiva para RDS para MySQL 8.4.
Para obter uma lista de todos os recursos e alterações do MySQL 8.4, consulte O que há de novo no MySQL 8.4 desde o MySQL 8.0
Para conferir uma lista de recursos não compatíveis, consulte Recursos do MySQL sem suporte pelo Amazon RDS.
Suporte aos mecanismos de armazenamento no RDS para MySQL
Embora o MySQL ofereça suporte a vários mecanismos de armazenamento com recursos variados, nem todos eles são otimizados para durabilidade e recuperação de dados. O Amazon RDS oferece suporte total ao mecanismo de armazenamento do InnoDB para instâncias de banco de dados do MySQL. Os recursos de restauração point-in-time e de snapshot do Amazon RDS exigem um mecanismo de armazenamento recuperável e são compatíveis somente com o mecanismo de armazenamento do InnoDB. Para obter mais informações, consulteSuporte a memcached MySQL
O Federated Storage Engine atualmente não é compatível com o Amazon RDS para MySQL.
Para esquemas criados pelo usuário, o mecanismo de armazenamento MyISAM não oferece suporte para recuperação confiável e pode resultar em dados perdidos ou corrompidos quando o MySQL é reiniciado após uma recuperação, impedindo que uma restauração pontual ou uma restauração de snapshot funcione conforme pretendido. No entanto, se você ainda optar por usar o MyISAM com o Amazon RDS, snapshots podem ser úteis em algumas condições.
nota
As tabelas do sistema no esquema mysql
podem estar no armazenamento MyISAM.
Se você deseja converter tabelas do MyISAM em tabelas do InnoDB, pode usar o comando ALTER TABLE
(por exemplo, alter table TABLE_NAME engine=innodb;
). Lembre-se de que o MyISAM e o InnoDB têm pontos fortes e fracos diferentes. Portanto, é necessário que você avalie totalmente o impacto que essas alterações terão em seus aplicativos antes de fazê-las.
Os MySQL 5.1, 5.5 e 5.6 não são mais compatíveis com o Amazon RDS. No entanto, é possível restaurar snapshots do MySQL 5.1, 5.5 e 5.6 existentes. Ao restaurar um snapshot do MySQL 5.1, 5.5 ou 5.6, a instância de banco de dados é automaticamente atualizada para o MySQL 5.7.
Usar memcached e outras opções com o MySQL no Amazon RDS
A maioria dos mecanismos de banco de dados do Amazon RDS oferece suporte a grupos de opções que permitem selecionar recursos adicionais para a sua instância de banco de dados. As instâncias de banco de dados do RDS para MySQL são compatíveis com a opção memcached
, um cache simples baseado em chaves. Para obter mais informações sobre memcached
e outras opções, consulte Opções para instâncias de bancos de dados MySQL. Para mais informações sobre como trabalhar com grupos de opções, consulte Trabalhar com grupos de opções.
Aquecimento de cache do InnoDB para o MySQL no Amazon RDS
O aquecimento de cache do InnoDB pode fornecer ganhos de performance para sua instância de banco de dados do MySQL 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. Isso dispensa 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. O arquivo que armazena as informações do pool de buffer salvo armazena apenas os metadados para as páginas que estão no pool de buffer, e não as páginas propriamente ditas. Como resultado, o arquivo não requer muito espaço de armazenamento. O tamanho do arquivo é de aproximadamente 0,2 por cento do tamanho do cache. Por exemplo, para um cache de 64 GiB, o tamanho do arquivo de aquecimento do cache é de 128 MiB. Para obter mais informações sobre o aquecimento de cache do InnoDB, consulte Saving and restoring the buffer pool state
As instâncias de banco de dados do RDS para MySQL são compatíveis com o aquecimento de cache InnoDB. Para habilitar o aquecimento de cache do InnoDB, defina os parâmetros innodb_buffer_pool_dump_at_shutdown
e innodb_buffer_pool_load_at_startup
como 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 afetará todas as instâncias de banco de dados MySQL que usam esse grupo de parâmetros. Para habilitar o aquecimento de cache do InnoDB para instâncias específicas de banco de dados MySQL, talvez você precise criar um grupo de parâmetros nessas instâncias. Para obter informações sobre grupos de parâmetros, consulte Grupos de parâmetros para Amazon RDS.
O aquecimento de cache do InnoDB fornece principalmente um benefício de performance para instâncias de banco de dados que usam armazenamento padrão. Se você usar o armazenamento PIOPS, não perceberá um benefício significativo de performance normalmente.
Importante
Se sua instância de banco de dados MySQL não for encerrada normalmente, como durante um failover, o estado do pool de buffers não será salvo no disco. Nesse caso, o MySQL 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 InnoDB na inicialização, recomendamos que você descarte periodicamente 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 sobre eventos do MySQL, consulte Event syntax
Como descartar e carregar o grupo de buffer sob demanda
É possível salvar e carregar o cache InnoDB “sob demanda”.
Para descartar o estado atual do grupo de buffer para o disco, chame o procedimento armazenado mysql.rds_innodb_buffer_pool_dump_now.
Para carregar o estado salvo do grupo de buffer a partir do disco, chame o procedimento armazenado mysql.rds_innodb_buffer_pool_load_now.
Para cancelar uma operação de carregamento em andamento, chame o procedimento armazenado mysql.rds_innodb_buffer_pool_load_abort.
Alterações de linguagem inclusiva para RDS para MySQL 8.4
O RDS para MySQL versão 8.4 também inclui alterações da edição da comunidade do MySQL 8.4 referentes a palavras-chave e esquemas de sistema para linguagem inclusiva. Por exemplo, o comando SHOW REPLICA
STATUS
substitui SHOW SLAVE STATUS
.
Tópicos
Alterações do nome do parâmetro de configuração
Os seguintes parâmetros de configuração têm nomes novos no RDS para MySQL 8.4.
Para fins de compatibilidade, é possível verificar os nomes dos parâmetros no cliente mysql
utilizando qualquer nome. Você só pode usar os novos nomes ao modificar os valores em um grupo de parâmetros personalizado do MySQL 8.4. Para ter mais informações, consulte Grupos de parâmetros padrão e personalizados.
Nome a ser removido | Nome novo ou preferencial |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alterações do nome dos procedimentos armazenados
Os seguintes procedimentos armazenados têm novos nomes no RDS para MySQL 8.4.
Para compatibilidade, é possível utilizar qualquer um dos nomes na versão inicial do RDS para MySQL versão 8.4. Os nomes de procedimentos antigos serão removidos em um release futuro. Para ter mais informações, consulte Configurar, iniciar e interromper a replicação de logs binários (binlogs).
Nome a ser removido | Nome novo ou preferencial |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Recursos do MySQL sem suporte pelo Amazon RDS
Atualmente, o Amazon RDS não oferece suporte aos seguintes recursos do MySQL:
-
Plugin de autenticação
-
Registro de erros no log do sistema
-
Criptografia de espaço de tabela do InnoDB
-
Plugin de intensidade da senha
-
Variáveis de sistema mantidas
-
Plugin de regravação de consulta de regravador
-
Replicação semissíncrona, exceto para clusters de banco de dados multi-AZ
-
Espaço de tabela transportável
-
Plug-in X
Para oferecer uma experiência de serviço gerenciada, o Amazon RDS não fornece acesso ao shell para as instâncias de banco de dados. Ele também 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. Ao criar uma instância de banco de dados, você recebe a função db_owner para todos os bancos de dados nessa instância e tem todas as permissões em nível de banco de dados, exceto aquelas usadas para backups. O Amazon RDS gerencia backups para você.