Ada kalannya database mysql yang berjalan pada suatu server akan mengalami gangguan. salah satu gangguan tersebut adalah akibat kondisi table yang tidak sehat. Untuk dapat melihat apakah terdapat gangguan atau error pada mysql yang harus di lakukan ceka dalah file logs error mysql.
pada linux ubuntu khususnya lokasi error logs ini terdapat pada direktori /var/log/mysql. Secara default setiap error yang terjadi akan otomatis disimpan pada file logs mysql tersebut. tanda-tanda dari kerusakan tabel dapat dilihat jika terdapat tags ini pada logs.
is marked as crashed and should be repaired
Cara mendapatkan logs error mysql untuk mendapatkan nama tabel yang rusak.
pergi ke /var/log/mysql
kemudian gunakan perintah ls-la untuk melihat daftar file logs yang tersebut
ls -la
akan muncul beberapa file log sesuai dengan gambar dibawah ini.
log terbaru aau terahir akan tertulis pada file error.log sedangkan untuk log file yang memiliki tipe atau extensi .gz adalah archive dari logs tersebut. Secara default logs yang paling lama tersimpan berumur 7 hari.
kemudian buka file error tersebut dengan nano ataupun tail untuk melihat isi dari file mysql error logs tersebut.
tail -F error.log
disini dapat terlihat pada tanggal 20 desember 2019 data mysql mengalami crash dikarenakan terdapat empat table rusak.
daftar tabel yang rusak adalah :
- wp_posts
- wp_es_emaillist
- wp_es_deliverreport
- wp_es_sentdetails
Cara memperbaiki tabel mysql yang rusak dengan CLI / command line
langkah selanjutnya yang di lakukan adalah memperbaiki tabel tersebut. Login ke mysql dengan menggunakan perintah
mysql -u [username] -p
kemudian masukan password dari akun yang digunakan. setelah masuk pada konsol mysql gunakan perintah dibawah ini untuk memperbaiki tabel yang rusak.
repair TABLE [nama_tabel]
disarakan untuk melakukan backup database secara keseluruhan sebelum melakukan proses repair ini karena dapat menyebabkan data loss atau kehilangan data. Gunakan perintah dibawah ini untuk melakukan backup pada database.
mysqldump -u [username] -p [password] [namadatabase] > [targetbackupfolderfile]
contohnya adalah sebagai berikut ini
mysqldump -u username -p databasepp > backup20191221.sql
setelah proses backup selesai maka akan muncul file backup tersebut di target folder yang telah dispesifikasikan pada perintah.
setelah memastikan terdapat backup maka proses repair dapat dilakukan
repair tabel wp_es_deliverreport
perintah yang digunakan
repair wp_es_deliverreport
bile proses repair selesai pada konsol akan ditunjukan text yang menandakan bahwa tabel tersebut saat ini telah memiliki kondisi yang baik.
lakukan perintah yang sama untuk semua tabel yang rusak.
Cara cek kondisi health atau kesehatan tabel pada mysql
langkah terahir adalah melakukan validasi apabila tabel tersebut dalam kondisi baik (good health). Gunakan perintah ini untuk memastikan tidak ada lagi tabel yang dalam kondisi rusak (buruk)
mysqlcheck -u [username] -p -A
Perintah diatas akan memberikan kondisi kesehatan (table health) atas seluruh database yang ada pada mysql. Pastikan seluruh tabel ditandai dengan “OK” sesuia dengan gambar dibawah ini