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

MySQL 更新日志文件完整指南:啟用、重寫、恢復與技巧

     編輯:MySQL 資料庫相關知識

更新日志(5.1+ 由二進制日志替代)記錄所有修改數據的 SQL,是備份點後數據恢復的關鍵。

啟用方式

mysqld --log-update=file_name
# 文件寫入數據目錄,名為 file_name.#,# 每次 flush-logs/refresh/重啟遞增
# 不指定 file_name 時默認用主機名

智能記錄特性

  • 僅記錄**真正修改數據**的語句:WHERE 不匹配的 UPDATE/DELETE、值不變的 UPDATE 均不記錄。
  • 指定固定文件名(含擴展名)時,flush-logs 會**截斷文件**而非切換新文件,慎用。

觸發重寫/切換的四大事件

  1. mysqladmin refresh
  2. mysqladmin flush-logs
  3. FLUSH LOGS SQL
  4. 服務器重啟

恢復操作

# 全量恢復所有庫
mysql < update.log.001

# 僅恢復指定庫(過濾其他庫語句)
mysql --one-database db_name < update.log.001

# 批量按時間順序恢復(關鍵:-tr 保證順序)
ls -tr update.* | xargs cat | mysql --one-database db_name

實戰技巧

  • 誤執行 DROP DATABASE 後,恢復前**手動刪除日志中該語句**,避免再次破壞。
  • 日志文件按修改時間排序(ls -tr),**嚴禁手動修改日志文件時間戳**,否則恢復順序錯亂導致數據不一致。
  • 僅需按文件名順序恢復時,去掉 -t -r:ls -l update.* | xargs cat | ...
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved