首页/数据/数据库速查/SHOW REPLICA STATUS 关键字段详解
主从复制与高可用53 条

SHOW REPLICA STATUS 关键字段详解

复制体检表:线程状态、位点(Read/Exec_Master_Log_Pos)、GTID 集、延迟、错误五大块;出问题先看 Last_IO_Error / Last_SQL_Error 与落后字节数。

数据库速查数据更新于 2026-10-13

复制状态读什么

复制状态命令是复制链路的体检表,输出分成几大块:两个线程的运行状态、拉取与执行位点、事务集合、延迟指标、中继日志占用,以及最近的错误信息。排查复制问题的第一动作就是执行它,并且优先看两个错误字段,它们直接说明断在哪一环。8.0 还提供了结构化的复制监控表,接入监控比解析文本输出更稳定。

基本信息

用途复制链路体检与故障定位
关键字段线程状态、位点、中继日志占用、延迟、错误信息
优先查看两个错误字段与中继日志占用
术语变化8.0.22 起相关字段更名为 REPLICA 前缀
结构化替代性能模式下的复制状态表
判读顺序先线程状态,再错误,最后位点与延迟

典型使用场景

  • 复制告警后的第一手定位:确认断在拉取还是重放环节
  • 巡检输出延迟与中继日志占用趋势
  • 主从切换前确认从库已经追平上游
  • 位点方式配置复制时核对当前实际位点
  • 排查数据不一致:比对已执行的事务集合与上游状态
  • 监控改造:从解析文本输出迁移到结构化视图

一眼体检

一眼体检
SHOW REPLICA STATUS\G   # 全量输出,重点看两个线程状态与错误字段
SELECT SERVICE_STATE FROM performance_schema.replication_connection_status;   # 拉取线程状态
SELECT SERVICE_STATE FROM performance_schema.replication_applier_status;   # 重放线程状态

关键字段速查

关键字段速查
# Replica_IO_Running / Replica_SQL_Running  两个线程是否正常
# Read_Source_Log_Pos / Exec_Source_Log_Pos 已拉取位点 / 已执行位点
# Relay_Log_Space                           中继日志占用,积压信号
# Seconds_Behind_Source                     粗略延迟
# Last_IO_Error / Last_SQL_Error            最近错误,先看这两个
# Retrieved_Gtid_Set / Executed_Gtid_Set    已拉取 / 已执行的事务集合

字段逐项读法

字段含义判读要点
Replica_IO_Running从库拉取线程状态为 No 说明拉取链路断了
Replica_SQL_Running从库重放线程状态为 No 多为数据冲突或约束报错
Read_Source_Log_Pos已拉取日志位点与执行位点差距大表示重放落后
Exec_Source_Log_Pos已执行日志位点与拉取位点的差值就是积压量
Relay_Log_Space中继日志占用字节数持续增长是重放跟不上的早期信号
Seconds_Behind_Source粗略延迟秒数长事务存在时会失真
Last_IO_Error最近拉取错误网络、认证与位点被清理都会反映在这
Last_SQL_Error最近重放错误通常给出冲突的主键或唯一键线索
Retrieved_Gtid_Set已拉取的事务集合与执行集合比较可定位缺口
Executed_Gtid_Set已执行的事务集合切换前确认已经追平
两个线程状态要分别判断:拉取线程断开通常是网络、账号口令或上游日志已被清理;重放线程断开基本是数据冲突、唯一键重复或对象不存在,处置方式完全不同。
延迟指标只作参考:上游有长事务或大表改表时它会失真,甚至短暂归零;判断复制是否真正追平要看位点差与已执行的事务集合。
复制报错后不要急着跳过错误:跳过一条冲突事务可能让主从数据永久不一致,应先把出错事务的内容与影响范围查清,再决定是跳过还是重建。

复制巡检清单

  • 两个线程状态均为运行中
  • 错误字段为空,没有未处理的存量错误
  • 拉取位点与执行位点的差值在可接受范围
  • 中继日志占用没有持续增长
  • 延迟指标在阈值内,且不把它当作唯一判据
  • 监控解析使用结构化视图而不是文本输出
复制状态要留历史曲线:单次快照只能说明当下正常,位点差与中继日志占用的增长趋势才能提前发现重放能力不足的问题。

易错点

  • 监控脚本解析旧字段名:8.0.22 起字段已经更名,升级后解析失败导致告警静默失效
  • 忽略中继日志占用增长:这是重放跟不上的早期信号,等到延迟暴涨才开始处理,业务读已经受影响
  • 看到线程状态是运行中就判定复制健康:位点可能长期不推进,必须结合位点与事务集合一起看
  • 出错后直接跳过事务:冲突语句被跳过,主从数据永久不一致,最后只能重建从库
  • 把延迟指标当精确值使用:长事务下会失真,拿它的绝对值做业务判断容易得出错误结论

数据来源与参考

  • MySQL 8.0 Reference Manual: SHOW REPLICA STATUS

相关工具

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