Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk memulihkan fail data yang dipadam dalam mysql

Bagaimana untuk memulihkan fail data yang dipadam dalam mysql

Daniel James Reed
Daniel James Reedasal
2024-04-14 19:33:501223semak imbas

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.

Bagaimana untuk memulihkan fail data yang dipadam dalam mysql

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.

    Sambung ke pelayan MySQL dan akses pangkalan data skema maklumat:
  1. <code>mysql -u <username> -p
    USE information_schema;</code>
    Soal jadual innodb_table_stats untuk mendapatkan metadata bagi fail yang dipadam:
  1. innodb_table_stats 表以获取已删除文件的元数据:
<code>SELECT table_name, data_file_pos FROM innodb_table_stats WHERE table_id = <table_id>;</code>
  1. 确定包含已删除数据的 .ibd 文件的位置。
  2. 复制 .ibd 文件的头部,其中包含文件元数据。
  3. 定位包含已删除数据的表空间 .ibd 文件。
  4. 使用 dd 命令将 .ibd 文件的头部复制到表空间 .ibd 文件中:
<code>dd if=<deleted_ibd_file_path> of=<table_space_ibd_file_path> bs=512 count=2048</code>
  1. 重新启动 MySQL 服务器,以便 MySQL 重新加载表空间 .ibdrreee
    1. OK Lokasi fail .ibd yang mengandungi data yang dipadamkan.

    Salin pengepala fail .ibd, yang mengandungi metadata fail. Cari fail tablespace .ibd yang mengandungi data yang dipadamkan.

      Gunakan perintah dd untuk menyalin pengepala fail .ibd ke ruang jadual .ibd fail:
    • rrreee
    1. Mulakan semula pelayan MySQL supaya MySQL boleh memuat semula fail .ibd ruang jadual.
    2. Nota: 🎜🎜🎜🎜Memulihkan fail yang dipadam mungkin mengambil masa dan sumber. 🎜🎜Sentiasa buat sandaran tetap untuk memastikan anda boleh memulihkan data anda sekiranya berlaku kehilangan data. 🎜🎜Sila rujuk pentadbir pangkalan data atau pakar teknikal anda sebelum melakukan pemulihan. 🎜🎜

    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!

    Kenyataan:
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn