Aurora MySQL メジャーバージョンアップグレードが失敗する理由を確認する - Amazon Aurora

Aurora MySQL メジャーバージョンアップグレードが失敗する理由を確認する

チュートリアルでは、Aurora MySQL バージョン 2 からバージョン 3 へのアップグレードに成功しました。ただし、アップグレードが失敗した場合は、必要に応じて、その理由を確認できます。

まず、describe-events AWS CLI コマンドを使用して DB クラスターのイベントを表示できます。この例は、過去 10 時間の mydbcluster のイベントを示しています。

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

この例では、アップグレードの事前チェックが失敗しています。

{ "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" } ] }

問題の正確な原因を診断するには、ライター DB インスタンスのデータベースログを調べます。Aurora MySQL バージョン 3 へのアップグレードが失敗すると、ライターインスタンスに upgrade-prechecks.log という名前のログファイルが追加されます。この例では、そのログの存在を検出し、それを調査のためにローカルファイルにダウンロードする方法を示します。

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

この upgrade-prechecks.log ファイルは JSON 形式です。別の JSON ラッパー内で JSON 出力がエンコードされないように、--output text オプションを使用してこのファイルをダウンロードします Aurora MySQL バージョン 3 のアップグレードでは、このログには常に、特定の情報と警告メッセージが含まれます。エラーメッセージは、アップグレードが失敗した場合にのみ含まれます。アップグレードが成功すると、ログファイルはまったく生成されません。

すべてのエラーを集約して関連するオブジェクトや説明のフィールドを表示するには、upgrade-prechecks.log ファイルの内容に対して grep -A 2 '"level": "Error"' コマンドを実行できます。これにより、各エラー行とその後の 2 行が表示されます。これらの行には、対応するデータベースオブジェクトの名前と、問題の修正方法に関するガイダンスが含まれています。

$ 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."

この例では、問題のあるテーブルに対して次の SQL コマンドを実行して問題の解決を試みるか、ダングリングインデックスなしでテーブルを再作成することができます。

OPTIMIZE TABLE problematic_upgrade.dangling_fulltext_index;

次に、アップグレードを再試行します。