我有一个MySQL从服务器,当它落后于主服务器0秒时,它正确地报告了0 Seconds_Behind_Master。但是,如果它落后1秒,它将报告14401 Seconds_Behind_Master (这比它落后4小时1秒)。
unix date命令在主程序和从机上同时生成,这两台机器都与ntp同步。
在这两台机器上发出一个SELECT NOW()会产生相同的时间。此外,两个时区都是相同的:
mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name | Value |
+------------------+--------+
| system_time_zone | CDT |
| time_zone | SYSTEM |
+------------------+--------+
2 rows in set (0.00 sec)这对我来说不是什么大问题,但它使我的nagios图形看起来很奇怪,并且阻止了我在那台机器上进行正常的监视以监视从属延迟。有人知道为什么奴隶会认为比实际时间晚了4个小时吗?
发布于 2011-09-01 07:18:19
主线程和从线程之间的时间差是在I/O线程启动时计算的,并且假设在运行时不会更改。它在其中一个服务器上有一个不同的时区,并且在没有重新启动MySQL的情况下进行了更改,然后从服务器将不正确的差异添加到报表中。重新启动服务器。
发布于 2011-08-03 19:18:20
Seconds_Behind_Master被认为是一种不可靠的从滞后度量。mk-心跳是建议的解决方案。查看这的SF帖子(由您的真实)。
发布于 2011-08-03 18:34:53
也许有一个更好的答案,但根据我的经验,任何滞后时间>0几乎都只是一个粗略的估计,应该被怀疑。我的滞后时间是11到15年。此外,afaik,从滞后与时区信息无关;它是二进制日志中光标位置的函数。
https://serverfault.com/questions/297231
复制相似问题