Rumah > Artikel > pangkalan data > Bagaimana untuk memulihkan fail data yang dipadam dalam mysql
Apabila fail data MySQL dipadamkan secara tidak sengaja, kaedah pemulihan bergantung pada situasi: apabila log binari didayakan, pernyataan SQL boleh diambil melalui arahan mysqlbinlog. Jika sandaran wujud, anda boleh menggunakan alat pemulihan untuk memulihkan fail anda. Jika tiada sandaran, anda boleh cuba menggunakan kamus data untuk memulihkan fail: tanya jadual innodb_table_stats untuk mendapatkan metadata. Menyalin pengepala fail .ibd yang dipadamkan dan menulis ganti pengepala fail .ibd tablespace. Mulakan semula pelayan MySQL untuk memuat semula fail.
Cara Memulihkan Fail Data yang Dipadamkan dalam MySQL
Apabila anda secara tidak sengaja memadamkan fail data MySQL yang penting, adalah penting untuk memulihkannya. Tutorial ini akan membimbing anda melalui proses pemulihan langkah demi langkah.
Langkah 1: Semak Log Binari
Jika anda mendayakan Log Binari sebelum pemadaman, anda boleh mendapatkan semula pernyataan SQL data yang dipadam menggunakan arahan berikut:
<code>mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" --stop-datetime="YYYY-MM-DD HH:MM:SS" /path/to/binary-log-file | grep 'table_name'</code>
Langkah 2: Gunakan alat pemulihan
Jika anda Tanpa pengelogan binari didayakan, anda boleh menggunakan alat pemulihan seperti MySQL Enterprise Backup atau Percona XtraBackup untuk memulihkan fail daripada sandaran. Pastikan anda mempunyai sandaran yang cukup berbutir untuk membolehkan anda memulihkan fail yang terjejas.Langkah 3: Pulihkan fail menggunakan kamus data
Jika kaedah di atas tidak dapat dilaksanakan, anda boleh cuba menggunakan kamus data untuk memulihkan fail. Kaedah ini bergantung pada struktur jadual dan data yang masih wujud dalam jadual kamus data.<code>mysql -u <username> -p USE information_schema;</code>
innodb_table_stats
untuk mendapatkan metadata bagi fail yang dipadam: innodb_table_stats
表以获取已删除文件的元数据:<code>SELECT table_name, data_file_pos FROM innodb_table_stats WHERE table_id = <table_id>;</code>
.ibd
文件的位置。.ibd
文件的头部,其中包含文件元数据。.ibd
文件。dd
命令将 .ibd
文件的头部复制到表空间 .ibd
文件中:<code>dd if=<deleted_ibd_file_path> of=<table_space_ibd_file_path> bs=512 count=2048</code>
.ibd
rreee.ibd
yang mengandungi data yang dipadamkan. Salin pengepala fail .ibd
, yang mengandungi metadata fail. Cari fail tablespace .ibd
yang mengandungi data yang dipadamkan.
dd
untuk menyalin pengepala fail .ibd
ke ruang jadual .ibd
fail: .ibd
ruang jadual. Atas ialah kandungan terperinci Bagaimana untuk memulihkan fail data yang dipadam dalam mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!