有道-MySQL 复制延迟指标的边界

MySQL 复制延迟指标:零值不等于实时一致

源笔记是通用查询提示,没有实例输出或演练结果。本页保留可复用的指标线索,并纠正其中“数值为 0 就是实时同步”的过度结论。

适用版本与来源线索

源笔记只写“MySQL 8”,未给小版本,使用旧术语 SHOW SLAVE STATUSSeconds_Behind_Master。MySQL 8.x 的命令和字段可能使用 REPLICA / SOURCE 术语;先核对目标版本实际支持的语法与返回字段,并区分复制通道。本页没有在 MySQL 8.0 或 8.4 实例上验证。

如何解读

Seconds_Behind_Master(相应版本可能显示为 Seconds_Behind_Source)是复制状态中的一个观测值。源笔记建议在副本上查看它,但仅凭一次读数不能判断完整的数据新鲜度:

  • 值为 0:只能说明该指标当前没有报告延迟;还要核对接收线程与应用线程是否运行、各自错误、接收与应用进度,以及上游是否仍在产生事件。尤其不能把“已应用完本地收到的日志”直接推成“已追上源端”。
  • 值大于 0:说明有延迟线索;结合连续采样、线程状态、大事务、I/O、网络和容量证据定位阶段,不能只凭数值定根因。
  • 值为空或不可用:先查复制通道与线程状态;不能按零延迟解释。

源笔记还提到 Percona Toolkit 的 pt-heartbeat。它是另一个测量候选,但需要确认源端心跳写入、复制到副本的路径和检查端配置;源笔记只有检查端命令片段,不足以形成可执行流程。即使心跳正常,也要按业务的 RPO 和读一致性要求决定验收方式。

待核查

  • 在目标小版本核对命令、字段、NULL 情况及多通道输出。
  • 以同一时间窗记录复制接收、应用进度与业务可见性,判断指标与实际延迟是否一致。
  • 若采用 pt-heartbeat,先在隔离环境验证写入权限、专用表、采样频率和清理策略。

关联:复制延迟排查提纲MySQL 专题