Dani. Powered by Blogger.
Terimakasih kunjungan anda PIN D71E50F9

Wednesday 12 August 2009

Benerin Struktur Tabel MySQL yang Rusak pake cara REPAIR TABLE

Saat pelaksanaan penilaian portofolio sertifikasi guru di tahun 2008, banyak hal baru dan pengalaman baru yang telah kami dapatkan sebagai tim data. Salah satu diantaranya adalah cara memperbaiki struktur tabel MySQL yang rusak, padahal di dalamnya ada ribuan data nilai portofolio sertifikasi guru.

Berikut ini sedikit sharing bagaimana cara memperbaiki struktur tabel MySQL yang rusak berdasarkan pengalaman kami.

Sebagai informasi awal bahwa untuk keperluan penilaian portofolio sertifikasi guru ini, kami (tim data) telah membuat sistem penilaian yang bersifat multiuser, dengan data yang terintegrasi menjadi satu dalam sebuah server. Waktu itu ketika para asesor (sekitar 100 an lebih) mengentri nilai portofolio secara simultan, mendadak listrik mati. Di luar dugaan ternyata UPS yang membackup server tidak mendukung sehingga dalam waktu yang tidak lama akhirnya server juga mati :-(

Setelah listrik menyala kembali, kami langsung cek keberadaan data penilaian dalam database karena khawatir datanya hilang atau rusak. Alhamdulillah ternyata database, tabel dan data hasil penilaian masih ada. Segera saja, proses penilaian kembali dilanjutkan.

Namun… apa yang terjadi? meskipun database, tabel dan data masih ada, ternyata proses entri nilai yang baru gagal dilakukan. Setiap kali data nilai dientri, munculnya adalah error. Sayang… saya tidak sempat mendokumentasikan errornya :-) Waduh… ada apa ini? Ketika kami mencoba mengentri langsung datanya melalui interface seperti phpMyAdmin, hal yang sama (error) muncul. Feeling kami adalah pasti sesuatu terjadi dengan databasenya akibat listrik mendadak mati tadi. Mungkin struktur database atau tabelnya ada yang corrupt atau rusak.

Melihat hal tersebut.. segera kami (tim data) mengadakan rapat kilat untuk membahas hal yang terjadi. Beberapa alternatif solusi telah ditawarkan oleh beberapa teman dalam tim data berdasarkan pengalamannya masing-masing, mulai dari create database baru, buat tabel baru, mengulangi lagi entri dari awal dsb. Diantara beberapa alternatif solusi tersebut, ada ide salah satu teman yang menyarankan untuk mencoba memperbaiki struktur tabel yang rusak tersebut.

Meskipun bersifat ‘mencoba-coba’ akhirnya kami coba juga merepair tabel MySQL nya. Karena jelas bahwa membuat database baru, dan mengulangi lagi entri data dari awal tidak mungkin dilakukan mengingat data yang telah dientri hampir mendekati 80% dari keseluruhan dan waktu yang diberikan sangat terbatas.

Langkah memperbaiki atau merepair tabel yang kami lakukan adalah dengan memberikan perintah query SQL:

REPAIR TABLE namatabel;

Alternatif lain perintah yang bisa diberikan adalah

myisamchk --recover namatabel

Apabila setelah menjalankan perintah atau query di atas muncul pesan ‘OK’, maka tabel terlah berhasil diperbaiki. Namun bila pesan ‘OK’ belum muncul (tabel masih belum bisa diperbaiki), maka Anda bisa coba alternatif perintah:

myisamchk --safe-recover namatabel

Alhamdulillah setelah tabel direpair dengan menggunakan perintah di atas, akhirnya tabel bisa digunakan kembali secara normal. Memang setelah tabel direpair, ada sebuah data (record) yang hilang. Tapi itu tak mengapa, karena itu masih jauh lebih baik daripada mengulangi entri dari awal semuanya :-)

Catatan:
Perintah REPAIR di atas hanya bisa dilakukan pada tabel yang bertipe MyISAM atau ARCHIVE. Untuk tabel bertipe INNODB sampai saat ini saya belum dapat informasi bagaimana cara memperbaikinya :-)

Mudah-mudahan sharing di atas dapat bermanfaat bagi Anda yang sedang mengalami hal serupa.



0 komentar: