Direkt zum Inhalt

Wie behebe ich einen Fehler bei der Überprüfung vor dem Upgrade in meiner Amazon RDS für MySQL-DB-Instance?

Lesedauer: 4 Minute
0

Ich möchte den Fehler bei der Überprüfung vor dem Upgrade beheben, den ich erhalte, wenn ich versuche, meine Amazon Relational Database Service (Amazon RDS) für MySQL-DB-Instance zu aktualisieren.

Kurzbeschreibung

Amazon RDS und Amazon Aurora MySQL-kompatible Ausgabe verfügen über automatische Vorabprüfungen, die ungeplante Ausfallzeiten während eines Versions-Upgrades minimieren. Wenn du ein Upgrade von MySQL Version von 5.7 auf 8.0 oder von 8.0 auf 8.4 durchführst, erkennen die Vorabprüfungen jegliche Dateninkompatibilität, die sich auf dein Upgrade auswirken könnte. Wenn bei deiner DB-Instance ein Fehler bei der Überprüfung vor dem Upgrade auftritt, wird dein Versionsupgrade für Amazon RDS für MySQL beendet. Anschließend stellt Amazon RDS die Details der fehlgeschlagenen Vorabprüfung in der PrePatchCompatibility-Protokolldatei bereit.

Um das Problem zu identifizieren und zu beheben, sieh dir die Protokolldatei unter Protokolle und Ereignisse in der Amazon RDS-Konsole an.

Informationen zu den MySQL-Vorabprüfungen findest du unter Upgrade-Checker-Dienstprogramm auf der MySQL-Website.

Lösung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Fehlermeldung zur Überprüfung vor dem Upgrade überprüfen

Gehe wie folgt vor, um deine Protokolldatei anzuzeigen:

  1. Öffne die Amazon-RDS-Konsole.
  2. Wähle im Navigationsbereich Datenbanken und dann die Datenbank aus, die du aktualisieren möchtest.
  3. Wähle die Registerkarte Protokolle und Ereignisse aus und suche dann unter Aktuelle Ereignisse nach PrePatchCompatibility.
  4. Überprüfe die PrePatchCompatibility-Protokolldatei und behebe dann das Problem.
    Hinweis: In den meisten Fällen enthält der Protokolleintrag einen Link zur Amazon RDS für MySQL-Dokumentation zur Behebung des Inkompatibilitätsproblems.

Meldung auf bestimmte Fehler, Warnungen und Warnmeldungen überprüfen

In der PrePatchCompatibility-Protokolldatei erhältst du möglicherweise eine der folgenden Vorabprüfungsmeldungen:

  • „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“

Wenn du die Meldung ERROR erhältst, korrigiere die Fehler, bevor du versuchst, ein Upgrade durchzuführen. Wenn du die Meldung WARNING erhältst, hat Amazon RDS keine schwerwiegenden Fehler gefunden, aber es wurden einige potenzielle Probleme gefunden.

Wenn du die Meldung NOTICE erhältst, hat Amazon RDS keine bekannten Kompatibilitätsfehler oder Probleme gefunden. Überprüfe jedoch den HINWEIS in den Fehlerprotokollen.

Protokolldateien aufführen und Daten herunterladen

Gehe wie folgt vor, um die Protokolldateien aufzuführen und die Daten herunterzuladen:

  1. Führe den AWS-CLI-Befehl describe-db-log-files aus, um die Protokolldateien aufzuführen:

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

    Hinweis: Ersetze DB_identifier durch den Namen der Datenbank, in der sich die Protokolldatei befindet.
    Beispielausgabe:

    [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. Führe den Befehl download-db-log-file-portion aus, um eine bestimmte Protokolldatei herunterzuladen:

    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>

    Hinweis: Ersetze DB_identifier durch den Namen der Datenbank, in der sich die Protokolldatei befindet.
    Beispielausgabe:

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

Ähnliche Informationen

Upgrade auf MySQL 8.0? Hier ist, was du wissen musst auf der MySQL-Website

Installation für das Upgrade vorbereiten auf der MySQL-Website