Cara memperbaiki tabel innodb di mysql

Hanya dalam dua jam, dengan waktu respons rata-rata 15 menit, pakar kami akan menyelesaikan masalah Anda

Dapatkan Bantuan Sekarang

Masalah Server?

Dengan satu biaya yang sudah termasuk semua, kami menjamin keandalan, keamanan, dan kecepatan luar biasa dari server Anda

Jelajahi Rencana Kami

Pulihkan/Perbaiki tabel InnoDB di MySQL

  • 9 Juli 2021
  • Thameem

Beranda » Pulihkan/Perbaiki tabel InnoDB di MySQL

Basis data dapat dibiarkan dalam keadaan tidak konsisten jika server mogok. Meskipun ada banyak alat untuk memperbaiki tabel MyISAM di MySQL, perbaikan InnoDB tidak selalu sesederhana itu. MySQL dapat menolak untuk memulai, mengakibatkan waktu henti yang tidak terbatas. Jika log kesalahan MySQL Anda mengungkapkan kerusakan InnoDB, lanjutkan dengan hati-hati

Sebagai bagian dari pengelolaan server , tim dukungan kami menangani masalah serupa dan berhasil memulihkan banyak tabel InnoDB yang rusak.

Langkah Awal

Pertama dan terpenting, isolasi database dan buat cadangan. Hentikan server web (yang akan mencegah transaksi basis data baru) dan blokir akses eksternal ke MySQL port 3306 (jika Anda mengizinkan akses jarak jauh). Pastikan tidak ada lagi transaksi yang berjalan dengan menggunakan biner atau utilitas "mysqladmin".

Kemudian, cadangkan seluruh folder data MySQL, atau, jika ruang menjadi masalah, cadangkan semua file InnoDB (yang dimulai dengan *. ib)

Setelah itu, mulai server MySQL dan, jika sudah online, ambil dump SQL dengan binary dump mysql

Gunakan pemulihan InnoDB untuk menghidupkan kembali server jika MySQL terus mogok saat boot normal. Ubah nilai "InnoDB force recovery" di /etc/my. cnf untuk membuat server MySQL kembali online, mulai dengan nilai "1" dan lanjutkan hingga nilai "6. Ambil dump SQL setelah server kembali online

Jika Anda tidak dapat menyelesaikan dump, pilihan terbaik Anda berikutnya adalah menggunakan cadangan harian dari database yang terpengaruh yang Anda miliki

Proses Restorasi Database

Hapus database yang rusak dan pengaturan pemulihan dari /etc/my. cnf setelah Anda memiliki dump database yang berfungsi

Mulai ulang layanan MySQL dan periksa apakah log kesalahan tidak lagi berisi kesalahan

Anda sekarang dapat menggunakan dump SQL untuk memulihkan database

mysql < /path/to/backup/recovered_db.sql

Selalu berhati-hati

Server dapat macet karena berbagai penyebab, termasuk kegagalan perangkat keras, beban server yang berat, dan sebagainya. Akibatnya, InnoDB dapat rusak dalam situasi seperti itu. Seperti yang dikatakan sebelumnya, kita dapat menggunakan mode pemulihan untuk memulihkan database, namun ini tidak selalu berhasil

Dengan demikian, pilihan terbaik berikutnya adalah cadangan harian yang solid, yang harus selalu tersedia. Konfigurasikan server Anda untuk melakukan pencadangan basis data harian dan lakukan audit berkala untuk memastikan pencadangan selesai

Langkah kunci lainnya adalah mengaktifkan pemantauan kesalahan basis data InnoDB. Plugin pihak ketiga atau yang dikembangkan khusus untuk sistem pemantauan seperti Nagios dan Zabbix dapat mendeteksi kesalahan InnoDB melalui log kesalahan atau aplikasi seperti "mysqlcheck. ”

Kerusakan server dapat membuat database dalam keadaan tidak konsisten. Meskipun ada banyak alat yang tersedia untuk memperbaiki tabel MYISAM di MySQL, perbaikan InnoDB tidak selalu mudah. MySQL dapat menolak untuk memulai, membuat Anda mengalami downtime yang tidak pasti. Jika log kesalahan MySQL Anda menunjukkan kerusakan InnoDB, saatnya untuk berhati-hati

Respon awal

Prioritas pertama adalah mengisolasi database, dan mendapatkan cadangan. Untuk ini, hentikan server web (yang akan menolak transaksi basis data baru lagi), dan blokir akses eksternal ke port 3306 (jika Anda mengizinkan akses jarak jauh). Menggunakan utilitas "mysqladmin", pastikan tidak ada lagi transaksi yang berjalan

