首页/数据/数据工程与 ETL 速查/binlog 保留期与 binlog_expire_logs_seconds
CDC 与同步53 条

binlog 保留期与 binlog_expire_logs_seconds

自动过期由 binlog_expire_logs_seconds 控制(MySQL 8.0 默认 2592000 秒即 30 天),旧参数 expire_logs_days 已弃用。保留期需要覆盖“同步故障被发现的时间 + 修复时间”,CDC 链路的位点滞后决定了安全下限。

查看与调整保留期

查看与调整保留期
SHOW VARIABLES LIKE 'binlog_expire_logs_seconds';
-- 临时改为 7 天(8.0)
SET GLOBAL binlog_expire_logs_seconds = 604800;
-- 持久化,避免重启回退
SET PERSIST binlog_expire_logs_seconds = 604800;
默认值2592000 秒(30 天)
安全值估算≈ 最长回追时长 × 2,并覆盖节假日无人值守窗口
监控建议同时监控保留天数余量与消费位点滞后
SET GLOBAL 重启后失效:要么 SET PERSIST,要么写回配置文件,避免“改过但没生效”。

易错点

  • 按正常同步延迟设置保留期,遇到一次大故障就把缺口拖出保留窗口
  • 只调整不监控:保留期余量不足时没有任何告警,等 CDC 报错才发现

数据来源与参考

  • MySQL 8.0 Reference Manual: binlog_expire_logs_seconds
  • MySQL 8.0 Reference Manual: Server System Variables(expire_logs_days 弃用说明)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