Memulihkan jadual MySql daripada fail .ibd: cabaran berterusan
P粉848442185
P粉848442185 2023-12-30 12:03:47
0
1
623

Pelayan MySQL tiba-tiba berhenti berfungsi, perkhidmatan akan terputus-putus, saya tidak dapat membuat sandaran kerana perkhidmatan tidak berjalan, jadi yang terbaik yang boleh saya lakukan ialah menyalin keseluruhan folder DATA.

Selain itu, saya mempunyai sandaran yang lebih lama, jadi menggunakan itu bersama-sama dengan fail ibd memulihkan semua jadual kecuali yang terakhir, yang berkata:

ERROR 1808 (HY000): Schema mismatch (Clustered index 
validation failed. Because the .cfg file is missing, table 
definition of the IBD file could be different. Or the data file 
itself is already corrupted.)

Saya tidak tahu nak buat apa.

P粉848442185
P粉848442185

membalas semua(1)
P粉311563823

Saya rasa satu-satunya perkara yang boleh anda lakukan ialah bergantung pada versi jadual dalam sandaran. Anda tidak boleh memulihkan .ibd fail yang disalin.

Mesej ralat menunjukkan bahawa salah satu daripada dua perkara telah berlaku:

  • Struktur jadual telah berubah sejak sandaran, jadi fail .ibd tidak lagi sepadan dengan metadata yang disimpan dalam kamus data. InnoDB berada dalam bot yang sama dengan anda apabila kandungan fail tablespace tidak sepadan dengan metadata: "Saya tidak tahu apa yang perlu dilakukan."

  • Walaupun struktur jadual tidak berubah, kerosakan fizikal pada fail .ibd sudah cukup untuk menjadikannya tidak boleh dibaca oleh InnoDB.
  • Walau bagaimanapun, InnoDB tidak boleh membaca fail ruang meja.

Jelas sekali ini akan menimbulkan masalah jika anda berjaya memulihkan semua jadual lain. Kini terdapat lebih banyak data terkini dalam kebanyakan jadual, kecuali untuk jadual terakhir, yang sudah lapuk. Jika terdapat baris dalam jadual ini yang merujuk antara satu sama lain, mereka mungkin mempunyai rekod anak yatim (contohnya, rekod yang menunjukkan bahawa pengguna membeli produk, tetapi pengguna itu tidak wujud dalam jadual Pengguna).

Ini adalah malang dan sukar untuk diperbetulkan.

Secara umumnya, menyalin fail .ibd bukanlah cara yang boleh dipercayai untuk menyandarkan pangkalan data InnoDB. Anda perlu menggunakan alat sandaran yang sesuai, seperti mysqldump atau Percona XtraBackup.

Satu lagi penyelesaian untuk memulihkan data selepas sandaran terakhir ialah menggunakan fail log binari untuk pemulihan titik dalam masa. Tetapi untuk mencapai ini, anda memerlukan semua fail log binari sejak sandaran yang paling terkini, dan sandaran memerlukan maklumat tentang lokasi log binari pada masa sandaran diambil. Sila rujuk

https://dev.mysql.com/doc /refman/en/point-in-time-recovery.html

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan