Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Upgrade the database version

Última atualização: Jul 13, 2026

O ApsaraDB RDS for MySQL oferece dois métodos para atualizar a versão principal do banco de dados. Você pode atualizar a versão diretamente no console ou adquirir uma nova instância do ApsaraDB RDS for MySQL com uma versão mais recente e usar uma tarefa de migração de dados do Data Transmission Service (DTS) para migrar os dados da instância original para a nova. Esse processo atualiza a versão do banco de dados indiretamente.

Nota

O ApsaraDB RDS for MySQL não suporta downgrade direto da versão do banco de dados pelo console. Adquira uma instância RDS com uma versão anterior e use o DTS para migrar dados da instância com versão mais recente para a instância com versão anterior. Após confirmar que a migração foi bem-sucedida, libere a instância com a versão mais recente.

Selecione um método de atualização

Tanto o Método 1: Atualizar diretamente a versão do banco de dados no console quanto o Método 2: Atualizar a versão do banco de dados usando o DTS suportam os seguintes caminhos de atualização do MySQL: 5,5 para 5,6, 5,6 para 5,7 e 5,7 para 8,0. Antes de iniciar a atualização, escolha o método mais adequado com base nas informações abaixo:

  • Se sua instância pertencer a uma das quatro categorias a seguir e atender aos requisitos correspondentes, utilize o Método 1: Atualizar diretamente a versão do banco de dados no console.

    Nota

    Cluster Edition (ESSD and premium performance disk)

    • Restrição de replicação em grupo: Não é possível atualizar instâncias Cluster Edition que utilizam MySQL Group Replication (MGR).

    • Restrição de proxy de banco de dados (se aplicável): A versão secundária do proxy de banco de dados deve ser 1.13.41 ou superior.

    • Restrição de status da instância: O status da instância deve ser Running, e os nós primário e secundário devem estar íntegros, sem atraso de replicação.

    • Restrição de mecanismo: O banco de dados e todas as suas tabelas devem usar o mecanismo de armazenamento InnoDB.

    • A instância não deve utilizar um tipo de instância descontinuado.

    High-availability Edition (ESSD and premium performance disk)

    • Restrição de proxy de banco de dados (se aplicável): A versão secundária do proxy de banco de dados deve ser 1.13.41 ou superior.

    • Restrição de status da instância: O status da instância deve ser Running, e os nós primário e secundário devem estar íntegros, sem atraso de replicação.

    • Restrição de mecanismo: O banco de dados e todas as suas tabelas devem usar o mecanismo de armazenamento InnoDB.

    • A instância não deve utilizar um tipo de instância descontinuado.

    High-availability Edition (premium performance local disk)

    • Restrição de criptografia: O recurso de criptografia transparente de dados (TDE) deve estar desativado. Uma vez ativado, o TDE não pode ser desativado. Se o TDE estiver habilitado na sua instância, use o Método 2: Atualizar a versão do banco de dados usando o DTS.

    • Restrição de proxy de banco de dados (se aplicável): A versão secundária do proxy de banco de dados deve ser 1.13.41 ou superior.

    • Restrição de status da instância: O status da instância deve ser Running, e os nós primário e secundário devem estar íntegros, sem atraso de replicação.

    • Restrição de quantidade de tabelas: O número de tabelas não pode exceder 1 milhão.

    • Restrição de mecanismo: O banco de dados e todas as suas tabelas devem usar o mecanismo de armazenamento InnoDB.

    • Restrição de tipo de instância: A versão do banco de dados após a atualização deve suportar os tipos de instância originais das instâncias primárias e somente leitura. As instâncias não devem usar um tipo descontinuado. Para mais informações, consulte Tipos de instância primária do ApsaraDB RDS for MySQL.

    Basic Edition (ESSD and premium performance disk)

    • Restrição de status da instância: O status da instância deve ser Running.

    • Restrição de mecanismo: O banco de dados e todas as suas tabelas devem usar o mecanismo de armazenamento InnoDB.

    • A instância não deve utilizar um tipo de instância descontinuado.

  • Caso sua instância não pertença a nenhuma das quatro categorias anteriores ou se o TDE estiver habilitado, opte pelo Método 2: Atualizar a versão do banco de dados usando o DTS.

  • Se sua instância pertencer a uma das quatro categorias anteriores, mas não atender aos requisitos de configuração, ajuste a configuração conforme descrito na tabela a seguir. Em seguida, utilize o Método 1: Atualizar diretamente a versão do banco de dados no console ou o Método 2: Atualizar a versão do banco de dados usando o DTS.

    Problema

    Solução

    O status da instância não é Running; por exemplo, está como Restarting.

    Aguarde a conclusão da tarefa atual antes de atualizar a versão do banco de dados.

    O número de tabelas em uma instância High-availability Edition com disco local de alto desempenho excede 1 milhão.

    Exclua as tabelas redundantes antes da atualização.

    Alguns bancos de dados ou tabelas não usam o mecanismo InnoDB.

    Execute o comando ALTER TABLE <table_name> engine=InnoDB; para alternar para o mecanismo InnoDB.

    A instância usa um tipo de instância descontinuado.

    Atualize o tipo da instância antes de atualizar a versão do banco de dados. Para mais informações, consulte Alterar configuração.

    A versão secundária do proxy de banco de dados não atende aos requisitos.

    Atualize a versão secundária do proxy de banco de dados para 1.13.41 ou superior. Para mais informações, consulte Atualizar a versão secundária do mecanismo de um proxy de banco de dados.

    O tipo de armazenamento da instância é SSD padrão.

    Primeiro, atualize o SSD padrão para um SSD empresarial (ESSD) e, em seguida, atualize a versão do banco de dados.

