前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何监控MySQL的复制延迟?

如何监控MySQL的复制延迟?

作者头像
dys
发布2018-04-04 10:49:51
1.5K0
发布2018-04-04 10:49:51
举报
文章被收录于专栏:性能与架构

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 操作,执行命令:

代码语言:javascript
复制
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 进行监控了,执行命令:

代码语言:javascript
复制
pt-heartbeat \
--user=root --ask-pass \
-h 192.168.31.207 \
-D master1 --table=heartbeat \
--monitor 

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

输出信息示例:

代码语言:javascript
复制
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下的安装过程:

代码语言:javascript
复制
$ 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 的官方文档地址:

代码语言:javascript
复制
https://www.percona.com/doc/percona-toolkit/2.1/pt-heartbeat.html

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-11-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • pt-heartbeat
  • 监控原理
  • 使用示例
  • 安装过程
  • 小结
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档