Finden der Gründe für Fehler bei Hauptversion-Upgrades von Aurora MySQL - Amazon Aurora

Finden der Gründe für Fehler bei Hauptversion-Upgrades von Aurora MySQL

Im Tutorial wurde das Upgrade von Aurora-MySQL-Version 2 auf Version 3 erfolgreich abgeschlossen. Wenn das Upgrade jedoch fehlgeschlagen wäre, würden Sie wissen wollen, warum.

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

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 Schreiber-DB-Instance. Wenn ein Upgrade auf Aurora-MySQL-Version 3 fehlschlägt, enthält die Schreiber-Instance eine Protokolldatei namens upgrade-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 befindet sich im JSON-Format. Wir laden sie mit der Option --output text herunter, um JSON-Output nicht in einem anderen JSON-Wrapper zu kodieren. Für Upgrades auf Aurora-MySQL-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 problematische Tabelle ausführen, um das Problem zu beheben, oder Sie können die Tabelle ohne den hängenden Index neu erstellen.

OPTIMIZE TABLE problematic_upgrade.dangling_fulltext_index;

Versuchen Sie anschließend das Upgrade erneut.