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.
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.
NotaInstâncias Serverless não permitem atualização direta pelo console. Nesse caso, use o Método 2: Atualizar a versão do banco de dados usando o DTS.
Atualizações do MySQL 8,0 para o MySQL 8.4 não são suportadas via console. Para esse caminho de atualização, adote o Método 2: Atualizar a versão do banco de dados usando o DTS.
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
-
Compreenda as diferenças e benefícios da nova versão
Atualização de 5,6 para 5,7: Para detalhes sobre diferenças de recursos, visualize o Apêndice 4: Diferenças de recursos entre MySQL 5,7 e MySQL 5,6. Quanto aos benefícios dessa atualização, consulte o Apêndice 2: Benefícios da atualização do MySQL 5,6 para o MySQL 5,7.
Atualização de 5,7 para 8,0: Informações sobre diferenças de recursos estão disponíveis no Apêndice 3: Diferenças de recursos entre MySQL 8,0 e MySQL 5,7. Já os benefícios da atualização podem ser vistos no Apêndice 1: Benefícios da atualização do MySQL 5,7 para o MySQL 8,0.
-
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.
-
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 TABLEou 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 comoON(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 decommentnas tabelas do seu banco de dados contêm caracteres inválidos. Se houver, ocommentserá 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;
-
-
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.
-
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 |
|
Atualização direta |
|
Realizar uma pré-verificação e depois atualizar
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.
No painel de navegação à esquerda, clique em Major Version Upgrade para acessar a página Upgrade Check.
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.
Após a conclusão da verificação e confirmação de que não há riscos, mude para a aba Upgrade Instance.
Na lista suspensa Select upgrade version, selecione a versão alvo e clique em Upgrade Instance.
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
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.
-
Na seção , clique em Upgrade Major Engine Version.
NotaSe esta opção não estiver disponível, verifique se sua instância atende aos requisitos de atualização.
-
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.
NotaDurante 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:
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.
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
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
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:
| |
Ajustes nas variáveis de contagem de conexões | As seguintes variáveis foram removidas no MySQL 5,7:
| |
Ajustes relacionados à replicação |
| |
Ajustes relacionados a logs | Ajustes no log de erros do MySQL 5,7:
| |
Tipos de dados de tempo antigos ( | 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
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:
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:
| |
Não suportado | Suportado | |
Não suportado | Suportado | |
Não suportado | Suportado | |
Não suportado | Suportado | |
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.
NotaEsse 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.
-
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; -
Recrie o índice de texto completo.
# Re-create the full-text index. ALTER TABLE $table_name ADD FULLTEXT INDEX $fts_name; -
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 |
|
Atualiza a versão principal do banco de dados de uma instância RDS. |