Para atualizar a versão principal do banco de dados de outros mecanismos, consulte os tópicos a seguir:

Método 1: Atualizar diretamente a versão do banco de dados no console

Preparativos

  1. Compreenda as diferenças e benefícios da nova versão

  2. Entenda o processo de atualização e seus impactos

    • Restrição de salto de versões: Não é permitido pular versões principais. Por padrão, a instância é atualizada para a versão secundária mais recente da versão principal alvo. Por exemplo, não é possível atualizar diretamente uma instância do MySQL 5,6 para o MySQL 8,0. É necessário primeiro atualizá-la para o MySQL 5,7 e depois para o MySQL 8,0.

    • Restrição de downgrade: O downgrade direto da versão pelo console não é suportado. Adquira uma instância RDS com uma versão anterior e utilize o DTS para migrar dados da instância com versão mais recente para a instância com versão anterior. Após validar o sucesso da migração, proceda com a liberação da instância com a versão mais recente.

    • Processo de atualização para instâncias com disco local de alto desempenho: O sistema atualiza primeiro a instância secundária. Após a conclusão, ocorre um failover primário/secundário. Em seguida, o sistema atualiza a instância primária. A atualização causa uma interrupção de service de 15 segundos. Recomendamos realizar a atualização fora dos horários de pico.

    • Processo de atualização para instâncias com ESSD: O sistema cria um novo nó e executa a atualização nesse nó. Depois que o novo nó é atualizado, o sistema transfere as conexões para ele. A atualização causa uma interrupção de service de 15 segundos. Recomendamos executar a atualização fora dos horários de pico.

  3. Verifique as configurações da instância e do banco de dados

    • Verifique palavras-chave reservadas: Revise as funções definidas pelo usuário para garantir que elas não utilizem palavras-chave reservadas.

    • Verifique backups completos: Confirme se um backup completo de dados foi criado com sucesso na última semana. Caso contrário, realize um backup completo dos dados.

    • Verifique o mecanismo de reconexão automática: Durante a atualização do banco de dados, o RDS executa um switchover de instância. Recomendamos realizar a atualização fora dos horários de pico ou garantir que sua aplicação possua um mecanismo de reconexão automática. Para mais detalhes sobre o impacto de um switchover de instância, consulte Impacto de um switchover de instância.

    • Verifique o espaço de armazenamento disponível: Garanta que haja espaço livre suficiente em disco antes da atualização. Recomendamos reservar pelo menos 10 GB.

    • Ajuste a política de limpeza de logs: Aumente o período de retenção e a porcentagem máxima de uso de armazenamento para logs locais. Para mais informações, consulte Modificar a política de log local.

    • Faça backup dos parâmetros da instância: Para garantir a estabilidade e o desempenho da nova versão do MySQL, o RDS descontinua alguns parâmetros da versão antiga. Esses parâmetros não poderão mais ser visualizados ou modificados após a atualização. Antes de realizar uma atualização de versão principal, faça backup dos registros de modificação dos parâmetros relevantes para operações futuras e auditorias.

    • Para atualizações de 5,6 para 5,7 ou de 5,7 para 8,0, é obrigatório realizar as seguintes verificações adicionais:

      Atualização de 5,6 para 5,7

      Verifique índices de texto completo e informações de versão: Em bancos de dados de instâncias RDS for MySQL 5,6 com versão secundária anterior a 20221130, os índices de texto completo são criados no tablespace do sistema. A atualização para a versão 5,7 pode corromper o tablespace. Se sua instância executa uma versão secundária anterior, atualize-a primeiro para a versão secundária mais recente do RDS for MySQL 5,6 e só então atualize a versão principal do banco de dados. Para mais informações, consulte as Perguntas frequentes.

      Atualização de 5,7 para 8,0

      • Verifique a compatibilidade de recursos: Se os procedimentos armazenados, gatilhos, views ou funções do seu banco de dados usarem recursos não suportados pelo MySQL 8.0, modifique-os antes da atualização. Caso contrário, a atualização falhará.

      • Verifique dependências de tabelas do sistema: Analise se seus services dependem de tabelas de sistema do MySQL 5,7 (tabelas nos bancos de dados sys, mysql, information_schema e performance_schema). Algumas tabelas de sistema do MySQL 5,7 sofrem alterações durante a atualização para o 8,0. Por exemplo, tabelas podem ser removidas, renomeadas ou ter seus esquemas alterados. Se seus services dependerem dessas tabelas, poderão ocorrer erros.

      • Verifique a compatibilidade de tipos de dados: O RDS for MySQL 8,0 deixou de suportar alguns tipos de dados de versões anteriores. Se uma tabela contiver campos com tipos de dados não suportados no MySQL 8,0, resolva essa questão executando REPAIR TABLE ou realizando uma exportação e importação lógica antes da atualização. Para mais informações, consulte Preparando sua instalação para atualização.

      • Verifique valores de comment****: Versões secundárias do MySQL 8,0 a partir de 20221231 introduzem o parâmetro loose_upgrade_clear_invalid_comment. Quando este parâmetro está definido como ON (valor padrão), caracteres inválidos nos comentários de tabelas, campos e índices são limpos automaticamente durante a atualização para evitar falhas. Portanto, antes da atualização, verifique se os valores de comment nas tabelas do seu banco de dados contêm caracteres inválidos. Se houver, o comment será limpo.

      • Verifique procedimentos armazenados: Se os procedimentos armazenados ou funções do seu banco de dados contiverem caracteres inválidos, corrija-os antes da atualização para evitar falhas.

      • Verifique tipos de dados de tempo do MySQL 5,5 e anteriores: Se o seu banco de dados contiver tabelas com tipos de dados de tempo do MySQL 5,5 ou anteriores, recrie essas tabelas antes de atualizar para o MySQL 8,0 para prevenir falhas.

        • Execute as instruções SQL a seguir para verificar se sua instância de banco de dados contém tabelas com tipos de dados de tempo do MySQL 5,5 ou anteriores:

          # Show old time data types.
          SET SESSION show_old_temporals= ON;
          
          # Query for tables that contain old time data types.
          SELECT TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM information_schema.columns WHERE COLUMN_TYPE IN ("time /* 5.5 binary format */ ", "timestamp /* 5.5 binary format */", "datetime /* 5.5 binary format */ ");
        • Se uma tabela contiver tipos de dados de tempo do MySQL 5,5 ou anteriores, execute o comando a seguir para recriar o esquema da tabela:

          # Rebuild the table.
          ALTER TABLE <table_name> FORCE;
  4. Testes e simulação pré-atualização

    • Teste de sintaxe: Antes da atualização, crie uma nova instância RDS com a versão mais recente para testar a compatibilidade de sintaxe. Isso ajuda a evitar problemas onde a sintaxe ou recursos da versão anterior não sejam suportados após a atualização.

    • Simulação de atualização: Antes de atualizar, clone a instância original e use a instância clonada para testar a atualização. Após confirmar que todos os recursos funcionam conforme esperado, atualize a instância original.

  5. Observações pós-atualização

    • Restaurar uma instância para a versão antiga: É possível usar um backup de disco em cloud da versão antiga para restaurar uma instância para essa versão. Isso não é suportado para instâncias com discos locais de alto desempenho.

    • Restaurar uma instância para a nova versão: Não é possível usar conjuntos de backup da versão antiga para restaurar uma instância para a nova versão. Para realizar uma restauração, utilize um conjunto de backup criado após a atualização da instância.

