首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 數據庫毀壞恢復:備份文件與更新日志聯機恢復指南

     編輯:MySQL 資料庫相關知識

數據庫毀壞恢復依賴兩大信息源:**備份文件**(恢復到備份點)+ **更新日志**(重放備份後變更)。

恢復整個數據庫

  1. 若恢復 mysql 系統庫,啟動參數加 --skip-grant-tables,恢復後執行 mysqladmin flush-privileges。
  2. 備份現有數據目錄(供事後分析)。
  3. 載入最新備份:
      • mysqldump 文件:mysql < backup.sql
      • 物理文件:停服務 → 複製文件 → 重啟服務。
  4. 重放更新日志(按生成順序):
    mysql --one-database db_name < update.log.001
    mysql --one-database db_name < update.log.002
    批量:ls -tr update.* | xargs cat | mysql --one-database db_name(-tr 保證時間順序)。
  5. 若日志中含誤操作(DROP DATABASE 等),恢復前手動刪除該語句行。

恢復單個表(較複雜)

  • mysqldump 備份:抽取目標表相關 INSERT 語句單獨導入。
  • 更新日志:使用 mysql_find_rows 工具提取目標表相關片段。
  • 替代方案:另備一台服務器恢復全庫,再複製目標表 .frm/.MYD/.MYI 或 .ibd 文件回原庫(需停服務)。
  • 關鍵提示

    • **務必啟用更新日志**(--log-update 或 5.1+ --log-bin),否則備份點後數據無法恢復。
    • 定期驗證備份可用性:RESTORE VERIFYONLY 或測試環境恢復演練。
    • 物理備份(文件複製)需停服務或 FLUSH TABLES WITH READ LOCK 保證一致性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved