Salta al contenuto

Come posso risolvere l'errore relativo al controllo preliminare all'aggiornamento nella mia istanza database Amazon RDS per MySQL?

5 minuti di lettura
0

Desidero risolvere l'errore relativo al controllo preliminare all'aggiornamento che ricevo quando provo ad aggiornare la mia istanza database Amazon Relational Database Service (Amazon RDS) per MySQL.

Breve descrizione

Amazon RDS e Amazon Aurora compatibile con MySQL prevedono controlli preliminari automatici che riducono al minimo i tempi di inattività non pianificati durante l'aggiornamento di una versione. Quando esegui l'aggiornamento dalla versione 5.7 alla 8.0 di MySQL, o dalla versione 8.0 alla 8.4, i controlli preliminari rilevano eventuali incompatibilità dei dati che potrebbero influire sull'aggiornamento. Quando si verifica un problema relativo al controllo preliminare all'aggiornamento nell'istanza database, l'aggiornamento della versione di Amazon RDS per MySQL si interrompe. Quindi Amazon RDS fornisce i dettagli del controllo preliminare non riuscito nel file di log PrePatchCompatibility.

Per identificare e correggere il problema, visualizza il file di log in Log ed eventi nella console Amazon RDS.

Per informazioni sui controlli preliminari di MySQL, consulta Upgrade checker utility (Utilità di controllo aggiornamento) sul sito web MySQL.

Risoluzione

Nota: se ricevi errori quando esegui i comandi dell'Interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.

Rivedi il messaggio di errore relativo al controllo preliminare all'aggiornamento

Per visualizzare il file di log, procedi nel seguente modo:

  1. Apri la console Amazon RDS.
  2. Nel pannello di navigazione, scegli Database, quindi seleziona il database che stai tentando di aggiornare.
  3. Seleziona la scheda Log ed eventi, quindi individua PrePatchCompatibility in Eventi recenti.
  4. Rivedi il file di log PrePatchCompatibility e risolvi il problema.
    Nota: nella maggior parte dei casi, la voce di log include un collegamento alla documentazione di Amazon RDS per MySQL sulla correzione del problema di incompatibilità.

Controlla se il messaggio contiene errori, avvertenze e avvisi specifici

Nel file di log PrePatchCompatibility, potresti ricevere uno dei seguenti messaggi di controllo preliminare:

  • "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 ricevi un messaggio di errore (ERROR), correggi gli errori prima di provare a eseguire l'aggiornamento. Se ricevi un messaggio di avvertenza (WARNING), Amazon RDS non ha rilevato errori irreversibili, ma ha riscontrato alcuni potenziali problemi.

Se ricevi un messaggio di avviso (NOTICE), Amazon RDS non ha rilevato errori o problemi di compatibilità noti. Tuttavia, controlla il contenuto dell'avviso nei log degli errori.

Elenca i file di log e scarica i dati

Per elencare i file di log e scaricare i dati, completa i seguenti passaggi:

  1. Esegui il comando AWS CLI describe-db-log-files per elencare i file di log:

    aws rds describe-db-log-files --db-instance-identifier DB_identifier --query '*[].[LogFileName]' --output text

    Nota: sostituisci DB_identifier con il nome del database in cui si trova il file di log.
    Esempio di output:

    [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
  2. Esegui il comando download-db-log-file-portion per scaricare un file di registro specifico:

    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>

    Nota: sostituisci DB_identifier con il nome del database in cui si trova il file di log.
    Esempio di output:

    aws rds download-db-log-file-portion --db-instance-identifier testinstance \  
    --log-file-name PrePatchCompatibility.log --starting-token 0 \  
    --output text > PrePatchCompatibilityCopy.log

Informazioni correlate

Upgrading to MySQL 8.0? Here is what you need to know... (Aggiornamento a MySQL 8.0? Ecco cosa c'è da sapere...) sul sito web di MySQL

Preparing your installation for upgrade (Preparazione dell'installazione per l'aggiornamento) sul sito web MySQL