Memperbaiki Database MySQL

Tulisan ini berawal ketika HoN IDGS mengalami gangguan di databasenya, kemungkinan besar karena data yang ditransaksikan sudah cukup besar, dan jumlah recordnya pun sudah sedemikian banyak sehingga sangat rentan untuk terjadi kerusakan. Awalnya gw mencoba untuk melakukan repair database dengan menggunakan perintah REPAIR TABLE di console MySQL. Perintahnya cukup sederhana. Misalnya kita punya database foo dengan isinya table bar1 dan bar2, dan kita ingin memperbaiki keduanya sekaligus, maka perintah yang dijalankan di console MySQL adalah:

REPAIR TABLE foo.bar1, foo.bar2

Cukup sederhana bukan? Tapi cukup merepotkan apabila kita tidak tahu persis database dan table mana yang rusak atau kita ingin melakukan pemeriksaan dan perbaikan terhadap seluruh database dan table yang ada.

Setelah melakukan pencarian singkat, maka akhirnya ditemukan sebuah cara untuk melakukan pemeriksaan dan perbaikan terhadap seluruh database. MySQL telah menyediakan sebuah tool yang bernama MySQLCheck. Perintahnya dijalankan di console Linux seperti berikut ini:

mysqlcheck -uroot -p –auto-repair –check –optimize –all-databases

Yang perlu diperhatikan adalah, sedapat mungkin matikan service-service lain yang kemungkinan besar akan mengakses database (sehingga locking mysqlcheck tidak dapat berjalan). Biasanya webserver lah yang sering mengakses database, jadi ada baiknya mematikan service webserver (bisa Apache, IIS, ataupun nginx).

Untuk database yang besar, proses ini cukup memakan waktu. Untuk database HoN-IDGS, memakan waktu kurang lebih 2 jam hingga proses ini benar-benar selesai (untuk lebih meyakinkan, gw menjalankan mysqlcheck 2 kali dan melakukan restart service mysql diantaranya).

Comments are closed.