AWS のリレーショナルデータベース(RDS)で Aurora MySQL 2(MySQL 5.7 互換)を使用していますが、標準サポートが 2024 年 10 月 31 日に終了します。
期日までに Aurora MySQL 3(MySQL 8.0 互換)へアップグレードする必要があるのですが、アップグレード作業の際にエラーで躓いたので、記録しておきます。
原因の調査
Amazon RDS のデータベースから、クラスターの「ログとイベント」を開き、最近のイベントを確認します。
1 2 3 | Database cluster engine major version upgrade started. Cluster remains online. Upgrade preparation in progress: Starting online upgrade prechecks. 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.Updates.MajorVersionUpgrade.html#AuroraMySQL.Upgrading.Troubleshooting. |
事前チェックに引っ掛かってアップグレードが失敗しています。
「upgrade-prechecks.log」を確認するように書いてありますので、インスタンスの「ログとイベント」を開き、「upgrade-prechecks.log」でフィルターをかけます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | { "serverAddress": "/tmp%2Fmysql.sock", "serverVersion": "5.7.12 - MySQL Community Server (GPL)", "targetVersion": "8.0.32", "auroraServerVersion": "2.11.5", "auroraTargetVersion": "3.05.2", "outfilePath": "/rdsdbdata/tmp/PreChecker.log", "checksPerformed": [ … { "id": "auroraUpgradeCheckForFtsSpaceIdZero", "title": "Check for fulltext index with space id as zero", "status": "OK", "description": "The auxiliary tables of FTS indexes on the table are created in system table-space. Due to this DDL queries executed on MySQL8.0 shall cause database unavailability. To avoid that, drop and recreate all the FTS indexes on the table or rebuild the table using ALTER TABLE query before the upgrade.", "detectedProblems": [ { "level": "Error", "dbObject": "mediawiki.searchindex", "description": " The auxiliary tables of FTS indexes on the table 'mediawiki.searchindex' are created in system table-space due to https://bugs.mysql.com/bug.php?id=72132. In MySQL8.0, DDL queries executed on this table shall cause database unavailability. To avoid that, drop and recreate all the FTS indexes on the table or rebuild the table using ALTER TABLE query before the upgrade." } ] }, … ], "errorCount": 1, "warningCount": 62, "noticeCount": 0, "Summary": "1 errors were found. Please correct these issues before upgrading to avoid compatibility issues." } |
MediaWiki データベースの searchindex テーブルにエラーがあることが分かりました。
対処法
エラー部分のタイトル「Check for fulltext index with space id as zero」でググると、ドンピシャの記事がありました。
【バージョンアップ】Aurora MySQL8.0までの軌跡 - Qiita
はじめに思った通りに大変で険しい道のりだったので、記憶があるうちに備忘録として残しておきます。MySQLのバージョンアップ対応をしようとしている皆様に少しでも役に立てばと思います!もし何か間違…
テーブルに対して InnoDB を指定し直すと、インデックスが再設定されて解決する可能性がある様なので、phpMyAdmin で MediaWiki のデータベースを開き、SQL タブから下記のクエリを実行しました。
1 | ALTER TABLE mediawiki.searchindex ENGINE = InnoDB |
再度アップグレードを実行
再び、RDS のクラスターからエンジンバージョンの変更を実行したところ、今度は無事 Aurora MySQL 3 にアップグレードすることができました。
コメント