Procedimento

Selecione um método de atualização com base no cenário:

Método de atualização

Cenário de atualização

Realizar uma pré-verificação e depois atualizar

  • High-availability Edition (disco local de alto desempenho): Atualização de 5,6 para 5,7 ou de 5,7 para 8,0.

  • High-availability Edition (ESSD ou disco de alto desempenho) e Cluster Edition (ESSD ou disco de alto desempenho): Atualização de 5,7 para 8,0.

Atualização direta

  • High-availability Edition com discos locais de alto desempenho: Atualização de 5,5 para 5,6.

  • Basic Edition (ESSD ou disco de alto desempenho): Atualização de 5,7 para 8,0.

Realizar uma pré-verificação e depois atualizar

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde sua instância está localizada. Em seguida, clique em Major Version Upgrade para acessar a página Upgrade Check.

  2. No painel de navegação à esquerda, clique em Major Version Upgrade para acessar a página Upgrade Check.

  3. Na lista suspensa Select upgrade version, selecione a versão alvo e clique em Create upgrade check report. Para mais informações sobre o relatório, consulte Descrição do relatório de verificação de atualização de versão principal.

  4. Após a conclusão da verificação e confirmação de que não há riscos, mude para a aba Upgrade Instance.

  5. Na lista suspensa Select upgrade version, selecione a versão alvo e clique em Upgrade Instance.

  6. Na caixa de diálogo Major Engine Version Upgrade, confirme a versão alvo, selecione um Switching Time e clique em Upgrade.

