View a markdown version of this page

Menemukan alasan kegagalan peningkatan versi utama Aurora MySQL - Amazon Aurora

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menemukan alasan kegagalan peningkatan versi utama Aurora MySQL

Dalam tutorial, upgrade dari Aurora MySQL versi 2 ke versi 3 berhasil. Tetapi jika pemutakhiran gagal, Anda pasti ingin tahu alasannya.

Anda dapat mulai dengan menggunakan describe-events AWS CLI perintah untuk melihat peristiwa cluster DB. Contoh ini menunjukkan peristiwa mydbcluster selama 10 jam terakhir.

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

Dalam hal ini, kami mengalami kegagalan precheck upgrade.

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

Untuk mendiagnosis penyebab pasti masalah, periksa log database untuk instance DB penulis. Ketika upgrade ke Aurora MySQL versi 3 gagal, instance penulis berisi file log dengan nama. upgrade-prechecks.log Contoh ini menunjukkan cara mendeteksi keberadaan log tersebut lalu mengunduhnya ke file lokal untuk diperiksa.

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

File upgrade-prechecks.log memiliki format JSON. Kita mengunduhnya menggunakan opsi --output text untuk menghindari pengenkodean output JSON dalam wrapper JSON lain. Untuk peningkatan Aurora MySQL versi 3, log ini selalu menyertakan pesan informasi dan peringatan tertentu. Log ini hanya berisi pesan kesalahan jika peningkatan gagal. Jika peningkatan berhasil, file log tidak dibuat sama sekali.

Untuk meringkas semua kesalahan dan menampilkan bidang objek dan deskripsi terkait, Anda dapat menjalankan perintah grep -A 2 '"level": "Error"' pada isi upgrade-prechecks.log file. Tindakan ini akan menampilkan setiap baris kesalahan dan dua baris setelahnya. Baris ini berisi nama objek basis data yang sesuai dan panduan tentang cara memperbaiki masalahnya.

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

Dalam contoh ini, Anda dapat menjalankan perintah SQL berikut pada tabel yang menyinggung untuk mencoba memperbaiki masalah, atau Anda dapat membuat ulang tabel tanpa indeks menggantung.

OPTIMIZE TABLE problematic_upgrade.dangling_fulltext_index;

Kemudian coba lagi upgrade.