Memecahkan masalah kerusakan database di Azure Database for MySQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for MySQL - Server Tunggal Database Azure untuk MySQL - Server Fleksibel

Penting

Server tunggal Azure Database for MySQL berada di jalur penghentian. Kami sangat menyarankan Agar Anda meningkatkan ke server fleksibel Azure Database for MySQL. Untuk informasi selengkapnya tentang migrasi ke server fleksibel Azure Database for MySQL, lihat Apa yang terjadi pada Server Tunggal Azure Database for MySQL?

Kerusakan database dapat menyebabkan downtime pada aplikasi Anda. Sangat penting untuk menyelesaikan masalah kerusakan tepat waktu untuk menghindari kehilangan data. Saat kerusakan database terjadi, Anda akan melihat kesalahan ini di log server Anda: InnoDB: Database page corruption on disk or a failed.

Dalam artikel ini, Anda mempelajari cara mengatasi masalah kerusakan database atau tabel. Server fleksibel Azure Database for MySQL menggunakan mesin InnoDB. Mesin ini memiliki fitur pemeriksaan kerusakan otomatis dan operasi perbaikan. InnoDB memeriksa halaman yang rusak dengan menjalankan checksum pada setiap halaman yang dibacanya. Jika menemukan perbedaan checksum, ia akan secara otomatis menghentikan instans server fleksibel Azure Database for MySQL.

Cobalah opsi berikut ini untuk meredakan masalah kerusakan database Anda dengan cepat.

Hidupkan ulang server MySQL Anda

Anda biasanya melihat database atau tabel rusak saat aplikasi Anda mengakses tabel atau database. InnoDB memiliki mekanisme pemulihan crash yang dapat menyelesaikan sebagian besar masalah saat server dihidupkan ulang. Jadi memulai ulang server dapat membantu server pulih dari crash yang menyebabkan database dalam keadaan buruk.

Gunakan metode cadang dan pulihkan

Kami menyarankan agar Anda menyelesaikan masalah kerusakan dengan menggunakan metode cadang dan pulihkan . Metode ini meliputi:

  1. Mengakses tabel yang rusak.
  2. Menggunakan utilitas mysqldump untuk membuat cadangan logis tabel. Cadangan akan mempertahankan struktur tabel dan data yang ada di dalamnya.
  3. Memuat ulang tabel ke dalam database.

Mencadangkan database atau tabel Anda

Penting

Buat cadangan dari baris perintah dengan menggunakan mysqldump. Gunakan perintah ini:

$ mysqldump [--ssl-cert=/path/to/pem] -h [host] -u [uname] -p[pass] [dbname] > [backupfile.sql]

Deskripsi parameter:

  • [ssl-cert=/path/to/pem]: Jalur menuju sertifikat SSL. Unduh sertifikat SSL pada komputer klien Anda dan atur jalur di dalamnya dalam perintah. Jangan gunakan parameter ini jika SSL nonaktif.
  • [host]: Instans server fleksibel Azure Database for MySQL Anda.
  • [uname]: Nama pengguna admin server Anda.
  • [pass]: Kata sandi untuk pengguna admin Anda.
  • [dbname]: Nama database Anda.
  • [backupfile.sql]: Nama file untuk cadangan database Anda.

Penting

  • Untuk server tunggal Azure Database for MySQL, gunakan format admin-user@servername untuk mengganti myserveradmin dalam perintah berikut.
  • Untuk server fleksibel Azure Database for MySQL, gunakan format admin-user untuk mengganti myserveradmin dalam perintah berikut.

Jika tabel tertentu rusak, pilih tabel tertentu pada database Anda untuk mencadangkan:

$ mysqldump --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb table1 table2 > testdb_tables_backup.sql

Untuk mencadangkan satu atau beberapa database, gunakan tombol --database dan daftar nama database, dipisahkan oleh spasi:

$ mysqldump --ssl-cert=</path/to/pem>  -h mydemoserver.mysql.database.azure.com -u myserveradmin -p --databases testdb1 testdb3 testdb5 > testdb135_backup.sql

Memulihkan database atau tabel Anda

Langkah-langkah berikut ini menunjukkan cara memulihkan database atau tabel Anda. Setelah membuat file cadangan, Anda dapat memulihkan tabel atau database dengan menggunakan utilitas mysql. Jalankan perintah ini:

mysql  --ssl-cert=</path/to/pem> -h [hostname] -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

Berikut adalah contoh yang memulihkan testdb dari file cadangan yang dibuat dengan mysqldump:

Penting

  • Untuk server tunggal Azure Database for MySQL, gunakan format admin-user@servername untuk mengganti myserveradmin dalam perintah berikut.
  • Untuk server fleksibel Azure Database for MySQL, gunakan format admin-user untuk mengganti myserveradmin dalam perintah berikut.
$ mysql --ssl-cert=</path/to/pem> -h mydemoserver.mysql.database.azure.com -u myserveradmin -p testdb < testdb_backup.sql

Langkah berikutnya

Jika langkah-langkah sebelumnya tidak mengatasi masalah, Anda selalu bisa memulihkan seluruh server: