Tabel MySQL ditandai sebagai macet dan perbaikan terakhir gagal

Jika Anda menggunakan klien MySQL Command-line untuk menanyakan database Anda, Anda mungkin menemukan kesalahan yang mengatakan:

"Tabel MySQL ditandai sebagai macet dan Perbaikan terakhir (otomatis?) Gagal".

Kesalahan dapat disebabkan karena banyak alasan termasuk nol ruang disk yang tersedia di server, hard reset server, penutupan paksa MySQL, atau proses MySQL macet karena beberapa alasan.

Ada berbagai cara untuk mengatasi kesalahan ini dan metode yang tepat tergantung pada akar penyebabnya. Pertama, kita akan membahas solusi umum yang dapat digunakan dalam beberapa kasus.

Solusi Satu – Perbaikan tabel menggunakan perintah myisamchk

  1. Login di server Anda menggunakan perintah SSH seperti – ssh [email protected]
  2. Hentikan daemon / layanan MySQL dengan mengeksekusi berhenti mysql layanan-perintah
  3. Ubah direktori ke database MySQL Anda. Direktori ini biasanya terletak di / var / lib / mysql. Perintah yang digunakan adalah cd / var / lib / mysql / YOUR_DATABASE_NAME
  4. Sekarang, Anda harus menjalankan perintah myisamchk dengan mengeksekusi – myisamchk -r table_name

Note – Pada langkah di atas Anda harus mengganti nama tabel yang sebenarnya dengan "nama tabel". Output dari perintah akan menyebutkan pemulihan tabel dan juga memperbaiki catatan yang rusak.

  1. Mulai layanan MySQL lagi dengan menjalankan perintah – layanan mulai mysql

Masalah tabel MySQL akan teratasi sekarang dan Anda dapat meminta tabel dalam database melalui MySQL CLI.

Solusi Dua – Temukan dan Perbaiki tabel yang rusak

Jika Anda mendapatkan kesalahan ini, ini menunjukkan satu atau lebih tabel dalam database rusak dan perlu diperbaiki. Langkah pertama dalam solusi ini adalah menemukan tabel yang merupakan penyebab kesalahan. Berikut langkah-langkah yang harus diikuti.

Untuk menemukan tabel ditandai sebagai macet dan perlu diperbaiki, jalankan perintah ini

  1. # myisamchk -s /var/lib/mysql/*/*.MYI
  2. MyISAM-table ‘/var/lib/mysql/dbname/table_name.MYI’ ditandai sebagai macet dan harus diperbaiki

Perintah di atas akan mencantumkan semua tabel yang ditandai sebagai macet dan perlu diperbaiki

  1. Untuk memperbaiki tabel, jalankan perintah berikut – # myisamchk -r /var/lib/mysql/dbname/table_name.MYI

Anda perlu menjalankan perintah ini untuk setiap tabel yang ditandai sebagai macet dan perlu diperbaiki. Setiap kali nilai table_name akan berbeda.

  1. Solusi di atas akan menyelesaikan kesalahan. Jika tidak, Anda harus menghentikan Stop MySQL daemon / service dengan mengeksekusi mysql service-command stop

Setelah layanan web MySQL dihentikan, Anda perlu memperbarui status tabel sehingga MySQL CLI tahu tabel korup telah diperiksa dan diperbaiki. Jalankan perintah yang diberikan di bawah ini untuk memperbarui status tabel.

  1. myisamchk -r –perbarui-state /var/lib/mysql/dbname/table_name.MYI

Setelah Anda memperbarui status setiap tabel yang diperbaiki, Anda harus memulai kembali layanan MySQL. Jalankan perintah yang diberikan di bawah ini untuk memulai layanan MySQL.

  1. layanan mysql mulai

Solusi Tiga – Berbagai cara untuk memperbaiki tabel yang rusak

Seperti dibahas dalam solusi sebelumnya, cara termudah untuk menyelesaikan kesalahan adalah memperbaiki tabel yang rusak. Meskipun kami telah membahas satu cara untuk menemukan dan memperbaiki tabel korup, ada juga cara alternatif yang ingin Anda ketahui. Di sini kita telah membahas berbagai cara untuk menemukan dan memperbaiki tabel yang rusak.

Tahap Satu – Periksa Tabel

