mysql max pt_mysql管理工具之pt

之前我一直用Seconds_behind_master来衡量主从的延迟,今天看到文档,才觉得多么不可靠!以下是官方文档的描述:

In essence, this field measures the time difference in seconds between the slave SQL thread and the slave I/O thread.

也就是说,这个变量是描述的是从库上I/O thread和SQL thread之间的时间差。

下面使用pt-heartbeat监控主从延迟:

【原理】:

1:在主库上创建一张heartbeat表,按照一定的时间频率更新该表的字段(把时间更新进去)。

2:连接到从库上检查复制的时间记录,和从库的当前系统时间进行比较,得出时间的差异。

【用法】:

pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop

【参数说明】

48304ba5e6f9fe08f3fa1abda7d326ab.png

--check

检查从的延迟,检查一次就退出,除非指定了--recurse会递归的检查所有的从服务器。

--monitor

持续监控从的延迟情况。通过--interval指定的间隔时间,打印出从的延迟信息--daemonize

执行时,放入到后台执行

--file

打印--monitor最新的记录到指定的文件,很好的防止满屏幕都是数据的烦恼。

--frames

在--monitor里输出的[]里的记录段,默认是1m,5m,15m。可以指定1个,如:--frames=1s,多个用逗号隔开。可用单位有秒(s)、分钟(m)、小时(h)、天(d)。

--interval

检查、更新的间隔时间。默认是见是1s。最小的单位是0.01s,最大精度为小数点后两位,因此0.015将调整至0.02。

--log

开启daemonized模式的所有日志将会被打印到制定的文件中。

--update

更新主上的心跳表。

--replace

使用--replace代替--update模式更新心跳表里的时间字段,这样的好处是不用管表里是否有行。

--stop

停止运行该工具(--daemonize),在/tmp/目录下创建一个“pt-heartbeat-sentinel” 文件。后面想重新开启则需要把该临时文件删除,才能开启(--daemonize)。

--table

指定心跳表名,默认heartbeat。

--create-table

在主上创建心跳监控的表,如果该表不存在。可以自己建立,建议存储引擎改成memory。通过更新该表知道主从延迟的差距。

CREATE TABLE heartbeat (

ts varchar(26) NOT NULL,

server_id int unsigned NOT NULL PRIMARY KEY,

file varchar(255) DEFAULT NULL, -- SHOW MASTER STATUS

position bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUS

relay_master_log_file varchar(255) DEFAULT NULL, -- SHOW SLAVE STATUS

exec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS

);

48304ba5e6f9fe08f3fa1abda7d326ab.png

【使用案例】

主库:10.10.101.11  端口3306

从库:10.10.101.11  端口3307

1、在主库上执行命令:

/usr/local/bin/pt-heartbeat -D test --create-table -h 10.10.101.11 -P 3306 -u root -p '*******' --update --daemonize

-D:表示受监控的数据库

这时,主库中已经创建了下面的表heartbeat:

48304ba5e6f9fe08f3fa1abda7d326ab.png

mysql> show tables;

+----------------+

| Tables_in_test |

+----------------+

| checksums |

| heartbeat |

+----------------+

2 rows in set (0.00 sec)

mysql> select * from heartbeat;

+----------------------------+-----------+------------------+----------+-----------------------+---------------------+

| ts | server_id | file | position | relay_master_log_file | exec_master_log_pos |

+----------------------------+-----------+------------------+----------+-----------------------+---------------------+

| 2015-11-02T15:01:45.001340 | 113306 | mysql-bin.000021 | 1240408 | mysql-bin.000021 | 120 |

+----------------------------+-----------+------------------+----------+-----------------------+---------------------+

1 row in set (0.00 sec)

48304ba5e6f9fe08f3fa1abda7d326ab.png

2、在从库上进行延迟监控:

#执行一次就退出

[root@10-10-101-11 backup]# /usr/local/bin/pt-heartbeat -D test  -h 10.10.101.11 -P 3307 -uroot -p'*******' --check

0.00

[root@10-10-101-11 backup]#

持续监控:

48304ba5e6f9fe08f3fa1abda7d326ab.png

[root@10-10-101-11 backup]# /usr/local/bin/pt-heartbeat -D test -h 10.10.101.11 -P 3307 -uroot -p'*******' --monitor

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 ]

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 ]

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 ]

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

48304ba5e6f9fe08f3fa1abda7d326ab.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值