mysql查看主从延迟_查看mysql主从复制延迟和数据中断

本帖最后由 majianxi1979 于 2014-12-14 17:32 编辑

查看mysql延迟的方法,查看了多个案例,大家众说纷纭,意见差不多一致。如下也是我参考别人经验做的一些测试,希望能检测到mysql复制延迟、数据中断。

方法一、查看Seconds_Behind_Master

该参数有如下值:

NULL  表示io_thread或sql_thread有一个发生故障,就是说该线程的Running状态时No,而非Yes

0     表示主从复制良好,没有lag存在

正值  表示主从已出现延时,数字越大表示从库落后主库越多

负值  很罕见,是一个BUG,按理说不应该出现

该方法是使用命令show slave status,通过比较SQL THREAD接受events时间的时间戳与IO THREAD执行事件events时间戳的差值--秒数,来确定slave落后于master多少,如主从

时间不同,改时间的计算不受影响

众所周知备库relay-log和主库的bin-log里的内容一样,真正和主库有关两的是io_thread,当主库I/O负载很大或网络阻塞时,io_thread不能及时复制binlog,而sql_thread一

直能跟上io_thread的脚步,这时seconds_behind_master的值是0,实际上却不是,这时用该值作为延迟参考则不准。

change master to master_host='192.168.2.7',master_user='tongbu',master_password='123456',master_log_file='mysql-bin.000008',master_log_pos=291263843;

方法二、使用pt-heartbeat工具

该工具可以计算出MySQL复制或者是PostgreSQL,它可以更新master或者监控复制。它还可以从f 读取配置。它借助timestmp的比较实现的,首先需要保证主从服务器时间必须要

保持一致,通过与相同的一个NTP server同步时钟。它需要在主库上创建一个heartbeat的表,里面的时间戳ts就是当前的时间戳 now(),该结构也会被复制到从库上。表建好以后

,会在主库上以后台进程的模式去执行一行更新操作的命令,定期去向表中的插入数据,这 个周期默认为1 秒,同时从库也会在后台执行一个监控命令,与主库保持一致的周期

+0.5S(默认0.5S延迟检查)去比较,复制过来记录的ts值与主库上的同一条ts值,差值为0表示无延时,差值越大表示 延时的秒数越多。

使用工具前提:

1.在主库上建立heartbeat表

pt-heartbeat -h localhost -D test  --create-table --update

2.更新主库上的heartbeat

pt-heartbeat -D test --master-server-id=1 --update

3.在从库上监控复制延迟

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值