Home Profile

Selasa, Desember 23, 2008

Memperbaiki Tabel pada Database MySQL yang Mengalami Crash

Sedikit berbagi pengalaman saat saya mengerjakan aplikasi retail sederhana terjadi masalah pada databasenya, saat itu aplikasi sudah digunakan sekitar 1 bulan datanya sekitar 1000 untuk pembelian, ternyata setelah saya cek tabel pembelian_detail mengalami crash, entah apa penyebabnya @#*#@***, saya sudah menggunakan cara pertama, yaitu repair tabel, tapi apa yang terjadi bukannya tambah baik tapi bablas semua...

Namanya saja manusia saat terdesak pasti punya akal, dengan melihat keadaan 1000 data yang tidak mungkin kembali dan mau tidak mau saya harus meng-input ulang, membongkar arsip, begadang, minum kopi padahal saya tidak senang kopi. Tetapi akal berbicara lain saya cek dari awal kesalahan terjadi dibagian mana, dengan beberapa tahap (coba-coba sih) :
  1. Repair tabel --> gagal
  2. ekspor data pada tabel yang eror (pembelian_detail) ke dalam format lain (misal HTML) untuk melihat data yang mana yang bisa di ekspor, ini menandakan data setelah data terakhir yang dapat di ekspor adalah penyebab eror (asumsi) --> peluang pembuka
  3. Edit file tabel pada folder Data yang dimiliki MySQL --> Gatot (gagal total)
  4. Melihat data pembelian dari aplikasi retail, ternyata ada beberapa data yang masih bisa di lihat, berarti bisa ditelusuri 1000 data tersebut (tetapi ni sesuatu yang membutuhkan kopi) --> batalkan niat walau ada peluang
  5. Dari cara ke 4 terpikir bahwa data masih bisa diambil, dengan syarat di left join kan dengan tabel yang berelasi, kebetulan tabel pembelian_detail berelasi dengan tabel pembelian, jadi saya masih punya peluang besar.....
  6. Lanjut dari cara lima, saya masukan sql query pada tool database manager (SQLYog), "SELECT * FROM pembelian a LEFT JOIN pembelian b ON b.NoFaktur=a.NoFaktur;", ternyata data mau keluar --> gerbang telah terbuka
  7. Setelah langkah 6, lanjut memfilter data yang dibutuhkan (transformasi), dimana field yang diambil adalah field yang dimiliki oleh tabel pembelian_detail, karena saya hanya membutuhkan data pada tabel tersebut, caranya mudah tinggal mengganti sedikit sqlnya (* diganti dengan b.*)
  8. Nah setelah hasilnya muncul di layar, tinggal diklik kanan dan ekspor / backup ke file *.sql
  9. Hasil backup di restore kembali, dan akan muncul tabel baru dengan nama "b" karena saat dibackup tabel pembelian_detail diwakilkan oleh "b"
  10. Setelah restore sukses, drop (hapus) tabel pembelian_detail, dan tabel "b" di-rename menjadi pembelian_detail
  11. Nah akhirnya data saya kembali normal, tinggal mengecek kesalahan yang menyebabkan database itu crash, apakah aplikasi yang saya buat atau virus, atau kesalahan user....
Mudah-mudahan bermanfaat bagi yang mengalami hal yang sama....

1 komentar:

  1. salam damai,
    kalau benerin mukamu sendiri bisa kagak... muka kok jidat semua

    BalasHapus