Atualização direta

  1. Acesse a página Instances. Na barra de navegação superior, selecione a região onde sua instância está localizada. Em seguida, clique em Major Version Upgrade para acessar a página Upgrade Check.

  2. Na seção Basic Information > Configuration Information, clique em Upgrade Major Engine Version.

    Nota

    Se esta opção não estiver disponível, verifique se sua instância atende aos requisitos de atualização.

  3. Na caixa de diálogo exibida, selecione Switch Now ou Switch Within Maintenance Window e clique em OK.

    • Switch Now: Inicia a atualização imediatamente.

    • Switch Within Maintenance Window: A atualização é executada dentro da janela de manutenção especificada. Você também pode clicar em Settings ao lado de Maintenance Window para alterar rapidamente a janela de manutenção.

    Nota

    Durante a atualização, o status da instância será Upgrading Version.

Método 2: Atualizar a versão do banco de dados usando o DTS

Para instâncias que não suportam atualização direta pelo console, crie uma nova instância com uma versão mais recente do banco de dados. Em seguida, use uma tarefa de migração de dados do DTS para migrar os dados da instância original para a nova. Isso atualiza a versão do banco de dados indiretamente. O processo envolve as seguintes etapas:

  1. Criar uma nova instância

  2. Migrar dados para a nova instância

  3. Liberar a instância original

Exemplo: Suponha que você tenha uma instância MySQL 5,7 com TDE habilitado, que não pode ser atualizada diretamente pelo console. Nesse caso, crie uma nova instância executando o MySQL 8,0, migre os dados da instância original para a nova e, finalmente, libere a instância original. Isso atualiza a versão do banco de dados indiretamente.

Importante

Após uma migração de dados entre versões, teste a compatibilidade e monitore a instância por um período. Somente após confirmar que tudo está normal, libere a instância original.

Apêndice 1: Benefícios da atualização do MySQL 5,7 para o MySQL 8,0

  • Melhora a segurança e oferece maior flexibilidade no gerenciamento de contas.

  • Suporta a criação e o gerenciamento de grupos de recursos.

  • Aprimora os recursos do mecanismo de armazenamento InnoDB.

  • Adiciona suporte a novos conjuntos de caracteres, tipos de dados, sintaxe, novos bloqueios de backup e sinalizadores optimizer_switch.

  • Aprimora a funcionalidade JSON e XML.

  • Aprimora os recursos do otimizador.

  • Melhora o desempenho da replicação.

  • Suporta a criação de índices multivalorados e otimização de pushdown de condições derivadas.

  • Suporta a leitura de tabelas de concessão do MySQL.

  • Suporta controle de alocação de recursos.