Kemudian, ambil cadangan seluruh folder data MySQL, atau jika ruang tidak mengizinkannya, ambil cadangan semua file InnoDB (yang dimulai dengan *. ib)

Setelah ini selesai, coba mulai server MySQL, dan jika sudah online, ambil dump SQL menggunakan utilitas mysqldump

Jika MySQL terus mogok, gunakan pemulihan InnoDB untuk menghidupkan kembali server. Untuk ini, ubah nilai "innodb_force_recovery" di /etc/my. cnf. Mulailah dengan nilai "1", dan lanjutkan hingga nilai "6" untuk membuat server MySQL online kembali. Setelah server kembali online, lakukan dump SQL

Jika Anda tidak bisa mendapatkan dump, opsi terbaik berikutnya adalah menggunakan cadangan harian yang Anda miliki dari database yang terpengaruh

Mengembalikan database

Setelah Anda memiliki dump database yang andal, jatuhkan database yang rusak, dan hapus pengaturan pemulihan dari /etc/my. cnf

Mulai layanan MySQL lagi, dan pastikan tidak ada lagi kesalahan yang ditampilkan di log kesalahan

Sekarang, Anda dapat memulihkan database menggunakan dump SQL

# mysql < /path/to/backup/recovered_db.sql
_

Bagaimana mempersiapkan

Kerusakan server dapat terjadi karena berbagai alasan seperti kegagalan perangkat keras, beban server yang tinggi, dll. Jadi, ada kemungkinan InnoDB bisa rusak pada saat seperti itu. Seperti yang dijelaskan di atas, kita dapat menggunakan mode pemulihan untuk mendapatkan kembali basis data, tetapi mungkin tidak selalu berhasil

Jadi, opsi terbaik berikutnya harus selalu tersedia, yaitu cadangan harian yang andal. Konfigurasikan server Anda untuk pencadangan basis data harian, dan jadwalkan audit berkala untuk memverifikasi integritas cadangan

Langkah penting lainnya adalah mengaktifkan pemantauan kesalahan database InnoDB. Sistem pemantauan seperti Nagios dan Zabbix dapat menyertakan plugin pihak ketiga atau yang dikembangkan khusus untuk mendeteksi kesalahan InnoDB melalui log kesalahan atau utilitas seperti "mysqlcheck"

Deteksi kesalahan yang tepat waktu memberi Anda kemungkinan lebih tinggi untuk memulihkan seluruh database. Jika Anda ingin kami mengambil data berharga Anda untuk Anda dari basis data yang rusak, jangan ragu untuk menghubungi kami

Bagaimana cara memperbaiki tabel di MySQL?

Tabel Perbaikan MySQL memungkinkan kita untuk memperbaiki atau memperbaiki tabel yang rusak. Tabel perbaikan di MySQL hanya menyediakan dukungan untuk mesin penyimpanan tertentu, tidak untuk semua. .
PERBAIKI [NO_WRITE_TO_BINLOG. LOKAL]
TABEL tbl_name [, tbl_name]
[CEPAT] [DIPERPANJANG] [USE_FRM]

Bagaimana cara memperbaiki tabel MySQL yang macet?

Memperbaiki Tabel yang Hancur Dengan phpMyAdmin .
Masuk ke akun SiteWorx Anda. .
Di sebelah kiri, pilih Fitur Hosting > MySQL > PhpMyAdmin
Pilih database yang benar dari daftar di sebelah kiri
Pilih kotak centang yang sesuai dengan tabel yang rusak, dan dari daftar Dengan yang dipilih, klik Perbaiki tabel

Bagaimana cara mengoptimalkan tabel InnoDB di MySQL?

Daripada langsung mengoptimalkan tabel, pertimbangkan untuk mencoba beberapa trik ini untuk tabel mesin INNODB. Jatuhkan indeks, optimalkan, dan tambahkan kembali indeks . Jika sebuah tabel berfungsi tanpa indeks untuk beberapa waktu, menjatuhkan, mengoptimalkan, dan menambahkan kembali indeks bekerja lebih cepat dalam beberapa kasus.

Bagaimana saya tahu jika tabel MySQL rusak?

Jika Anda hanya ingin memeriksa apakah database Anda rusak atau tidak, jalankan perintah berikut. .
# mysqlcheck -c DATABASE_NAME -u USER_NAME -p
# mysqlcheck -c -u USER_NAME -p --semua-database
# mysqlcheck -a DB_NAME TABLE_NAME -u USER_NAME -p