复制监控是什么
复制监控要覆盖六个信号:两个线程的运行状态、延迟秒数、中继日志积压、错误日志、事务集合差距、心跳。目标很明确——复制断开后一分钟内必须告警。只看延迟是最常见的误区:拉取线程已经断开但延迟显示为零的假健康,会安静地骗过所有人。
基本信息
| 数据来源 | 性能模式中的复制状态表,比解析状态文本更稳定 |
|---|---|
| 线程状态 | 拉取线程与处理线程,任一非运行即异常 |
| 延迟口径 | 秒级延迟字段,同时参考事务集合差距 |
| 错误来源 | 状态输出中的最后错误字段与错误日志 |
| 采集方式 | 监控代理采集性能模式表或导出器抓取状态 |
监控项与阈值建议
- 线程状态:任一为停止或连接中持续一分钟即告警
- 复制延迟:超过三百秒持续五分钟告警,同时记录历史峰值
- 中继日志积压:环比翻倍或绝对量异常偏大时告警
- 复制错误:出现错误码即告警,不做阈值过滤
- 数据差距:事务集合差异长期不收敛说明复制存在结构性问题
- 心跳与告警归属:明确值班人与升级路径,避免告警无人认领
关键查询
关键查询
-- 拉取线程是否在运行
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指标与判读
| 指标 | 正常 | 异常含义 |
|---|---|---|
| 拉取线程状态 | 运行中 | 停止表示拉不到主库日志,常见于网络或权限问题 |
| 处理线程状态 | 运行中 | 停止通常伴随数据冲突或错误 |
| 延迟秒数 | 接近零 | 持续增长说明从库追不上主库写入 |
| 中继日志积压 | 稳定水位 | 快速上涨说明处理能力不足 |
| 最后错误 | 为空 | 非空要立刻查看具体错误码 |
采集性能模式表比解析状态命令的文本更稳定:文本格式在不同版本间会变化,正则解析容易在升级后失效。
只监控延迟不监控线程状态会漏掉最严重的场景:拉取线程断开时部分字段读数仍为零,看起来一切正常。