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

MySQL 增量備份策略:二進制日志實戰指南

     編輯:MySQL 資料庫相關知識

大型數據庫無法每日全量備份,「週全量 + 日增量」是經典折中方案。MySQL 二進制日志記錄所有數據變更,是增量備份與時間點恢復的核心基礎。

前置條件

啟用二進制日志:my.cnf 中設置 log-bin=mysql-bin 並重啟服務。

一、備份操作流程

1. 週日全量備份(基準點)

mysqldump --single-transaction --flush-logs --master-data=2 --all-databases > fullbackup_sunday.sql

關鍵參數:

  • --flush-logs:切換新 binlog 文件,確保備份後變更記錄在新文件。
  • --master-data=2:在輸出中以註釋形式記錄當前 binlog 文件名與位置(如 CHANGE MASTER TO MASTER_LOG_FILE='bin-log.000002', MASTER_LOG_POS=107;)。

2. 每日增量備份

mysqladmin flush-logs

執行後產生新 binlog(如 bin-log.000003),上一個文件(bin-log.000002)即包含自上次全量/增量以來的所有變更,直接複製該文件至備份存儲即可。

二、災難恢復演練

假設週三中午故障,恢復步驟:

  1. 導入全量基準:mysql < fullbackup_sunday.sql
  2. 按順序重放增量 binlog:
    mysqlbinlog bin-log.000002 bin-log.000003 | mysql
  3. 若有更新 binlog(bin-log.000004),繼續重放以逼近故障點。

三、關鍵提示

  • binlog 文件不可刪除,直到確認後續全量備份已完成並驗證可用。
  • mysqlbinlog 支援 --start-position、--stop-position 精確截取區間。
  • 生產環境建議將 binlog 目錄掛載至獨立磁盤,避免 I/O 爭用。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved