如何监控mysql复制从属?

如何监控mysql复制从属?

经过一番努力,我终于能够将 Mysql 复制(均在 Windows 上)设置为从一台主机到另一台主机的简单单向异步主从复制。现在,此复制的目的只是获得最新备份,并且我们可以在崩溃时切换到从属服务器。

  1. 我如何监视从属状态,如果它无法联系主机,或者发生更多故障,它可以给我发送电子邮件吗?
  2. 如何确保复制同步并且不会丢失任何数据。

如果有任何自动化解决方案那就太好了,否则如果我必须自己编写一些工具,我仍然对这个想法持开放态度。

答案1

Nagios 有多个 MySQL 复制监视器。 这些应该可以解决问题。

答案2

我对 maatkit 工具非常满意。

为了监控从属延迟,我使用mk-heartbeat。其输出由一个简单的 nagios 插件处理。因此,警报内容由 nagios 通过 SMS、邮件等处理...

为了确保所有复制节点上的数据相同,我使用了mk-table-checksum。我有一个小脚本,它mk-table-checksum每天运行,对主服务器和从服务器上所有数据的 1/7 进行校验,然后验证校验和。因此,每周,整个数据都应该进行校验和。我目前正在围绕此脚本开发一个小包装器,以便将结果再次返回到 nagios。我mk-table-checksum建议深入研究参数--arg-table, --replicate, --modulo, --offset, ...

我还有另一个小脚本,它每天计算每个表中的行数,然后计算chunk-size并将其存储在给定的表中--arg-table...所以事情应该是自动化的......

高血压

答案3

不知道任何现成的东西 - 但编写一些从 cron 作业触发的东西非常简单,比如每 10 分钟一次......

writes to a dedicated table in the master, and checks the time
sends an alert (or triggers automatic failover) if the live database is not available
alternatively 
sleeps for X minutes
reads the timestamp on the replicated record
sends an email if they're out of sync by more than a defined threshold

如果你还没有,你应该考虑购买一个合适的监控装置——参见线并将您的解决方案与之集成。

高血压

C。

答案4

这里还有 nagios 插件 mysql_slavestatushttps://www.claudiokuenzler.com/monitoring-plugins/check_mysql_slavestatus.php#.WRKpt8akLIV 它可以很好地监控 mysql 从属 sql_io_running、sql_thread_running 和 seconds_behind_master

相关内容