之前我一直用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

【参数说明】

--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
);

【使用案例】

主库: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:

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)

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]#

持续监控:

[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 ]

更加详细请参考官方说明文档:https://www.percona.com/doc/percona-toolkit/2.2/pt-heartbeat.html

mysql管理工具之pt的更多相关文章

  1. 15款最佳的MySQL管理工具和应用程序

    工欲善其事,必先利其器.几乎每个开发人员都有最钟爱的 MySQL 管理工具,它帮助开发人员在许多方面支持包括 PostgreSQL,MySQL,SQLite,Redis,MongoDB 等在内的多种数 ...

  2. mysql 管理工具

    摘自: http://www.chinaz.com/free/2009/0306/68691.shtml MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购.目前 ...

  3. 涂抹mysql笔记-mysql管理工具

    五花八门的mysql管理工具<>mysql提供的命令行工具 mysql_install_db:mysql建库工具,在源码安装mysql环节我们使用过. mysql_safe:mysql启动 ...

  4. MySQL管理工具HeidiSQL

    MySQL管理工具HeidiSQL   HeidiSQL 是一个功能非常强大的 MySQL 客户端软件.它是德国程序员Ansgar Becker和几个Delphi程序员开发的一个开源工具.要通过Hei ...

  5. 分享几款常用的MySQL管理工具

    MySQL数据库以体积小.速度快.总体拥有成本低等优点,深受广大中小企业的喜爱,像我们常见的MySQL管理工具都有那些呢?下面给大家推荐六个常用的MySQL管理工具!      phpMyAdmin  ...

  6. 三十二. 多表查询 MySQL管理工具 、 用户授权及撤销

    1.MySQL管理工具 部署LAMP+phpMyAdmin平台 安装httpd.mysql.php-mysql及相关包 启动httpd服务程序 解压phpMyAdmin包,部署到网站目录 配置conf ...

  7. 五大好用的开源MySQL管理工具推荐

    众所周知,对于数据库管理工作者(DBA)来说,保持数据正常运行在最佳状态需要具备敏捷.专注.冷静和快速的反应能力.因为数据库几乎是所有应用程序成功运行的核心,由于DBA负责组织数据,因此寻找可靠的工具 ...

  8. Database基础(四):密码恢复及设置、 用户授权及撤销、数据备份与恢复、MySQL管理工具

    一.密码恢复及设置 目标: 本案例要求熟悉MySQL管理密码的控制,完成以下任务操作: 练习重置MySQL管理密码的操作 通过正常途径设置MySQL数据库的管理密码 步骤: 步骤一:重置MySQL管理 ...

  9. MySQL管理工具MySQL Utilities — 介绍与安装(1)

    MySQL Utilities介绍 MySQL Utilities 提供一组命令行工具用于维护和管理 MySQL 服务器,包括: 管理工具 (克隆.复制.比较.差异.导出.导入) 复制工具 (安装.配 ...

随机推荐

  1. 思科常见的防病毒ACL

    SW(config-ext-nacl)# 10 deny tcp any any eq 27665 SW(config-ext-nacl)# 20 deny tcp any any eq 16660 ...

  2. [!] The version of CocoaPods used to generate the lockfile (1.4.0.beta.1) is higher than the version of the current executable (1.3.0.beta.1). Incompatibility issues may arise.

    今天在看一个开源Demo代码的时候,需要执行pod install命令,直接报错如下: 解决方法: 执行:pod update 命令更新资源库即可.

  3. windows配置apache支持https

    https://my.oschina.net/ososchina/blog/510065

  4. 继承System.Web.UI.Page的页面基类

    服务器端的page类      所有我们编写的页面都继承自page类,可见page类是非常重要的,page类提供了哪些功能,直接决定了我们的页面类可以继承什么功能,或者说,直接决定了我们的页面类功能的 ...

  5. 简单范例php调用C# WebService

    准备工作:1. 安装IIS对于PHP的支持,看这里2. 要调用Web Service需要nusoap支持,只要弄个nusoap.php就可以了,把它放在要运行的php文件能够引用的地方,比如我放在同一 ...

  6. Flutter 异步Future与FutureBuilder实用技巧

    什么是Future? Future表示在接下来的某个时间的值或错误,借助Future我们可以在Flutter实现异步操作.它类似于ES6中的Promise,提供then和catchError的链式调用 ...

  7. fastclick.js

    <script src="//cdn.bootcss.com/fastclick/1.0.6/fastclick.js"></script> //<s ...

  8. jdbc配置及使用测试

    源码:https://github.com/xiaostudy/jdbc_test1 这是没有使用连接池的 目录 创建的sql语句create.sql DROP TABLE IF EXISTS t_u ...

  9. Linux 工作管理 (job control)

    fg , bg 有时,命令需要很长的时间才能执行完成.对于这种情况,我们使用‘bg’命令可以将任务放在后台执行,而用‘fg’可以调到前台来使用. 我们可以通过‘&’在后台启动一个程序: fin ...

  10. 算法详解之Tarjan

    "tarjan陪伴强联通分量 生成树完成后思路才闪光 欧拉跑过的七桥古塘 让你 心驰神往"----<膜你抄> 一.tarjan求强连通分量 什么是强连通分量? 引用来自 ...