Cara Memperbaiki Tabel Rusak di MySQL - MastahTeknik

Rabu, 20 Maret 2019

Cara Memperbaiki Tabel Rusak di MySQL

database

Kadang-kadang, tabel MySQL bisa rusak, yang berarti bahwa kesalahan telah terjadi dan data yang disimpan di dalamnya tidak dapat dibaca. Upaya membaca dari tabel yang rusak biasanya akan menyebabkan server mogok.
Beberapa penyebab umum tabel rusak adalah:
  • Server MySQL berhenti di tengah penulisan.
  • Program eksternal memodifikasi tabel yang secara simultan sedang dimodifikasi oleh server.
  • Mesin dimatikan secara tak terduga.
  • Perangkat keras komputer gagal.
  • Ada bug perangkat lunak di suatu tempat di dalam kode MySQL.
Jika Anda mencurigai bahwa salah satu tabel Anda telah rusak, Anda harus membuat cadangan direktori data Anda sebelum memecahkan masalah atau mencoba untuk memperbaiki tabel. Ini akan membantu meminimalkan risiko kehilangan data.
Pertama, hentikan layanan MySQL:
1
Kemudian salin semua data Anda ke direktori cadangan baru. Pada sistem Ubuntu, direktori data default adalah /var/lib/mysql/:
2
Setelah membuat cadangan, Anda siap untuk mulai menyelidiki di mana tabelnya ternyata rusak. Jika tabel menggunakan mesin penyimpanan MyISAM , Anda dapat memeriksa apakah itu rusak dengan menjalankan CHECK TABLEpernyataan dari prompt MySQL:
3
Sebuah pesan akan muncul di output pernyataan ini untuk memberi tahu Anda apakah itu rusak atau tidak. Jika tabel MyISAM memang rusak, biasanya dapat diperbaiki dengan mengeluarkan REPAIR TABLEpernyataan:
4
Dengan asumsi perbaikan berhasil, Anda akan melihat pesan seperti berikut di output Anda:
5
Jika tabel masih rusak, dokumentasi MySQL menyarankan beberapa metode alternatif untuk memperbaiki tabel yang rusak
Di sisi lain, jika tabel rusak menggunakan mesin penyimpanan InnoDB , maka proses untuk memperbaikinya akan berbeda. InnoDB adalah mesin penyimpanan default di MySQL pada versi 5.5, dan fitur operasi pemeriksaan dan perbaikan korupsi otomatis. InnoDB memeriksa halaman yang rusak dengan melakukan checksum pada setiap halaman yang dibacanya, dan jika menemukan perbedaan checksum, itu akan secara otomatis menghentikan server MySQL.

Jarang ada kebutuhan untuk memperbaiki tabel InnoDB, karena InnoDB memiliki mekanisme pemulihan kerusakan yang dapat menyelesaikan sebagian besar masalah ketika server di-restart. Namun, jika Anda menghadapi situasi di mana Anda perlu membangun kembali tabel InnoDB rusak, dokumentasi MySQL merekomendasikan menggunakan metode "Dump dan Reload" . Ini melibatkan mendapatkan kembali akses ke tabel rusak, menggunakan mysqldumputilitas untuk membuat cadangan logis dari tabel, yang akan mempertahankan struktur tabel dan data di dalamnya, dan kemudian memuat kembali tabel ke dalam database.

Dengan mengingat hal itu, coba mulai ulang layanan MySQL untuk melihat apakah hal itu akan memungkinkan Anda mengakses server:
6

Jika server tetap macet atau tidak dapat diakses, maka mungkin membantu untuk mengaktifkan force_recoveryopsi InnoDB . Anda dapat melakukan ini dengan mengedit mysqld.cnffile:

7


Di [mysqld]bagian ini, tambahkan baris berikut:

8
Simpan dan tutup file, dan kemudian coba restart layanan MySQL lagi. Jika Anda berhasil mengakses tabel rusak, gunakan mysqldumputilitas untuk membuang data tabel Anda ke file baru. Anda dapat memberi nama file ini apa pun yang Anda suka, tetapi di sini kami akan menamainya out.sql:
9
Kemudian jatuhkan tabel dari database. Untuk menghindari keharusan membuka kembali prompt MySQL, Anda dapat menggunakan sintaks berikut:
10
Setelah ini, kembalikan tabel dengan file dump yang baru saja Anda buat:
11
Perhatikan bahwa mesin penyimpanan InnoDB umumnya lebih toleran terhadap kesalahan daripada mesin MyISAM yang lebih lama. Tabel menggunakan InnoDB dapat masih rusak, tetapi karena yang auto-recovery fitur risiko korupsi meja dan crash adalah jelas lebih rendah.

Tidak ada komentar:

Posting Komentar

Post Top Ad