Quero solucionar a falha na verificação de pré-upgrade que recebo quando tento fazer upgrade na minha instância de banco de dados do Amazon Relational Database Service (Amazon RDS) para MySQL.
Breve descrição
O Amazon RDS e o Amazon Aurora edição compatível com MySQL têm pré-verificações automáticas que minimizam qualquer tempo de inatividade não planejado durante o upgrade de uma versão. Quando você faz upgrade no MySQL da versão 5.7 para 8.0 ou da 8.0 para 8.4, as pré-verificações detectam qualquer incompatibilidade de dados que possa afetar seu upgrade. Se receber uma falha na verificação de pré-upgrade em sua instância de banco de dados, o upgrade da versão do Amazon RDS para MySQL será interrompido. Em seguida, o Amazon RDS fornece os detalhes da falha na pré-verificação no arquivo de log PrePatchCompatibility.
Para identificar e corrigir o problema, visualize o arquivo de log em Logs e eventos no console do Amazon RDS.
Para obter mais informações sobre as pré-verificações do MySQL, consulte Upgrade checker utility (Utilitário de verificação de upgrade) no site do MySQL.
Resolução
Observação: se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de problemas da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.
Revise a mensagem de falha na verificação de pré-upgrade
Para visualizar seu arquivo de log, conclua as seguintes etapas:
- Abra o console do Amazon RDS.
- No painel de navegação, selecione Bancos de dados e clique no banco de dados que você deseja fazer upgrade.
- Selecione a guia Logs e eventos e, em seguida, pesquise PrePatchCompatibility em Eventos recentes.
- Revise o arquivo de log PrePatchCompatibility e solucione o problema.
Observação: na maioria dos casos, a entrada de log inclui um link para a documentação do Amazon RDS para MySQL que descreve como corrigir o problema de incompatibilidade.
Verifique se há mensagens de erros específicos, alertas e mensagens em nível de aviso
No arquivo de log PrePatchCompatibility, é possível receber uma das seguintes mensagens de pré-verificação:
- "Usage of old temporal type : ERROR"
- "Usage of db objects with names conflicting with new reserved keywords : WARNING"
- "Usage of utf8mb3 charset : NOTICE"
- "Table names in the mysql schema conflicting with new tables in 8.0 : ERROR"
- "Partitioned tables using engines with non native partitioning : ERROR"
- "Foreign key constraint names longer than 64 characters : ERROR"
- "Usage of obsolete MAXDB sql_mode flag : WARNING"
- "Usage of obsolete sql_mode flags : NOTICE"
- "ENUM/SET column definitions containing elements longer than 255 characters : ERROR"
- "Usage of partitioned tables in shared tablespaces : ERROR"
- "Circular directory references in tablespace data file paths : ERROR"
- "Usage of removed functions : ERROR"
- "Usage of removed GROUP BY ASC/DESC syntax : ERROR"
- "Removed system variables for error logging to the system log configuration : ERROR"
- "Removed system variables : ERROR"
- "System variables with new default values : WARNING"
- "Schema inconsistencies resulting from file removal or corruption : ERROR"
- "Issues reported by 'check table x for upgrade' command : ERROR or WARNING or NOTICE"
- "The definer column for mysql.events cannot be null or blank. : ERROR"
- "Tables with dangling FULLTEXT index reference : ERROR"
- "Routines with deprecated keywords in definition : ERROR"
- "DB instance must have enough free disk space : ERROR"
- "Creating indexes larger than 767 bytes on tables with redundant row format might cause the tables to be inaccessible. : WARNING"
- "The tables with redundant row format can't have an index larger than 767 bytes. : ERROR"
- "Column definition mismatch between InnoDB Data Dictionary and actual table definition. : ERROR"
Se você receber uma mensagem de ERRO, corrija-os antes de tentar fazer o upgrade. Se você receber uma mensagem de ALERTA, o Amazon RDS não encontrou nenhum erro fatal, mas encontrou alguns possíveis problemas.
Se você receber uma mensagem de AVISO, o Amazon RDS não encontrou nenhum erro ou problema de compatibilidade conhecido. No entanto, verifique o AVISO nos logs de erro.
Liste os arquivos de log e baixe os dados
Para listar os arquivos de log e baixar os dados, conclua as seguintes etapas:
-
Execute o comando describe-db-log-files da AWS CLI para listar os arquivos de log:
aws rds describe-db-log-files --db-instance-identifier DB_identifier --query '*[].[LogFileName]' --output text
Observação: substitua DB_identifier pelo nome do banco de dados no qual o arquivo de log está.
Exemplo de saída:
[root@ip-x-x-x-x ec2-user]# aws rds describe-db-log-files --db-instance-identifier testinstance --query '*[].[LogFileName]' --output text
PrePatchCompatibility.log
error/mysql-error.log
error/mysql-error-running.log
error/mysql-error-running.log.2023-05-06.3
error/mysql-error-running.log.2023-05-09.4
error/mysql-error-running.log.2023-05-10.3
error/mysql-error-running.log.2023-05-12.19
mysqlUpgrade
-
Execute o comando download-db-log-file-portion para baixar um arquivo de log específico:
aws rds download-db-log-file-portion --db-instance-identifier DB_identifier \--log-file-name PrePatchCompatibility.log --starting-token 0 \--output text > <LogFileName to save a copy>
Observação: substitua DB_identifier pelo nome do banco de dados no qual o arquivo de log está.
Exemplo de saída:
aws rds download-db-log-file-portion --db-instance-identifier testinstance \
--log-file-name PrePatchCompatibility.log --starting-token 0 \
--output text > PrePatchCompatibilityCopy.log
Informações relacionadas
Upgrading to MySQL 8.0? Here's what you need to know (Fazendo upgrade para o MySQL 8.0? Aqui está o que você precisa saber) no site do MySQL
Preparing your installation for upgrade (Preparando sua instalação para upgrade) no site do MySQL