专栏首页性能与架构如何监控MySQL的复制延迟?

如何监控MySQL的复制延迟?

pt-heartbeat

数据库做主从复制时,复制状态、数据延迟是否正常是非常关键的指标,那么如何对其进行监控呢?

pt-heartbeatPERCONA 开发的一个工具集中的一个,专门用来监控MySQLPostgreSQL的复制延迟。

比较成熟,例如Uber等大型公司都在使用。

监控原理

master 中建一个 heartbeat 表,其中有一个 时间戳 字段,pt-heartbeat 会周期性的修改时间戳的值。

slave 会复制 heartbeat表,其中就包含了 master执行修改动作的时间戳,对其和 slave 的本地时间进行对比,得到一个差值,就是复制延迟的值,从而判断复制状态是否正常,以及延迟时间是否符合预期。

pt-heartbeat 是根据实际的复制记录来计算的,所以他不关心你使用什么方式进行复制。

pt-heartbeat 可以监控任意深度的复制层级,因为 heartbeat 表中有 server_id 字段,在监控某个 slave 的延迟时可以指定是参考哪个 server_id,例如想知道这个 slave 与其 mastermaster 的延迟情况,指定目标 masterserver_id 就可以了。

因为 pt-heartbeat 严格依赖时间,所以需要注意 masterslave 的时间一定要同步。

使用示例

master 执行创建心跳表的操作,并执行循环 update 操作,执行命令:

pt-heartbeat \
--user=root --ask-pass \
--host=127.0.0.1 \
--create-table -D master1 \
--interval=1 --update \
--replace --daemonize

其中指定了 master 的连接信息,--create-table -D master1 是指在 master1这个数据库中创建心跳表,后面的参数指定执行 update 的时间间隔。

然后就可以对 slave 进行监控了,执行命令:

pt-heartbeat \
--user=root --ask-pass \
-h 192.168.31.207 \
-D master1 --table=heartbeat \
--monitor 

--monitor 参数指明是要进行监控,之前的是监控目标的信息,包括 slave 的连接信息、数据库和表名。

输出信息示例:

0.00s [  0.00s,  0.00s,  0.00s ]
0.00s [  0.00s,  0.00s,  0.00s ]
0.00s [  0.00s,  0.00s,  0.00s ]
...

0.00s 表示现在的延迟信息,[ 0.00s, 0.00s, 0.00s ] 表示 1m,5m,15m 的平均值。

安装过程

下面是在CentOS7下的安装过程:

$ wget percona.com/get/percona-toolkit.tar.gz
$ tar zxf percona-toolkit-2.2.19.tar.gz
$ cd percona-toolkit-2.2.19
$ yum -y install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-Digest-MD5 perl-DBD-MySQL 
$ perl Makefile.PL
$ make
$ make test
$ make install

小结

pt-heartbeat 的官方文档地址:

https://www.percona.com/doc/percona-toolkit/2.1/pt-heartbeat.html

其中有原理的详细介绍和参数用法,有兴趣的可以仔细看下。

本文分享自微信公众号 - 性能与架构(yogoup),作者:杜亦舒

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-11-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网站性能指标 - Apdex指数

    假设有两个架构设计方案:方案A 和 方案B 方案A 并发请求 < 200 时,响应时间为 0.5秒 并发请求 > 1000 时,响应时间为 10秒 方案...

    dys
  • Mysql 查看表及索引空间大小

    查看数据库占用空间 SELECT CONCAT(ROUND((sum(DATA_LENGTH)+sum(INDEX_LENGTH))/(1024*1024),2...

    dys
  • jQuery 3.0 的一个小问题

    jQuery 前阶段推出了3.0版本,改动非常大,如果要使用 3.0 的话,建议先仔细了解一下新特性,否则会引起一些小问题,例如下面的代码 <html> <he...

    dys
  • 速读原著-TCP/IP(OSPF:开放最短路径优先)

    O S P F是除R I P外的另一个内部网关协议。它克服了 R I P的所有限制。 RFC 1247 [Moy1 9 9 1 ]中对第2版O S P F进行了...

    cwl_java
  • EDR获公安部销售许可证书

    EDR将是安全的主战场 2016年的RSA大会后,以前颇为冷门的终端安全,突然火爆起来,这其实是一种必然的趋势,是一种安全技术的回归。 一个安全事件,无论在网络...

    安恒信息
  • 技术行业的宏观趋势|TW洞见

    于舟(译) ThoughtWorks 我们每半年发布一次技术雷达:它是所有我们认为横跨业界当下和将来的相关重要技术的快照。我们从世界各地召集了约20位最有资历的...

    ThoughtWorks
  • 电信业务平台融合的探讨

    遍览福建电信的业务平台,省一级的有智能网、彩铃平台、114平台(号码百事通平台)、168、160、短信、互联星空、超级邮箱等诸多平台;地市一级也有繁多的...

    源哥
  • Vue成神之路之选项

    vue.js——开发版本:包含完整的警告和调试模式 vue.min.js——生产版本:删除了警告,进行了压缩

    小胖
  • Python-数据挖掘-贴吧案例-下

    ① 提示用户输入要爬取的爬取名,以及要查询的起始页和结束页。然后,使用 urllib.parse.urlencode() 对 url 参数进行转码,组合成一个完...

    小团子
  • Matlab图片水印技术

    图片水印技术在现代计算机技术中具有越来越重要的作用,今天,我就给大家简单介绍图片水印技术的原理。

    艾木樨

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动