MySQL中second behind master不准确怎么处理
这篇文章主要为大家展示了"MySQL中second behind master不准确怎么处理",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"MySQL中second behind master不准确怎么处理"这篇文章吧。
binglog日志中event的event header(event header的前4个字节)记录了event的时间戳,SQL回放的时间减去这个event产生的时间,就是Seconds_Behind_Master的时间。但是这个时间不准确,线上有时延时是几千秒(3600s),但是突然就变成了0,有这种情况。
pt-heartbeat,下载通用二进制包
创建监控数据库:
mysql> create database monitor;Query OK, 1 row affected (0.02 sec)
下载安装
./pt-heartbeat -D monitor --update -uroot -p oracle -P3306 -h 10.10.60.60 --create-table --daemonize
参数的意义:
--update表示要实时更新时间戳的数据,这就是和之前的seconds_behind_master不同,seconds_behind_master并不是实时更新。
--daemonize放到后台执行
--create-table第一次需要创建heartbeat名的表。
pt-heartbeat创建一个带有时间戳的表,并且因为是主从,这样表会复制到从上。
并且我们可以看到,每次查询的时候时间戳和position都是变化的,
备库上heartbeat表的ts列时间和主库heartbeat表中ts列的时间差就是主从复制的延迟时间
并且工具中还提供了monitor监控工具。
监控:
./pt-heartbeat -D monitor --monitor --master-server-id 603306 -uroot -p oracle -P3306 -h 10.10.60.60
看精确的看第一列,后几列分别为1min、5min、15min内的延迟时间。
以上是"MySQL中second behind master不准确怎么处理"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!