之前我一直用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:连接到从库上检查复制的时间记录,和从库的当前系统时间进行比较,得出时间的差异。

【用法】:

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

【参数说明】

  1. --check
  2. 检查从的延迟,检查一次就退出,除非指定了--recurse会递归的检查所有的从服务器。
  3.  
  4. --monitor
  5. 持续监控从的延迟情况。通过--interval指定的间隔时间,打印出从的延迟信息--daemonize
  6. 执行时,放入到后台执行
  7.  
  8. --file
  9. 打印--monitor最新的记录到指定的文件,很好的防止满屏幕都是数据的烦恼。
  10.  
  11. --frames
  12. 在--monitor里输出的[]里的记录段,默认是1m,5m,15m。可以指定1个,如:--frames=1s,多个用逗号隔开。可用单位有秒(s)、分钟(m)、小时(h)、天(d)。
  13.  
  14. --interval
  15. 检查、更新的间隔时间。默认是见是1s。最小的单位是0.01s,最大精度为小数点后两位,因此0.015将调整至0.
  16.  
  17. --log
  18. 开启daemonized模式的所有日志将会被打印到制定的文件中。
  19.  
  20. --update
  21. 更新主上的心跳表。
  22.  
  23. --replace
  24. 使用--replace代替--update模式更新心跳表里的时间字段,这样的好处是不用管表里是否有行。
  25.  
  26. --stop
  27. 停止运行该工具(--daemonize),在/tmp/目录下创建一个“pt-heartbeat-sentinel 文件。后面想重新开启则需要把该临时文件删除,才能开启(--daemonize)。
  28.  
  29. --table
  30. 指定心跳表名,默认heartbeat
  31.  
  32. --create-table
  33. 在主上创建心跳监控的表,如果该表不存在。可以自己建立,建议存储引擎改成memory。通过更新该表知道主从延迟的差距。
  34. CREATE TABLE heartbeat (
  35. ts varchar() NOT NULL,
  36. server_id int unsigned NOT NULL PRIMARY KEY,
  37. file varchar() DEFAULT NULL, -- SHOW MASTER STATUS
  38. position bigint unsigned DEFAULT NULL, -- SHOW MASTER STATUS
  39. relay_master_log_file varchar() DEFAULT NULL, -- SHOW SLAVE STATUS
  40. exec_master_log_pos bigint unsigned DEFAULT NULL -- SHOW SLAVE STATUS
  41. );

【使用案例】

主库:10.10.101.11  端口3306

从库:10.10.101.11  端口3307

1、在主库上执行命令:

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

-D:表示受监控的数据库
这时,主库中已经创建了下面的表heartbeat:

  1. mysql> show tables;
  2. +----------------+
  3. | Tables_in_test |
  4. +----------------+
  5. | checksums |
  6. | heartbeat |
  7. +----------------+
  8. rows in set (0.00 sec)
  9.  
  10. mysql> select * from heartbeat;
  11. +----------------------------+-----------+------------------+----------+-----------------------+---------------------+
  12. | ts | server_id | file | position | relay_master_log_file | exec_master_log_pos |
  13. +----------------------------+-----------+------------------+----------+-----------------------+---------------------+
  14. | --02T15::45.001340 | | mysql-bin. | | mysql-bin. | |
  15. +----------------------------+-----------+------------------+----------+-----------------------+---------------------+
  16. row in set (0.00 sec)

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

  1. #执行一次就退出
    [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]#

持续监控:

  1. [root@--- backup]# /usr/local/bin/pt-heartbeat -D test -h 10.10.101.11 -P -uroot -p'*******' --monitor
  2. .00s [ .00s, .00s, .00s ]
  3. .00s [ .00s, .00s, .00s ]
  4. .00s [ .00s, .00s, .00s ]
  5. .00s [ .00s, .00s, .00s ]
  6. .00s [ .00s, .00s, .00s ]
  7. .00s [ .00s, .00s, .00s ]
  8. .00s [ .00s, .00s, .00s ]
  9. .00s [ .00s, .00s, .00s ]
  10. .00s [ .00s, .00s, .00s ]
  11. .00s [ .00s, .00s, .00s ]
  12. .00s [ .00s, .00s, .00s ]
  13. .00s [ .00s, .00s, .00s ]
  14. .00s [ .00s, .00s, .00s ]

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

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

  1. mysql管理工具之pt

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

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

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

  3. mysql 管理工具

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

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

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

  5. MySQL管理工具HeidiSQL

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. 解决zabbix“ZBX_NOTSUPPORTED: Timeout while executing a shell script”报错

    如题所示,在zabbix_server使用zabbix_get获取自定义“UserParameter”对应的脚本的数据时,出现了如题所示的报错信息 [root@nmp01 scripts]# /usr ...

  2. Tomcat Https配置

    一.生成KeyStore 打开命令行,输入:keytool -genkey -alias tomcat_server -keyalg RSA -storepass jimmypwd -validity ...

  3. 防止Spinner初始化加载

    spinner在初始化的时候会自动调用一次OnItemSelectedListener,我们很多时候需要他不加载这一次,使用下面的代码spinner.setSelection(0, true);

  4. ros之串口通信---imu

    1.sudo apt-get install ros-kinetic-rosserial 或者sudo git clonegit://github.com/wjwwood/serial.git  (开 ...

  5. 使用Fiddler抓包拦截线上JS

    第三方教程:http://www.lcgod.com/atc_74 分六步即可: 1.左侧session列表中选中你想替换的一条请求 2.右侧,切换到AutoResponder,点击Add rules ...

  6. SpringBoot使用MyBatis报错:Error invoking SqlProvider method (tk.mybatis.mapper.provider.base.BaseInsertProvider.dynamicSQL)

    © 版权声明:本文为博主原创文章,转载请注明出处  1. 错误描述 使用SpringBoot集成MyBatis框架,并且使用 mapper-spring-boot-starter 自动生成MyBati ...

  7. centos root登录password 忘记解决的方法

    Centos系统 登陆root忘记password 解决方式: (1)开机启动系统,在进入linux系统之前按键Esc 进入例如以下界面:(须要注意:Centos是安装在虚拟机里面的话,须要将鼠标点进 ...

  8. C#中YieldReturn的用法

    Yield Return 和 Yield Break 的出现是为了简化迭代器. 类如果能被遍历则必须有IEnumerator<string> GetEnumerator() 方法, 并有用 ...

  9. java中双向链表的增、删、查操作

    import java.util.NoSuchElementException; public class DoublyLinkedListImpl<E> { private Node h ...

  10. iOS中三种方式实现登录界面播放视频或gif效果

    现在app都做的越来越炫酷,各种动画效果,各种特效很好的提高了用户的体验.很多app在登录界面都使用了动画效果,比如Uber,Keep,QQ等等.这些动画效果基本都是使用gif或者MP4来实现的. 效 ...