Jalankan myisamchk * .MYI atau myisamchk -e * .MYI. Anda juga dapat menggunakan opsi diam untuk menekan informasi yang tidak perlu. Sintaks perintahnya adalah myisamchk –silent * .MYI

Beberapa gejala tabel rusak memanifestasikan sebagai kueri yang dibatalkan secara tak terduga, dan Anda mendapatkan kesalahan seperti:

  • Akhir file tidak terduga
  • Tidak dapat menemukan file tbl_name.MYI (Errcode: nnn)
  • Rekam file macet
  • Mendapat kesalahan nnn dari table handler
  • tbl_name.frm dikunci dari perubahan

Untuk mendapatkan informasi lebih lanjut tentang kesalahan, gunakan run perror nnn, di mana nnn adalah nomor kesalahan.

Tahap Dua – Perbaikan Aman Mudah

Setelah Anda menemukan tabel yang rusak, Anda perlu mencoba perintahnya

  1. Gunakan myisamchk -r -q tbl_name

Di sini -r -q berarti “mode pemulihan cepat. Perintah ini akan berusaha memperbaiki file indeks dari tabel tanpa menyentuh file data. Jika tabel tidak diperbaiki karena beberapa alasan, jalankan perintah yang diberikan di bawah ini.

  1. Buat cadangan file data sebelum melanjutkan
  2. Gunakan myisamchk -r tbl_name. Di sini -r berarti "mode pemulihan". Perintah menghapus baris yang salah dan menghapus baris dari file data dan merekonstruksi file indeks. Jika langkah ini gagal, jalankan perintah di bawah ini
  3. Gunakan myisamchk –safe-recover tbl_name. Ini adalah metode pemulihan lama yang digunakan dalam kasus tertentu di mana mode pemulihan normal gagal

Karena mode Pemulihan Aman lambat, Anda harus bersabar sementara pemulihan data terjadi. Untuk mempercepat proses pemulihan, atur nilai key_buffer_size dan variabel sort_buffer_size masing-masing menjadi sekitar 25% dari memori yang tersedia saat menjalankan myisamchk.

Tahap 3 – Perbaikan yang sulit

Tidak semua pemulihan tabel sederhana. Dalam banyak kasus, file indeks hilang atau blok 16KB pertama dalam file indeks dihancurkan atau berisi informasi yang salah. Ini dikategorikan sebagai perbaikan yang sulit dan memerlukan pendekatan yang berbeda.

Untuk mengatasi kasus seperti itu, Anda perlu membuat file indeks baru. Berikut langkah-langkah yang harus diikuti.

  1. Pindahkan file data ke tempat yang aman
  2. Buat file data kosong baru dan file indeks menggunakan perintah yang diberikan di bawah ini
    • mysql db_name
    • SET autocommit = 1;
    • TRUNCATE TABLE tbl_name;
    • Berhenti
  3. Salin file data lama ke file data yang baru dibuat.
  4. Sekarang kembali ke Tahap 2 dan jalankan perintah dan mereka harus bekerja untuk memulihkan tabel.

Apa yang harus dilakukan jika tidak ada solusi yang berfungsi?

Jika Anda tidak dapat menyelesaikan kesalahan dengan menggunakan metode yang disebutkan di atas, jangan putus asa. Anda dapat menggunakan solusi otomatis untuk masalah tersebut. Perbaikan Stellar untuk MySQL adalah solusi yang berharga dan dapat diandalkan untuk kesalahan "tabel MySQL ditandai sebagai macet dan perbaikan terakhir gagal".

Perangkat lunak ini dapat menghapus kesalahan yang sulit dari MySQL dan membuat data tersedia untuk pemulihan. Ini memiliki beberapa fitur yang mencolok dan GUI interaktif, yang membuatnya mudah untuk dioperasikan. Jika semua metode manual yang tersedia gagal, Anda dapat menaruh kepercayaan pada perangkat lunak ini tanpa ragu-ragu.

Kesimpulan

Kami berharap solusi di atas akan bekerja untuk memperbaiki tabel yang rusak dan memperbaiki masalah di database. Setelah Anda memperbaiki tabel korup, klien baris perintah MySQL harus dapat meminta database dan mendapatkan hasil yang diperlukan.

Pos terkait

Back to top button