二進制日誌是 MariaDB/MySQL 複製與數據恢復的核心組件。本文詳細說明如何啟用、配置及管理二進制日誌,內容參考自《高可用 MySQL 構建健壯的數據中心》及官方文檔。
使用 --log-bin[=name] 選項啟動服務器即可啟用二進制日誌功能。若檔案名包含後綴(如 --log-bin=master-bin.log),系統會自動忽略 .log 後綴。
datadir/log-basename-bin--log-basename 選項,則使用 datadir/mysql-bin 或 datadir/mariadb-bin(視版本而定)datadir 為數據目錄,由系統變數 datadir 定義(啟動參數 --datadir=path 或 -h path)強烈建議:明確指定 --log-basename 或二進制日誌檔名,避免主機名變更影響複寫。
二進制日誌檔案擴展名為遞增數字序列(如 mariadb-bin.000079、mariadb-bin.000080),數字越大越新。每次服務啟動都會建立新日誌檔,並強制寫入磁碟。亦可透過 max_binlog_size 變數限制單一檔案大小,超過則自動輪轉。
索引檔(預設為 .index 後綴)按順序記錄所有二進制日誌檔案。擁有 SUPER 權限的客戶端可透過會話變數 sql_log_bin(預設 1)控制當前會話是否記錄日誌:
SET sql_log_bin = 0; -- 停止記錄 SET sql_log_bin = 1; -- 恢復記錄
詳細格式差異請參考官方文檔 Binary Log Formats。
mysqld Options (full list)Server System Variables