Apêndice 2: Benefícios da atualização do MySQL 5,6 para o MySQL 5,7

  • Adiciona recursos como gerenciamento de senhas, bloqueio de contas e conexões criptografadas para melhorar a segurança do banco de dados.

  • Suporta operações DDL online, como renomear um índice usando RENAME INDEX.

  • Melhora a escalabilidade do mecanismo InnoDB e o desempenho de tabelas temporárias para carregamento de dados mais rápido.

  • Suporta JSON.

  • Suporta Index Condition Pushdown (ICP) para tabelas particionadas e novos índices espaciais InnoDB.

  • Otimiza a maioria dos analisadores, otimizadores e modelos de custo para melhorar a manutenibilidade, escalabilidade e desempenho do banco de dados.

  • Expande a variedade de conjuntos de caracteres suportados, incluindo o conjunto de caracteres GB18030 especificado pelo padrão nacional chinês.

  • Fornece o plugin de analisador de texto completo ngram, que suporta chinês, japonês e coreano.

  • Otimiza threads de dump de source para reduzir a contenção de bloqueios e aumentar o throughput da source.

  • Reduz significativamente o atraso de replicação.

  • Adiciona o banco de dados de sistema sys, que fornece várias métricas e reduz o uso de armazenamento, melhorando significativamente a usabilidade do banco de dados.

Apêndice 3: Diferenças de recursos entre MySQL 8,0 e MySQL 5,7

Nota

A tabela a seguir lista apenas algumas das diferenças importantes entre o MySQL 8,0 e o 5,7. Para mais informações sobre outras diferenças, consulte as Notas de Lançamento do MySQL.

Recurso

5,7

8,0

Sintaxe GRANT ... IDENTIFIED BY PASSWORD

Suportado

Não suportado

Função PASSWORD()

Suportado

Não suportado

Sintaxe FLUSH QUERY CACHE e RESET QUERY CACHE

Suportado

Não suportado

Parâmetros para a variável de sistema SQL_MODE: DB2, MAXDB, MSSQL, MYSQL323, MYSQL40, ORACLE, POSTGRESQL, NO_FIELD_OPTIONS, NO_KEY_OPTIONS, NO_TABLE_OPTIONS

Suportado

Não suportado

Classificação automática padrão para sintaxe GROUP BY

Suportado

Não suportado

Sintaxe que contém a palavra-chave EXTENDED ou PARTITIONS

Suportado

Não suportado

Funções de criptografia como ENCODE(), DECODE() e ENCRYPT()

Suportado

Não suportado

Funções relacionadas à análise espacial

Suportado

Não suportado

Funções que anteriormente aceitavam strings WKB ou argumentos de geometria, mas não aceitam mais argumentos de geometria

Suportado

Não suportado

Análise de \N como NULL

Suportado

Não suportado

Função PROCEDURE ANALYSE()

Suportado

Não suportado

Criação de tabelas particionadas usando o mecanismo de armazenamento NDB

Suportado

Não suportado

Compressão de tabelas temporárias usando o mecanismo de armazenamento InnoDB

Suportado

Não suportado

Função JSON_APPEND()

Suportado

Não suportado

Suporte para colocar partições de tabela em um tablespace compartilhado

Suportado

Não suportado

Sintaxe ALTER TABLE ... UPGRADE PARTITIONING

Suportado

Não suportado

Apêndice 4: Diferenças de recursos entre MySQL 5,7 e MySQL 5,6

Nota

A tabela a seguir lista apenas algumas das diferenças importantes entre o MySQL 5,7 e o 5,6. Para mais informações sobre outras diferenças, consulte as Notas de Lançamento do MySQL.

Recurso

5,6

5,7

CREATE...AS SELECT no modo GTID

Suportado

Não suportado

Uso de tabelas temporárias em transações no modo GTID

Suportado

Não suportado

Especificação de chave de partição em tabela particionada

Suportado

Não suportado

Sintaxe ENGINE_NO_CACHE

Suportado

Não suportado

Índices invisíveis

Suportado

Não suportado

Sintaxe UPDATE non_affected_rows INSERT

Suportado

Não suportado

Comandos relacionados a proxy

Usa o método de comando SET

Usa o modo Call Procedure

Mecanismos TokuDB, Sphinx, RocksDB e Memory

Suportado

Não suportado

Função str_ord()

Suportado

Não suportado

Função raiseerror()

Suportado

Não suportado

OPTIMIZE TABLE table ASYNC

Suportado

Não suportado

ENGINE_NO_CACHE

Suportado

Não suportado

Tabela INFORMATION.TABLE_UTILIZATION

