首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL Binlog 自動清理與手動刪除完整設定指南:expire_logs_days、PURGE MASTER LOGS 與複製模式深度解析

     編輯:MySQL 綜合教學

MySQL Binlog 管理:自動清理、手動刪除與複製模式選型

Binlog 是主從複制與時間點恢復的核心,但無限制增長會佔滿磁碟。本文詳細說明自動過期參數、手動清理語法、安全清理流程,並深度對比 SBR/RBR/MBR 三種複製模式優劣與適用場景。

一、自動清理設定

1. 設定檔永久生效

[mysqld]
expire_logs_days = 10  # 保留 10 天,單位:天

2. 線上動態調整(無需重啟)

SHOW BINARY LOGS;
SHOW VARIABLES LIKE '%log%';
SET GLOBAL expire_logs_days = 10;

二、手動安全刪除

語法

PURGE {MASTER | BINARY} LOGS TO 'log_name';
PURGE {MASTER | BINARY} LOGS BEFORE 'YYYY-MM-DD hh:mm:ss';

安全清理 5 步驟(主從架構必須)

  1. 每個從庫執行 SHOW SLAVE STATUS\G 確認 Master_Log_File 與 Relay_Master_Log_File
  2. 主庫執行 SHOW MASTER LOGS 取得完整清單
  3. 找出所有從庫中「最舊仍在使用」的 binlog,作為保留基準點
  4. (建議)備份即將刪除的 binlog 檔案
  5. 執行 PURGE MASTER LOGS TO '基準檔名'; 或 BEFORE '日期';

實戰範例

-- 從庫狀態
SHOW SLAVE STATUS\G;
# Master_Log_File: tc-ns-comment-db00-bin.000162

-- 主庫清理至 000070(確認所有從庫已超過此檔案)
PURGE MASTER LOGS TO 'tc-ns-comment-db00-bin.000070';

三、複製模式深度對比

設定 binlog_format

[mysqld]
log-bin=mysql-bin
binlog_format=MIXED  # 推薦:SBR 為主,特定場景自動切 RBR

-- 線上動態修改
SET SESSION binlog_format = 'ROW';
SET GLOBAL binlog_format = 'MIXED';

三大模式優劣總覽

維度SBR (Statement)RBR (Row)MBR (Mixed)
Binlog 體積小大(記錄每列變更)中
複制正確性非確定性函數/觸發器易錯最高(逐列記錄)自動切換,兼顧正確與體積
效能/鎖全表掃描 UPDATE 鎖多行鎖少,大批次 INSERT/UPDATE 優視實際模式而定
審計/還原可讀 SQL,易審計二進制,不可直接閱讀部分可讀
版本相容主從版本可不同需相容需相容
適用場景簡單 OLTP、審計需求強高併發寫入、非確定函數、自增衝突通用生產環境推薦

自動切換 RBR 觸發條件(MBR 模式下)

  • NDB 表 DML
  • 使用 UUID()
  • 多張 AUTO_INCREMENT 表同步更新
  • INSERT DELAYED
  • UDF 呼叫
  • 視圖含 UUID()

系統庫 mysql 特殊規則

  • GRANT/REVOKE/SET PASSWORD 永遠用 SBR 記錄
  • 直接 DML 操作依 binlog_format 設定

四、實戰建議

  1. 生產預設 binlog_format=MIXED + expire_logs_days=7~14。
  2. 大型寫入場景(批次匯入、重建索引)臨時 SET SESSION binlog_format=STATEMENT 減輕 binlog 壓力。
  3. 監控 SHOW MASTER LOGS 檔案數與總大小,設定告警閾值。
  4. 從庫 relay_log_purge=ON(預設)自動清理已套用 relay log。

科學設定保留策略、選對複製模式、建立清理 SOP,讓 Binlog 從「隱憂」變為「資產」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved