文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用pt工具检测MySQL主从延迟

2024-04-02 19:55

关注

小编给大家分享一下如何使用pt工具检测MySQL主从延迟,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

      Percona-toolkit的安装和配置(r8笔记第86天)
      MySQL主从不一致的修复过程

   我们创建一个用户pt_checksum,方便以后做数据修复等,权限都一并给到。

GRANT SELECT, PROCESS, SUPER, REPLICATION SLAVE ON *.* TO 'pt_checksum'@'10.127.%.%' IDENTIFIED BY 'pt_checksum';   然后我们给予这个用户访问test数据库的权限。

grant all privileges on test.* to pt_checksum@'10.127.%.%';   工具具体的参数可以参考pt-heartbeat --help来看到,我给出要点即可。

   我们来创建测试表,在后台启动这个心跳守护进程,其中的create-table就是创建测试表,interval是间隔1秒钟,最小可以到0.01秒,update是更新test库上的这个测试表,而replace则是更新替换表里的时间,无须考虑表里是否有数据,daemonize是后台运行的标注。

pt-heartbeat h='10.127.128.99',u='pt_checksum',p='pt_checksum',P=3306 -D test --create-table --interval=1 --update --replace --daemonize   使用ps命令可以看到如下的heartbeat进程,或者换个口味,用pgrep -fl pt-heartbeat也可以查看。

# ps -ef|grep heartbeat
root     19920     1  0 22:35 ?        00:00:00 perl /usr/local/bin/pt-heartbeat h=10.127.128.99,u=pt_checksum,p=pt_checksum,P=3306 -D test --create-table --interval=1 --update --replace --daemonize   接下来的就是重点工作了,我们可以开启monitor选项来监控主从延迟的情况,有一点需要提一下,就是需要设置server-id

# pt-heartbeat h='10.127.xx.xx',u='pt_checksum',p='pt_checksum',P=3306 -D test --table=heartbeat --monitor
The --master-server-id option must be specified because the heartbeat table `test`.`heartbeat` uses the server_id column for --update or --check but the server's master could not be automatically determined.
Please read the DESCRIPTION section of the pt-heartbeat POD.主库上快速查看。

> show slave hosts;
+-----------+------+------+-----------+--------------------------------------+
| Server_id | Host | Port | Master_id | Slave_UUID                           |
+-----------+------+------+-----------+--------------------------------------+
|     13058 |      | 3306 |        20 | c6d66211-a645-11e6-a2b6-782bcb472f63 |
+-----------+------+------+-----------+--------------------------------------+
1 row in set (0.01 sec)结果和show variables like 'server%'结果是一致的,更快速高效。
  我们查看延迟的情况。

# pt-heartbeat h='10.127.xx.xx',u='pt_checksum',p='pt_checksum',P=3306 -D test --table=heartbeat --monitor --master-server-id=20
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 ]   可以看到目前的环境中是诶呦任何延迟的,方括号里面的指标是什么意思,可以使用frames来定制,比如默认是1m,5m,15m,我们可以定制,比如显示为1m,2m,3m,4m这样。

# pt-heartbeat h='10.127.xx.xx',u='pt_checksum',p='pt_checksum',P=3306 -D test --table=heartbeat --monitor --master-server-id=20 --frames=1m,2m,3m,4m
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,如果用sysbench压一下,立马或有延迟的明显差异。我们在后面整体对比测试一下。

  如果想即查即看,就看一次,可以使用check选项,当然这个值就没有frame的时间范围了。

# pt-heartbeat h='10.127.128.99',u='pt_checksum',p='pt_checksum',P=3306 -D test --table=heartbeat  --master-server-id=20  --check
0.00   当然有进有出,我们开启了后台守护进程,本质上是个perl脚本,如果要停止,也规范一些,使用stop选项来做,会生辰改一个临时文件,下次需要重新启动的话,需要清理掉这个文件。

# pt-heartbeat h='10.127.xx.xx',u='pt_checksum',p='pt_checksum',P=3306 -D test --stop
Successfully created file /tmp/pt-heartbeat-sentinel

以上是“如何使用pt工具检测MySQL主从延迟”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