首页/数据/数据工程与 ETL 速查/SHOW MASTER STATUS:查看 binlog 位点
CDC 与同步53 条

SHOW MASTER STATUS:查看 binlog 位点

SHOW MASTER STATUS 显示当前正在写的 binlog 文件(File)、写入偏移(Position)与已执行的 GTID 集合,是记录 CDC 启动位点与估算延迟的常用视图;MySQL 8.4 起该语句的新名称为 SHOW BINARY LOG STATUS。

这条语句看什么

SHOW MASTER STATUS 返回源库当前正在写入的 binlog 文件名、文件内偏移,以及已执行的 GTID 集合。它是 CDC 相关排障里最常用的一条语句:启动采集前用它记下位点作为起点,运行中用它和消费位点做对照估算滞后。需要留意两个容易踩的点——GTID 模式下这里同时给出 GTID 集合,跨主库切换时应该以 GTID 为准;另外 MySQL 8.4 起语句名改为 SHOW BINARY LOG STATUS。

基本信息

File当前活动的 binlog 文件名
Position文件内当前写入偏移
Binlog_Do_DB / Ignore_DB过滤规则(未配置时为空)
Executed_Gtid_Set已执行的 GTID 集合(GTID 模式)
主要用途记录启停位点、对照消费位点估算滞后
版本变化MySQL 8.4 起改名为 SHOW BINARY LOG STATUS

查看位点

查看位点
SHOW MASTER STATUS\G
-- MySQL 8.4+ 使用新名称
SHOW BINARY LOG STATUS\G

-- 配套查看:当前日志文件列表与大小
SHOW BINARY LOGS;
-- 查看已执行与已清理的 GTID
SELECT @@GLOBAL.gtid_executed, @@GLOBAL.gtid_purged;

典型使用场景

  • 接入 CDC 前记录起点:保存 File 与 Position(或 GTID),便于回退到已知位置
  • 估算同步滞后:与采集工具报告的消费位点对比,判断是否跟得上
  • 排查断链:重连时确认位点是否已被清理,避免因日志过期而失败
  • 主库切换演练:GTID 模式下核对两台实例的已执行集合差异
  • 容量观察:结合日志文件大小增长判断业务写入量的变化趋势

输出列读法

列含义判读要点
File当前写入的日志文件序号增长表示发生了日志滚动
Position文件内偏移同一文件内可比较大小
Binlog_Do_DB白名单库为空表示未做库级过滤
Binlog_Ignore_DB黑名单库与白名单并存时以白名单为准
Executed_Gtid_Set已执行事务集合GTID 模式下跨实例比对用它
对比「源端 File/Position」与「工具消费位点」可以粗估滞后;文件序号相同看偏移差,跨文件则要结合文件大小估算。
位点会随 binlog 保留策略过期;记录的起点文件一旦被清理,重连时无法从该位置继续,只能重新做快照基线。

易错点

  • 只比较文件序号忽略偏移,跨文件时的滞后估算完全失真
  • GTID 模式仍只记录文件位点,切换主库后位点对不上
  • MySQL 8.4 及以上沿用旧语句名,脚本执行报语法错误
  • 把位点当成永久有效,日志被清理后才发现起点已不存在
  • 在从库上执行并据此判断源库写入进度,得到的值并不代表主库状态

数据来源与参考

  • MySQL 8.0 Reference Manual: SHOW MASTER STATUS
  • MySQL 8.4 Reference Manual: SHOW BINARY LOG STATUS
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