Finden Sie die Gründe für Fehler bei der Aktualisierung der SQL Hauptversion von Aurora My - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Finden Sie die Gründe für Fehler bei der Aktualisierung der SQL Hauptversion von Aurora My

Im Tutorial war das Upgrade von Aurora My SQL Version 2 auf Version 3 erfolgreich. Wenn das Upgrade jedoch fehlgeschlagen wäre, würden Sie wissen wollen, warum.

Sie können damit beginnen, den describe-events AWS CLI Befehl zu verwenden, um sich die DB-Cluster-Ereignisse anzusehen. Dieses Beispiel zeigt die Ereignisse der letzten 10 Stunden. mydbcluster

aws rds describe-events \ --source-type db-cluster \ --source-identifier mydbcluster \ --duration 600

In diesem Fall ist bei der Upgrade-Vorabprüfung ein Fehler aufgetreten.

{ "Events": [ { "SourceIdentifier": "mydbcluster", "SourceType": "db-cluster", "Message": "Database cluster engine version upgrade started.", "EventCategories": [ "maintenance" ], "Date": "2024-04-11T13:23:22.846000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster" }, { "SourceIdentifier": "mydbcluster", "SourceType": "db-cluster", "Message": "Database cluster is in a state that cannot be upgraded: Upgrade prechecks failed. For more details, see the upgrade-prechecks.log file. For more information on troubleshooting the cause of the upgrade failure, see https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Upgrading.Troubleshooting.html", "EventCategories": [ "maintenance" ], "Date": "2024-04-11T13:23:24.373000+00:00", "SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:mydbcluster" } ] }

Um die genaue Ursache des Problems zu diagnostizieren, untersuchen Sie die Datenbankprotokolle für die Writer-DB-Instance. Wenn ein Upgrade auf Aurora My SQL Version 3 fehlschlägt, enthält die Writer-Instanz eine Protokolldatei mit dem Namenupgrade-prechecks.log. Dieses Beispiel zeigt, wie Sie das Vorhandensein dieses Protokolls erkennen und es dann zur Untersuchung in eine lokale Datei herunterladen.

aws rds describe-db-log-files --db-instance-identifier mydbcluster-instance \ --query '*[].[LogFileName]' --output text error/mysql-error-running.log error/mysql-error-running.log.2024-04-11.20 error/mysql-error-running.log.2024-04-11.21 error/mysql-error.log external/mysql-external.log upgrade-prechecks.log aws rds download-db-log-file-portion --db-instance-identifier mydbcluster-instance \ --log-file-name upgrade-prechecks.log \ --starting-token 0 \ --output text >upgrade_prechecks.log

Die upgrade-prechecks.log Datei ist im JSON Format. Wir laden sie mit der --output text Option herunter, um zu vermeiden, dass die JSON Ausgabe in einem anderen JSON Wrapper kodiert wird. Bei Upgrades auf Aurora My SQL Version 3 enthält dieses Protokoll immer bestimmte Informations- und Warnmeldungen. Es enthält nur Fehlermeldungen, wenn das Upgrade fehlschlägt. Wenn das Upgrade erfolgreich ist, wird die Protokolldatei überhaupt nicht erstellt.

Um alle Fehler zusammenzufassen und die zugehörigen Objekt- und Beschreibungsfelder anzuzeigen, können Sie den Befehl grep -A 2 '"level": "Error"' für den Inhalt der upgrade-prechecks.log Datei ausführen. Dadurch werden jede Fehlerzeile und die beiden Zeilen danach angezeigt. Diese enthalten den Namen des entsprechenden Datenbankobjekts und Anleitungen zur Behebung des Problems.

$ cat upgrade-prechecks.log | grep -A 2 '"level": "Error"' "level": "Error", "dbObject": "problematic_upgrade.dangling_fulltext_index", "description": "Table `problematic_upgrade.dangling_fulltext_index` contains dangling FULLTEXT index. Kindly recreate the table before upgrade."

In diesem Beispiel können Sie den folgenden SQL Befehl für die fehlerhafte Tabelle ausführen, um zu versuchen, das Problem zu beheben, oder Sie können die Tabelle ohne den fehlerhaften Index neu erstellen.

OPTIMIZE TABLE problematic_upgrade.dangling_fulltext_index;

Versuchen Sie dann erneut, das Upgrade durchzuführen.