首页/数据/数据库速查/Seconds_Behind_Source 的真实含义
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条
主从复制与高可用53 条
性能与调优57 条Redis 命令96 条Redis 运维与场景124 条

Seconds_Behind_Source 的真实含义

延迟指标最容易被误读:它只是「SQL 线程当前事件时间戳 - IO 线程最新事件时间戳」,空闲、大事务中途、时钟不同步时都会失真。

数据库速查数据更新于 2026-10-12
正常有写入时逐步收敛到 0-1 秒
失真场景无写入时恒 0;大事务执行中不动;源从时钟漂移
更可靠pt-heartbeat 写心跳表实测延迟

心跳观测(推荐)

心跳观测(推荐)
# 源端周期写心跳
pt-heartbeat --host=10.0.0.10 --user=monitor --password='***' \
  --update --database=heartbeat --interval=1
# 从库端读取真实延迟
pt-heartbeat --host=10.0.0.11 --user=monitor --password='***' \
  --monitor --database=heartbeat
只看 Seconds_Behind_Source=0 不代表复制健康:IO 线程可能已断而 relay 刚被消化完。

易错点

  • 用延迟 0 做切换判据:IO 断连场景会误切换丢数据
  • 从库时钟慢于源端:算出负延迟显示为 0,掩盖真实积压

数据来源与参考

  • MySQL 8.0 Reference Manual: SHOW REPLICA STATUS
  • Percona Toolkit: pt-heartbeat

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