Suportado

Não suportado

As colunas requesting_thd_id e blocking_thd_id na tabela INFORMATION_SCHEMA.INNODB_LOCK_WAITS

Suportado

Não suportado

Tabela INFORMATION_SCHEMA.INNODB_RSEG

Suportado

Não suportado

Tabela INFORMATION_SCHEMA.INNODB_IO_STATUS

Suportado

Não suportado

Recurso de compressão de coluna

Suportado

Não suportado

Cache de plano de consulta

Suportado

Não suportado

Sintaxe Limit + Union

Parênteses não são necessários.

Parênteses são necessários.

Sintaxe SHOW FULL PROCESSLIST

No MySQL 5,7, as colunas memory e query_memory foram removidas do resultado.

max_statement_time e max_execution_time

No MySQL 5,7, max_statement_time foi removido e apenas max_execution_time foi mantido.

Sintaxe RDS_SQL_MAX_AFFECTED

No MySQL 5,7, não é mais possível usar RDS_SQL_MAX_AFFECTED para limitar o número de registros afetados por uma única instrução UPDATE ou DELETE. Use a variável rds_sql_max_affected_rows em vez disso.

Ajustes de otimização de desempenho de concorrência

No MySQL 5,7, os seguintes parâmetros não são mais suportados para controle de concorrência:

  • innodb_adaptive_tickets_algo

  • innodb_min_concurrency_tickets

  • rds_threads_running_ctl_mode

  • rds_threads_running_high_watermark

  • rds_filter_key_cmp_in_order

  • rds_reset_all_filter

  • rds_sql_delete_filter

  • rds_sql_select_filter

  • rds_sql_update_filter

  • rds_strict_concurrency

  • rds_thread_extra_concurrency

  • rds_strict_trx_idle_timeout

  • rds_sql_buf_read_bandwidth

  • rds_sql_buf_read_threshold_bytes

  • rds_sql_buf_write_bandwidth

  • rds_sql_buf_write_threshold_bytes

  • rds_sql_max_iops

Ajustes nas variáveis de contagem de conexões

As seguintes variáveis foram removidas no MySQL 5,7:

  • extra_max_connections

  • rds_root_connections

  • rds_sysinfo_connections

  • rds_sysinfo_user_list

Ajustes relacionados à replicação

  • Ajustes de compatibilidade do MySQL 5,7:

    • A replicação entre bancos de dados com GTID habilitado e não habilitado não é mais suportada.

    • sql_slave_skip_counter não pode mais ser usado com GTIDs.

    • CREATE .... SELECT não é mais suportado.

  • Ajustes relacionados a slave no MySQL 5,7:

    • SHOW SLAVE LAG não é mais suportado.

    • SHOW SLAVE STATUS não suporta mais timeouts.

    • SHOW SLAVE STATUS exibe menos informações.

    • O sql_thread do slave não suporta mais timeouts de execução.

    • O sql_thread do slave não suporta mais pular certas instruções.

  • Ajustes de log binário no MySQL 5,7:

    • O ajuste de velocidade de transmissão não é mais suportado.

    • rds_rpl_receive_buffer_difftime não é mais suportado.

    • rds_rpl_receive_buffer_size não é mais suportado.

Ajustes relacionados a logs

Ajustes no log de erros do MySQL 5,7:

  • O endereço IP, usuário e latência de I/O ou rede para SHUTDOWN não são mais registrados.

  • A exibição do nome da tabela para uma chave duplicada não é mais suportada.

Tipos de dados de tempo antigos (<u>TIME</u>, <u>DATETIME</u> e <u>TIMESTAMP</u>)

Antes da versão 5.6.4, tipos de dados de tempo antigos não suportavam microssegundos.

Tipos de dados de tempo suportam precisão de microssegundos.

Importante

Durante uma atualização de 5,6 para 5,7, o sistema detecta e recria tabelas que contêm campos com tipos de dados de tempo antigos. Isso torna o processo de atualização mais lento.

Apêndice 5: Diferenças de recursos entre MySQL 5,5 e MySQL 5,6

Nota

A tabela a seguir lista apenas algumas das diferenças importantes entre o MySQL 5,5 e o 5,6. Para mais informações sobre outras diferenças, consulte o Manual de Referência do MySQL 5.6.

Recurso

MySQL 5,5

MySQL 5,6

Índice de texto completo

Não suportado

Suportado

