mysql主从复制如何监控状态_mysql复制监控思路

26次阅读

mysql主从复制监控核心是确认复制正常、无延迟、无错误,重点检查IO线程连接、SQL线程执行及Seconds_Behind_Master是否稳定;需关注SHOW SLAVE STATUS中的Slave_IO_Running、Slave_SQL_Running、Seconds_Behind_Master、Relay_Log_Space、Last_IO_Errno/Last_SQL_Errno等字段,避免假“正常”陷阱,并结合脚本巡检与prometheus+grafana长期跟踪。

mysql主从复制如何监控状态_mysql复制监控思路

MySQL主从复制的监控核心是确认复制是否正常运行、有无延迟、是否存在错误。重点看三个指标:IO线程是否连接主库、SQL线程是否在执行、Seconds_Behind_Master是否持续为0或稳定波动。

关键状态字段怎么看

在从库执行 SHOW SLAVE STATUSG,重点关注以下几项:

  • Slave_IO_Running:必须为 Yes,表示从库能连上主库并接收binlog
  • Slave_SQL_Running:必须为 Yes,表示从库正在回放relay log
  • Seconds_Behind_Master:数值越小越好,0 表示基本实时;若持续大于 60 秒需警惕
  • Relay_Log_Space:过大可能说明SQL线程卡住,或主库写入压力大
  • Last_IO_Errno / Last_SQL_Errno:非0即出错,要立刻查错因(如主键冲突、表不存在)

用命令+脚本做基础巡检

可写简单shell脚本定时检查关键字段,例如:

mysql -uuser -ppass -e "SHOW SLAVE STATUSG" | grep -E "Slave_IO_Running|Slave_SQL_Running|Seconds_Behind_Master|Last_IO_Errno|Last_SQL_Errno"

配合 crontab 每分钟执行一次,异常时发邮件或写日志。注意避免高频查询影响性能,生产环境建议5–30秒间隔更稳妥。

mysql主从复制如何监控状态_mysql复制监控思路

Fotor AI Image Upscaler

Fotor推出的AI图片放大工具

mysql主从复制如何监控状态_mysql复制监控思路 73

查看详情 mysql主从复制如何监控状态_mysql复制监控思路

引入监控系统做长期跟踪

推荐用Prometheus + mysqld_exporter采集指标,再通过Grafana可视化:

  • 监控 mysql_slave_status_seconds_behind_master 趋势图,设阈值告警(如 > 120s 持续2分钟)
  • 跟踪 mysql_slave_status_slave_io_runningmysql_slave_status_slave_sql_running 的布尔状态变化
  • 结合 mysql_global_status_commands_total{command="com_commit"} 对比主从QPS,辅助判断复制压力

识别常见假“正常”陷阱

有些状态看似OK,实则隐患已埋下:

  • Seconds_Behind_Master: NULL:不是延迟大,而是SQL线程没启动或刚启动,需结合Slave_SQL_Running判断
  • Seconds_Behind_Master: 0Relay_Log_Pos 长期不更新:可能是主库没新写入,也可能是IO线程假连(实际断开但未超时)
  • 启用GTID后,Retrieved_Gtid_SetExecuted_Gtid_Set 不一致:说明部分事务没执行,不能只看Seconds_Behind_Master

不复杂但容易忽略的是持续观察和横向对比——单次检查只能看快照,结合历史趋势和主从负载才能真正定位问题根源。

text=ZqhQzanResources