这条语句看什么
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 保留策略过期;记录的起点文件一旦被清理,重连时无法从该位置继续,只能重新做快照基线。