Compatibilidade de recursos do MySQL no Amazon RDS - Amazon Relational Database Service

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). Em Products (Produtos), escolha Amazon RDS. Em seguida, pesquise usando palavras-chave como MySQL 2022.

nota

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

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 cliente mysqlpump 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 especificando SOURCE_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.

  • 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órmula LEAST({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, quando binlog_format é configurado como MIXED ou STATEMENT, 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 na documentação do MySQL.

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 na documentação do MySQL.

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 na documentação do MySQL.

Como descartar e carregar o grupo de buffer sob demanda

É possível salvar e carregar o cache InnoDB “sob demanda”.

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.

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

init_slave

init_replica

log_slave_updates

log_replica_updates

log_slow_slave_statements

log_slow_replica_statements

rpl_stop_slave_timeout

rpl_stop_replica_timeout

skip_slave_start

skip_replica_start

slave_allow_batching

replica_allow_batching

slave_checkpoint_group

replica_checkpoint_group

slave_checkpoint_period

replica_checkpoint_period

slave_compressed_protocol

replica_compressed_protocol

slave_exec_mode

replica_exec_mode

slave_load_tmpdir

replica_load_tmpdir

slave_max_allowed_packet

replica_max_allowed_packet

slave_net_timeout

replica_net_timeout

slave_parallel_type

replica_parallel_type

slave_parallel_workers

replica_parallel_workers

slave_pending_jobs_size_max

replica_pending_jobs_size_max

slave_preserve_commit_order

replica_preserve_commit_order

slave_skip_errors

replica_skip_errors

slave_sql_verify_checksum

replica_sql_verify_checksum

slave_transaction_retries

replica_transaction_retries

slave_type_conversions

replica_type_conversions

sql_slave_skip_counter

sql_replica_skip_counter

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

mysql.rds_next_master_log

mysql.rds_next_source_log

mysql.rds_reset_external_master

mysql.rds_reset_external_source

mysql.rds_set_external_master

mysql.rds_set_external_source

mysql.rds_set_external_master_with_auto_position

mysql.rds_set_external_source_with_auto_position

mysql.rds_set_external_master_with_delay

mysql.rds_set_external_source_with_delay

mysql.rds_set_master_auto_position

mysql.rds_set_source_auto_position

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ê.