DDL online InnoDB

Não suportado

Parcialmente suportado

REDO

Suporta no máximo 4 GB

Suporta no máximo 512 GB

Descarte de páginas sujas

Thread única

Usa uma thread de descarte separada

Purge

Thread única

Multithread

EXCHANGE PARTITION

Não suportado

Suportado

Seleção explícita de partição em DML

Não suportado

Suportado

INFORMATION_SCHEMA

O MySQL 5,6 fornece mais informações sobre o buffer pool e mais metadados sobre tabelas, índices e campos.

PERFORMANCE_SCHEMA

O Performance Schema no MySQL 5,6 adiciona mais informações de monitoramento e formatos de visualização.

Replicação

Os aprimoramentos e mudanças na replicação no MySQL 5,6 incluem:

  • Suporte a replicação baseada em GTID. A replicação baseada em GTID é controlada pelos parâmetros gtid_mode e enforce_gtid_consistency.

  • Suporte à aplicação concorrente de logs binários no banco de dados secundário usando múltiplas threads.

  • FLUSH MASTER e FLUSH SLAVE foram alterados para RESET MASTER e RESET SLAVE no MySQL 5,6.

  • SLAVE START e SLAVE STOP foram alterados para START SLAVE e STOP SLAVE no MySQL 5,6.

Importante

Após a atualização de uma instância RDS for MySQL de 5,5 para 5,6, ela muda automaticamente para o modo de replicação baseado em GTID.

Otimizador

O MySQL 5,6 aprimora o otimizador com recursos que incluem:

  • Multi-Range Read.

  • Index Condition Pushdown.

  • Suporte para Optimizer_trace está disponível.

Purga assíncrona de arquivos grandes

Não suportado

Suportado

Pool de threads

Não suportado

Suportado

Agente de desempenho

Não suportado

Suportado

DDL mais rápido

Não suportado

Suportado

Mecanismo de sequência

Não suportado

Suportado

