首页/数据/数据库速查/复制监控指标与告警项
主从复制与高可用53 条

复制监控指标与告警项

复制监控六个核心信号:双线程状态、延迟、relay 积压、错误日志、GTID 差距、心跳;接入 P_S 表或 exporter,做到「断了 1 分钟即告警」。

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

复制监控是什么

复制监控要覆盖六个信号:两个线程的运行状态、延迟秒数、中继日志积压、错误日志、事务集合差距、心跳。目标很明确——复制断开后一分钟内必须告警。只看延迟是最常见的误区:拉取线程已经断开但延迟显示为零的假健康,会安静地骗过所有人。

基本信息

数据来源性能模式中的复制状态表,比解析状态文本更稳定
线程状态拉取线程与处理线程,任一非运行即异常
延迟口径秒级延迟字段,同时参考事务集合差距
错误来源状态输出中的最后错误字段与错误日志
采集方式监控代理采集性能模式表或导出器抓取状态

监控项与阈值建议

  • 线程状态:任一为停止或连接中持续一分钟即告警
  • 复制延迟:超过三百秒持续五分钟告警,同时记录历史峰值
  • 中继日志积压:环比翻倍或绝对量异常偏大时告警
  • 复制错误:出现错误码即告警,不做阈值过滤
  • 数据差距:事务集合差异长期不收敛说明复制存在结构性问题
  • 心跳与告警归属:明确值班人与升级路径,避免告警无人认领

关键查询

关键查询
-- 拉取线程是否在运行
SELECT SERVICE_STATE FROM performance_schema.replication_connection_status;
-- 处理线程是否在运行
SELECT SERVICE_STATE FROM performance_schema.replication_applier_status;
-- 各工作线程与其最后的错误
SELECT CHANNEL_NAME, SERVICE_STATE, LAST_ERROR_MESSAGE
FROM performance_schema.replication_applier_status_by_worker;
-- 延迟与位点
SHOW REPLICA STATUS\G

指标与判读

指标正常异常含义
拉取线程状态运行中停止表示拉不到主库日志,常见于网络或权限问题
处理线程状态运行中停止通常伴随数据冲突或错误
延迟秒数接近零持续增长说明从库追不上主库写入
中继日志积压稳定水位快速上涨说明处理能力不足
最后错误为空非空要立刻查看具体错误码
采集性能模式表比解析状态命令的文本更稳定:文本格式在不同版本间会变化,正则解析容易在升级后失效。
只监控延迟不监控线程状态会漏掉最严重的场景:拉取线程断开时部分字段读数仍为零,看起来一切正常。

易错点

  • 只监控延迟不监控线程状态:拉取线程已断但延迟为零的假健康会逃过告警
  • 告警只发到群聊无人认领:缺少值班与升级路径,故障无人处理
  • 阈值拍脑袋设定且从不复核:长期误报导致告警被整体忽略
  • 只监控延迟不记录历史:无法判断当前延迟是常态还是突变

数据来源与参考

  • MySQL 8.0 Reference Manual: performance_schema replication tables
  • Prometheus mysqld_exporter

相关工具

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