pt-heartbeat
pt-heartbeat:官方地址
说明
用途:监控主从延迟
语法:
pt-heartbeat [OPTIONS] [DSN] --update|--monitor|--check|--stop
可用于监控MySQL、PostgreSQL的主从复制延迟。可以将该延迟信息保存到表中,以供以后查看。
pt-heartbeat
的最大区分粒度为0.01秒。 主服务器和从服务器上的时钟必须通过NTP紧密同步。 默认情况下, --update
检查发生在第二个边缘(例如00:01), --monitor
检查发生在秒之间(例如00:01.5)。 只要服务器的时钟紧密同步并且复制事件在不到半秒的时间内传播,pt-heartbeat
将报告零秒的延迟。
具体例子
启动守护进程以更新master上的lei.heartbeat表
如果第一次运行需要添加--create-table
选项用来创建表。
pt-heartbeat -D lei --update -h 192.168.20.5 -u root -p Sanshi_408 --daemonize --create-table
查看表内容
mysql> select * from heartbeat;
+----------------------------+-----------+------------------+----------+-----------------------+---------------------+
| ts | server_id | file | position | relay_master_log_file | exec_master_log_pos |
+----------------------------+-----------+------------------+----------+-----------------------+---------------------+
| 2019-07-26T16:47:40.001710 | 5 | mysql-bin.000018 | 3072595 | NULL | NULL |
+----------------------------+-----------+------------------+----------+-----------------------+---------------------+
1 row in set (0.00 sec)
持续监控从库的复制延迟
如果第一次运行需要添加--create-table
选项用来创建表。--master-server-id
指定主库的server id
。
[root@BigData ~]# pt-heartbeat -D lei --monitor -h 192.168.20.5 -u root -p Sanshi_408 --master-server-id 5
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 ]
1.00s [ 0.02s, 0.00s, 0.00s ]
0.00s [ 0.02s, 0.00s, 0.00s ]
0.00s [ 0.02s, 0.00s, 0.00s ]
0.00s [ 0.02s, 0.00s, 0.00s ]
0.01s [ 0.02s, 0.00s, 0.00s ]
0.01s [ 0.02s, 0.00s, 0.00s ]
如果是PostgreSQL,则通过--dbi-driver
指定驱动类型
pt-heartbeat -D test --monitor -h slave-server --dbi-driver Pg
显示当前从库延迟
只显示当前的从库延迟,不会持续不断的监控延迟。
[root@BigData ~]# pt-heartbeat -D lei --check -h 192.168.20.5 -u root -p Sanshi_408 --master-server-id 5
0.01