Perguntas frequentes

  • P: Por que ocorre um switchover de instância durante a atualização? Existem outros riscos graves?

    R: Para garantir a estabilidade do service, instâncias com discos locais de alto desempenho são atualizadas primeiro atualizando o nó secundário e depois realizando um switchover. Instâncias com ESSDs são atualizadas criando um novo nó e depois realizando um switchover. Não há outros riscos graves. Para mais informações sobre o impacto de um failover primário/secundário, consulte Impacto de um failover primário/secundário.

  • P: Os nós primário e secundário são atualizados ao mesmo tempo?

    R: Ao atualizar um disco local de alto desempenho, a instância secundária é atualizada primeiro, seguida pela instância primária.

  • P: Como atualizo uma instância Basic Edition executando MySQL 5,7 com SSDs padrão?

    R: Não é possível atualizar esse tipo de instância diretamente. Para atualizar uma instância Basic Edition executando MySQL 5,7 com SSDs padrão, você deve primeiro alterar o tipo de armazenamento de SSD padrão para ESSD e, em seguida, atualizar a versão do banco de dados.

  • P: O modelo de parâmetros é mantido após a atualização da versão do banco de dados?

    R: Depende. Se a instância usar um modelo de parâmetros do sistema antes da atualização, ela será automaticamente trocada para o modelo de parâmetros do sistema correspondente à nova versão. Por exemplo, uma instância usando o modelo de parâmetros MySQL_InnoDB_5.7_High-availability_Performance é trocada para o modelo de parâmetros MySQL_InnoDB_8.0_High-availability_Performance após uma atualização do MySQL 5,7 para o 8,0. No entanto, se a instância usar um modelo de parâmetros personalizado, o modelo de parâmetros não será mantido após a atualização.

  • P: Posso modificar a instância durante a atualização da versão do banco de dados?

    R: Não, não é possível. Você só pode realizar outras operações na instância após a conclusão da atualização.

  • P: A versão do banco de dados suporta atualizações automáticas?

    R: Não. Atualizações automáticas de versão principal não são suportadas.

  • P: Posso fazer downgrade da versão do banco de dados?

    R: Não é possível fazer downgrade direto da versão pelo console. Selecione um dos métodos a seguir com base na existência de dados comerciais na instância:

    • Com dados comerciais: Adquira uma instância que execute uma versão anterior, use o DTS para migrar dados da instância de versão superior para a nova instância de versão inferior e, em seguida, libere a instância de versão superior após a conclusão da migração. Isso faz o downgrade da versão do banco de dados indiretamente. Para mais informações, consulte Migração de dados entre instâncias RDS.

    • Sem dados comerciais: Cancele a assinatura da instância original e adquira uma nova instância que execute a versão anterior desejada. Para instâncias por assinatura, siga o processo de reembolso para cancelar. Para instâncias de pagamento conforme o uso, libere-as diretamente.

  • P: Ao atualizar uma instância RDS for MySQL de 5,6 para 5,7 ou de 5,7 para 8,0, a atualização falha. É exibida a mensagem "The current instance has a full-text index and its minor version is earlier than 20221130. Please upgrade the minor version before deleting and rebuilding the full-text index" ou "The current instance contains a full-text index built in the system tablespace. Please delete and rebuild the corresponding full-text index before proceeding with the upgrade." Qual é a causa e a solução?

    R: A causa e a solução são as seguintes:

    • Causa

      Devido a um problema histórico no MySQL, ao criar um índice de texto completo em uma versão antiga do MySQL 5,6, ele é construído no tablespace do sistema. Ao atualizar para a versão 5,7 ou 8,0, um índice de texto completo no tablespace do sistema pode causar corrupção do tablespace. Portanto, você deve resolver esse problema antes da atualização para evitar corrupção de dados e inacessibilidade.

      Nota

      Esse problema foi corrigido na versão 20221130 do RDS for MySQL 5,6. Índices de texto completo agora são construídos em um tablespace separado.

    • Solução

      Importante

      Índices de texto completo em versões anteriores do RDS for MySQL 5,6 são criados no tablespace do sistema. Portanto, certifique-se de que a versão da qual você está atualizando seja RDS for MySQL 5,6 20221130 ou posterior antes de atualizar para o RDS for MySQL 5,7. Se estiver usando uma versão anterior, atualize para a versão mais recente do RDS for MySQL 5,6 primeiro.

      1. Com base no nome da tabela no aviso, exclua o índice de texto completo que foi construído no tablespace do sistema.

        # Delete the full-text index.
        ALTER TABLE $table_name DROP INDEX $fts_name;
      2. Recrie o índice de texto completo.

        # Re-create the full-text index.
        ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name;
      3. Após criar o índice, execute a seguinte instrução SQL para verificar os índices de texto completo na instância atual. A instrução retorna quaisquer índices de texto completo construídos no tablespace do sistema. Se a consulta retornar um resultado vazio, a atualização do RDS for MySQL 5,6 para o RDS for MySQL 5,7 não falhará devido a esse problema.

        # Query for full-text indexes built in the system tablespace.
        SELECT NAME FROM information_schema.INNODB_SYS_TABLES WHERE TABLE_ID IN ( SELECT CONV(SUBSTRING_INDEX(SUBSTRING_INDEX(NAME, '_', -4),'_', 1),16,10) FROM INNODB_SYS_TABLES WHERE NAME LIKE '%fts_00000000%' AND SPACE = 0);
  • P: Ao atualizar uma instância RDS for MySQL de 5,7 para 8,0, o erro 267 - Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation '=' é relatado. Como lidar com isso?

    R: Verifique o conjunto de caracteres e a intercalação no MySQL. Se estiver usando utf8mb4_general_ci, execute as seguintes instruções SQL para alterá-lo para utf8mb4_0900_ai_ci.

    # Modify the character set and collation of the database.
    ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci;
    # Modify the character set and collation of the table.
    ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
    # Modify the character set and collation of the field.
    ALTER TABLE table_name CHANGE column_name column_name type CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;

    Se você criar uma tabela com a intercalação utf8mb4_general_ci no MySQL 5,7 e depois atualizar para o MySQL 8,0, o sistema usará utf8mb4_0900_ai_ci como a intercalação padrão. Se executar uma consulta que compare uma coluna usando utf8mb4_general_ci com uma coluna usando utf8mb4_0900_ai_ci, o MySQL não conseguirá processar as duas intercalações diferentes, resultando em um erro.

  • P: O tempo de conexão transitória para uma atualização de versão principal é sempre de 15 segundos, independentemente da existência de instâncias somente leitura?

    R: Sim, é. Recomendamos realizar a atualização fora dos horários de pico.

Operações de API relacionadas

Operação de API

Descrição

Atualizar a versão principal de um banco de dados RDS MySQL

Atualiza a versão principal do banco de dados de uma instância RDS.