Skip to content

mysql binlog 管理

配置

[mysqld]
log-bin=mysql-bin          # 启用 Binlog 并定义文件名前缀
server-id=1                # 集群中唯一标识
binlog_format=ROW          # 推荐 ROW 模式(数据一致性高)
expire_logs_days=7         # 自动清理 7 天前的 Binlog(MySQL 5.x)
binlog_expire_logs_seconds=604800  # MySQL 8.x 等效配置(7天=604800秒)
max_binlog_size=1G         # 单个 Binlog 文件最大 1GB
sync_binlog=1

保留策略

-- 查看当前配置
SHOW VARIABLES LIKE 'log_bin%';
SHOW VARIABLES LIKE 'expire_logs_days';

-- 动态修改保留天数(MySQL 5.x)
SET GLOBAL expire_logs_days = 14;

-- 动态修改文件大小限制(MySQL 8.x)
SET GLOBAL max_binlog_size = 2 * 1024 * 1024 * 1024;  -- 2GB
-- 列出所有 Binlog 文件
SHOW BINARY LOGS;

-- 查看当前写入的 Binlog 文件及位置
SHOW MASTER STATUS;

​​手动管理 Binlog​​

​​刷新日志​​(强制生成新文件)

FLUSH BINARY LOGS;  -- 等同于 FLUSH LOGS

​​切换日志文件​​

PURGE BINARY LOGS TO 'mysql-bin.000010';  -- 删除指定文件前的所有 Binlog
PURGE BINARY LOGS BEFORE '2024-01-01 00:00:00';  -- 删除指定时间前的日志

​​重置所有 Binlog(慎用)​​

RESET MASTER;