Setelah membaca tulisan Steven Haryanto yang berisi perbandingan tiga basisdata berlisensi bebas, MySQL, PostgreSQL, dan Firebird, saya segera teringat persoalan yang menimpa salah satu Web intranet di kantor beberapa hari lalu. Kebetulan kasus tersebut menimpa MySQL dan tulisan di bawah ini tidak dimaksudkan menambah bara api semangat “anti-MySQL”. Saya hanya mendapati kasus yang mirip dengan pengalaman Steven.
Salah satu situs Web intranet yang dipakai di lingkungan intranet kantor saya menggunakan Drupal dengan basisdata yang digunakan MySQL. Kendati situs Web ini dipakai menjadi semacam “papan buletin” versi online bersama, namun lalu lintas pemakaiannya masih rendah. Maklum, jumlah staf di kantor saya masih sedikit.
Nah, pada saat situs Web intranet tadi saya tinggal tugas ke luar kantor, terdapat gangguan. Pesan kesalahan yang muncul seperti menjelaskan bahwat terdapat berkas berekstensi MYI yang bermasalah. Menurut laporan teman, persoalan tersebut muncul setelah server Web dan sekaligus basisdatanya sempat mati akibat adanya pemutusan aliran listrik. Saya hanya menduga terdapat berkas dari Drupal yang bermasalah, corrupt atau hilang.
Kode sumber lengkap Drupal memang tidak beisi berkas yang dimaksud. Saya kemudian beralih dengan mencari penjelasan kode kesalahan yang dimaksud (kode dari MySQL) dan menambahkan beberapa kata yang saya duga merupakan kata kunci kasus ini. Barulah saya memperoleh penjelasan bahwa gangguan tersebut dari MySQL; dan kian terbukti setelah saya masuk ke basisdata dan melakukan query ke tabel sesi. Pengetahuan bahwa tabel sesi yang bermasalah saya kaitkan dengan nama berkas MYI. Betul: tabel tersebut tidak dapat ditampilkan isinya dengan perintah SQL sederhana.
Tabel sesi tentulah berisi informasi tentang sesi Drupal yang menurut saya
tidak terlalu riskan seandainya pun isinya dibuang, karena hanya bersifat
temporer dan akan dibuatkan lagi untuk sesi berikutnya. Setidaknya jauh
lebih tidak bermasalah seandainya pun isinya terhapus dibanding tabel induk
seperti master tabel pemakai. Saya dapatkan rujukan tentang perbaikan ini
dengan cara menjalankan perintah repair table <namatabel>
.
Cukup dijalankan satu baris perintah tersebut dan Drupal berfungsi dengan
baik seperti semula.
Pengalaman buruk dengan tabel di MySQL yang dapat diselesaikan relatif mudah. Kerugian yang kami alami dengan peristiwa di atas: salah satu situs Web intranet kami sempat tidak berfungsi beberapa hari karena admininistrator — ya, saya sendiri — sedang dinas di luar kantor dan secara tidak langsung akibat persoalan di MySQL. Seperti yang diulas oleh Steven Haryanto.
Terus Solusinya gimana mas?
Kalau kejadian di atas beberapa kali saya mengalami. Repair table tidak sepenuhnya mengembalikan table yang kena, ada record yang akhirnya harus hilang.
Oracle di kantor, karena server mati mendadak karena listrik juga berakibat ribuan record harus ilang, bedanya table masih bisa dipake buat insert dan select masih bisa dilakukan terbatas pada record yang baru.
Apakah ada database server yang kebal karena mesin mati mendadak karena listrik?
memang gak ada satupun database yang kebal dengan yang namanya mesin/listrik mati, paling gak cara meminimalisirnya pake UPS, dan backup/resync. setidaknya meminimalisir kemungkinan data yang hilang.
Asslm….. Mas bisa gak ane minta tutorial lengkap mengenai MySQL 5.0, saya lagi pingin belajar nih. klo ada sih dari sejarah MySQL juga maksudnya versi-versi sebelumnya, thanks sebelumnya… +-+-+Bogor-29-maret-2006+-+-+
Saya masih pakai MySQL 4.x dan bukan pengguna aktif, oleh karena itu belum bisa menyediakan tutorial yang Anda harapkan. Sepengetahuan saya buku-buku MySQL mulai diterbitkan, entah apakah sudah menyinggung versi 5.x.