Ok kali ini saya bahas maalah recovery database mysql dengan tipe INNODB.
Jadi ceritanya customer mengalami crash dimana error 1067 mysql terjadi dan database tidak bisa running. Sudah cek log error terjadi corrupted data yang mana corrupt itu menyebabkan service keseluruhan tidak bisa jalan.
Jadi begini, pertama siapkan database mysql backup, kemudian execute dan create database dan create table sehingga terbentuk pola. Tetapi pastikan dahulu di posisi Mysql Server versi berapa? 5.6 atau 5.7? ada perbedaan ternyata, untuk amannya jika nanti tidak bisa, beri tambahan di script create database dan tablenya sebagai berikut :
) ROW_FORMAT=compact DEFAULT CHARSET=latin1;
Lihat saya tambahkan ROW_FORMAT=COMPACT di bagian akhir create table, gunanya pada perbedaan versi Mysql Server ada perbedaan compact ini clue nya !!
Setelah ter create, maka lakukan perintah pada command SQL
mysql> ALTER TABLE product DISCARD TABLESPACE;
Fungsi di atas untuk melakukan discard pada table space, tapi jika dilihat di bagian explorer Database, sebenernya table anda masih ada, cuman di keluarkan dari tablespace IBD Mysql.
Lalu kopi dari file NAMATABEL.IBD dan NAMATABEL.FRM dari Program Data Mysql yang lama dan timpa ke Program Data Mysql di server baru untuk hasil melakukan recovery.
Sudah ditimpa? pilih yes untuk timpa, lalu lakukan perintah pengembalian integriry datanya.
mysql> ALTER TABLE product IMPORT TABLESPACE;
Lakukan eksekusi script diatas, untuk pengembalian data, jika tidak ada pesan eror maka anda berhasil !!
Seandainya ada error , pastikan :
- Sudah ada compact di query create table
- Cek Kolom dan tipe data table memang sama dan sudah sama
- Apakah benar file IBD dan FRM diambil dari data server lama yang tidak bisa di load pada service musql
Semoga membantu, saya riset dengan cara ini berhari-hari demi recovery database transaksi tokonya yag corrupt entah kenapa sehingga menyebabkan tidak bisa load service mysql. Good Luck !!