范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

关于使用ptheartbeat监测MySQL主从复制延迟的方法

  pt-heartbeat的工作原理通过使用时间戳方式在主库上更新特定表,然后在从库上读取被更新特定表里的时间戳,再与本地系统时间对比来得出其延迟。
  具体流程:
  1)在主库上创建一张heartbeat表,按照一定的时间频率更新该表的字段(把时间更新); 监控操作运行后,heartbeat表能促使主从同步。
  2)连接到从库上检查复制的时间记录,和从库的当前系统时间进行比较,得出时间的差异。
  一、使用方法(主从和从库上都可以执行监控操作):
  pt-heartbeat [OPTIONS] [DSN] —update | —monitor | —check | —stop  注意:需要指定的参数至少有 --stop 、--update、--monitor、--check 其中--update,--monitor和--check是互斥的;--daemonize和--check也是互斥。 --ask-pass 隐式输入MySQL密码 --charset 字符集设置 --check 检查从的延迟,检查一次就退出,除非指定了--recurse会递归的检查所有的从服务器。 --check-read-only 如果从服务器开启了只读模式,该工具会跳过任何插入。 --create-table 在主上创建心跳监控的表,如果该表不存在,可以自己手动建立,建议存储引擎改成memory;通过更新该表知道主从延迟的差距。 CREATE TABLE heartbeat ( ts                    varchar(26) NOT NULL, server_id             int unsigned NOT NULL PRIMARY KEY, file                  varchar(255) DEFAULT NULL, position              bigint unsigned DEFAULT NULL, relay_master_log_file varchar(255) DEFAULT NULL, exec_master_log_pos   bigint unsigned DEFAULT NULL ); heratbeat 一直在更改ts和position,而ts是检查复制延迟的关键 --daemonize 执行时,放入到后台执行 --user=-u, 连接数据库的帐号 --database=-D, 连接数据库的名称 --host=-h, 连接的数据库地址 --password=-p, 连接数据库的密码 --port=-P, 连接数据库的端口 --socket=-S, 连接数据库的套接字文件 --file [--file=output.txt] 打印--monitor最新的记录到指定的文件,很好的防止满屏幕全是数据。 --frames [--frames=1m,5m,15m] 在--monitor里输出的[]里的记录段,默认是1m,5m,15m。可以指定1个;如:--frames=1s,多个用逗号隔开。可用单位有秒(s)、分钟(m)、小时(h)、天(d)。 --interval 检查、更新的间隔时间。默认是见是1s。最小的单位是0.01s,最大精度为小数点后两位,因此0.016将自动调整至0.02。 --log 开启daemonized模式的所有日志将会被打印到制定的文件中。 --monitor 持续监控从库的延迟情况。通过--interval指定的间隔时间,打印出从库的延迟信息,通过--file则可以把这些信息打印到指定的文件。 --master-server-id 指定主库的server_id,若没有指定则该工具会连到主库上查找其server_id。 --print-master-server-id 在--monitor和--check模式下,指定该参数则打印出主的server_id。 --recurse 多级复制的检查深度。模式M-S-S...不是最后的一个从库都需要开启log_slave_updates,这样才能检查到。 --recursion-method 指定复制检查的方式,默认为processlist,hosts。 --update 更新主库上的心跳表。 --replace 使用--replace代替--update模式更新心跳表里的时间字段,这样的好处是不用管表里是否有行。 --stop 停止运行该工具(--daemonize),在/tmp/目录下创建一个"pt-heartbeat-sentinel"文件。后面想重新开启则需要把该临时文件删除,才能开启(--daemonize)。 --table 指定心跳表名,默认heartbeat。
  二、演示使用pt-heartbeat  # --master-server-id参数(主库my.cnf里配置的server-id值) a、首先添加表 # pt-heartbeat --user=root --password=pwd -S /tmp/mysql.sock -D test --master-server-id=1 --create-table --update MASTER> select * from heartbeat; +----------------------------+-----------+------------------+-----------+-----------------------+---------------------+ | ts | server_id | file             | position  | relay_master_log_file | exec_master_log_pos | +----------------------------+-----------+------------------+-----------+-----------------------+---------------------+ | 2022-09-22T09:48:14.003020 | 1 | mysql-bin.000391  | 677136957 | mysql-bin.000180      |                 120 | +----------------------------+-----------+------------------+-----------+-----------------------+---------------------+ b、更新主库上的heartbeat(后台运行) # pt-heartbeat --user=root --password=pwd -S /tmp/mysql.sock -D test --master-server-id=1 --update & [1] 31249 c、从库上监控延迟 # pt-heartbeat --user=root --password=pwd -S /tmp/mysql.sock -D test --master-server-id=1 --monitor --print-master-server-id 1.00s [ 0.02s,  0.00s,  0.00s ] 1  #实时延迟: 1分钟延迟,5分钟延迟,15分钟延迟 1.00s [ 0.03s,  0.01s,  0.00s ] 1   1.00s [ 0.05s,  0.01s,  0.00s ] 1 1.00s [ 0.07s,  0.01s,  0.00s ] 1 1.00s [ 0.08s,  0.02s,  0.01s ] 1 1.00s [ 0.10s,  0.02s,  0.01s ] 1 1.00s [ 0.12s,  0.02s,  0.01s ] 1 1.00s [ 0.13s,  0.03s,  0.01s ] 1 d、其他操作示例 #将主库上的update使用守护进程方式调度 # pt-heartbeat --user=root --password=pwd -S /tmp/mysql.sock -D test --master-server-id=1 --update --daemonize #修改主库上的更新间隔为2s # pt-heartbeat --user=root --password=pwd -S /tmp/mysql.sock -D test --master-server-id=1 --update --daemonize --interval=2 #停止主库上的pt-heartbeat守护进程 # pt-heartbeat --stop Successfully created file /tmp/pt-heartbeat-sentinel # rm -rf /tmp/pt-heartbeat-sentinel #单次查看从库上的延迟情况 # pt-heartbeat --user=root --password=pwd -S /tmp/mysql.sock -D test --master-server-id=1 --check 1.00 #使用守护进程监控从库并输出日志 # pt-heartbeat --user=root --password=pwd -S /tmp/mysql.sock -D test --master-server-id=1 --monitor --print-master-server-id --daemonize --log=/tmp/slave-heart.log
  三、自动化监控  注意: 如果想把这个输出结果加入自动化监控,那么可以使用如下命令使监控输出写到文件,然后使用脚本定期过滤文件中的最大值作为预警即可: 注意--log选项必须在有--daemonize参数的时候才会打印到文件中,且这个文件的路径最好在/tmp下,否则可能因为权限问题无法创建 # pt-heartbeat -D test --table=heartbeat --monitor --user=root --password=pwd --log=/opt/master-slave-delay.log --daemonize [root@master-server ~]# tail -f /opt/master-slave-delay.txt //可以测试,在主库上更新数据时,从库上是否及时同步,如不同步,可以在这里看到监控的延迟数据 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 ] ....... 下面是编写的主从同步延迟监控脚本,就是定期过滤--log文件中最大值(此脚本运行的前提是:启动更新主库heartbeat命令以及带上--log的同步延迟检测命令)。如果发生延迟,发送报警。 # cat /root/check-slave-monitor.sh#!/bin/bash cat /opt/master-slave-delay.log > /opt/master_slave_delay.log echo -e > /opt/master-slave-delat.log max_time=`cat /opt/master_slave_delay.log |grep -v "^#39; |awk "{print $1}" |sort -k1nr |head -1` NUM=$(echo "$max_time"|cut -d"s" -f1) if [ $NUM == "0.00" ];then echo "MySQL主从同步延迟一致" else echo "Mysql主从数据同步有延迟" # TODO 这里添加报警 fi结合crontab,每隔一分钟检查一次 # mysql主从同步延迟检查 * * * * * /bin/bash -x /root/check-slave-monitor.sh > /dev/null 2>&1
  关闭上面在主库上执行heartbeat的守护进程  方法一:可以用参数--stop去关闭 # pt-heartbeat --stop Successfully created file /tmp/pt-heartbeat-sentinel 这样就把在主上开启的进程杀掉了。 但是后续要继续开启后台进行的话,记住一定要先把/tmp/pt-heartbeat-sentinel 文件删除,否则启动不了 方法二:直接kill掉进程pid(推荐这种方法) #ps -ef|grep heartbeat kill -9 15152
  最后总结:
  通过pt-heartbeart工具可以很好地弥补默认主从延迟的问题,但需要搞清楚该工具的原理。
  重点了: 默认的Seconds_Behind_Master值是通过将服务器当前的时间戳与二进制日志中的事件时间戳相对比得到的,所以只有在执行事件时才能报告延迟。从库复制线程没有运行,也会报延迟。
  还有一种情况:大事务,一个事务更新数据长达一个小时,最后提交。这条更新将比它实际发生时间要晚一个小时才记录到二进制日志中。当从库执行这条语句时,会临时地报告备库延迟为一个小时,执行完后又很快变成0。
  以上就是今天的内容,希望读者朋友看完这篇文章后有所启发。

到2035年北京要建成这样的国际消费中心示范城市北京市规划和自然资源委员会与北京市商务局共同编制的北京市商业消费空间布局专项规划(草案),16日开始公示。规划提出,到2035年,北京将建设成为中国潮国际范与烟火气共融共生的国际消李彦宏的这个野心太大了出品虎嗅医疗组作者陈广晶题图视觉中国李彦宏的AI黑马终于闯进医药圈了?中秋节前,百度CEO李彦宏牵头创办的百图生科,在北京举办了北京中心实验室开业仪式,同时首次正式对外披露了其基于你还会买iphone手机吗?苹果想尝试一些新的东西增加系统广告大家最反感手机系统里面的什么操作?回答广告的小伙伴举举手。我们买新手机回来后,很多人第一时间不是欣赏自己的爱机,而是对手机进行设置,特别是个性化广告这块,能关掉的都关掉。似乎系统已全切双眼皮适合哪些人?有什么优缺点?医生一次性给您讲清楚我们一般说的切开双眼皮是指通过切开上睑的皮肤,根据需求去掉多余的眼部皮肤脂肪等多,最后缝合切口,形成持久性的双眼皮。切开双眼皮都可以塑造出哪些眼型呢?第一种是平行型这种双眼皮的特点可以羊了个羊,但小心羊了个萎一今天,你羊了个羊了吗?最近几天,一款名叫羊了个羊的小游戏火遍全网,让无数网友成为了羊萎患者。那么这个火爆全网的羊了个羊,到底是什么?其实它就是一个类似于消消乐的小游戏。官方是这样9月22日起开放!上海迪士尼将推出阿凡达探索潘多拉主题展上海迪士尼度假区近日宣布,其与詹姆斯卡梅隆和乔恩兰道的美国光影风暴娱乐公司以及迪士尼实体娱乐体验携手,以电影阿凡达为灵感所打造的沉浸式主题展阿凡达探索潘多拉将于9月22日起在上海迪为什么网红艺术村能在海口落地生根?最近这几年,海口新增不少网红景点。朋友圈有人不断提及美兰区的两个景点,一个是898艺术村,另外一个是芳园国际艺术村。趁着假期,我相继走访这些景点,沾染艺术村的气息,接受不同主题的艺夜读丨有趣的背后,其实是豁达按钮收听朗读音频文甘蓝蓝常听人说好看的皮囊千篇一律,有趣的灵魂万里挑一。何为有趣?有趣是天生的吗?其实,人之所以有趣,是因为知道了一些对方不知道的事,拥有和常人看待事物不同的视角。天津实现蓝天白云绿色转型双丰收从天塔观景台北望,远在百公里外的蓟州盘山若隐若现。向东望去,50公里外高530米的滨海新区周大福金融中心清晰可见。如今,像这样能北望盘山东观渤海的场景再现津城,而回首2013年年初我的再次欧洲之旅(二)值得庆幸的是这个巨富家族具有爱好扶持和保护文化艺术的传统。很多艺术家们受到支助和保护,像达芬奇但丁薄伽丘伽利略拉斐尔米开朗基罗乔托等。加上后继者们不断地增购艺术品,馆中藏品达10万夜话连锁酒店今晚又住在兰欧,属于青岛尚美旗下的酒店,尚美是咱山东的连锁酒店品牌,在他乡住着家乡品牌酒店,倍感亲切。而尚美旗下最常见的是尚客优酒店。常见的另外几大连锁品牌如家,有如家精选,如家商
一次性官宣24位演员,刘亦菲新剧排场大,网友爆款妥了大荧幕跟小荧幕的区别是,前者是风格高大上。对演员形象与实力要求高,一旦火了就能赚得盆满钵满的。后者是注重故事讲述,以打造路人缘为核心。一部剧不火照样有下一部在等着,比起电影,电视剧写在2023的话回顾我的2022,重新设立的flag从来没有想过2022年的最后几天,会躺在床上结尾年尾,看着同事们一个接一个地从身边消失,还信誓旦旦地自夸是天选打工人,就咱这小身板绝壁能挺进决赛圈。结果,没想到,一语成谶,赶在20以理想之名,犯下罪恶罪与罚读后感罪只是一瞬间,一刹那,可是罚长久的,甚至是终身的。读罪与罚,全程都是不轻松的。拉斯克纳夫他纠结冷漠自傲,却又善良,有怜悯之心。书的前面一小部分写的是罪。拉斯科纳夫杀死一个老妇,老妇每日智讯23010612核锐龙97900处理器首发3199元AMD去年首发的锐龙7000系列主要是X后缀的不锁频版,前几天又发布了三款非X后缀的新品,TDP也降到了65W,其他如5nmZen4PCIe郑明明的产品怎么样?郑明明红颜紧致柔肤面膜好用吗?外油内干是护肤领域常常提到的一个肌肤现象,指的是皮肤明明很油,在补水之后非但没有减轻油腻,反而越来越干。这种情况其实就是皮肤屏障受到了损伤,这种肌肤如果护肤的话,一定要找对护肤思路我的天花板电视推荐非他莫属啦朋友想换一台电视,知道我喜欢这种电子产品非让我跟她一起挑选我们平时接触到的电视基本就是55吋或者65吋的大小,但是现在越来越多人都更倾向于巨幕电视了我对比了好多个品牌,最后给朋友推微软Win11Beta预览版22621。1095和22623。1095发布IT之家1月6日消息,微软今日面向Windows11Beta预览版用户推送了22621。1095和22623。1095更新,带来了一些新功能和修复改进。内部版本22623。1095修剪你的欲望文席波人的欲望是与生俱来的。只要有生命,欲望就不会休止。欲望既非天使,也不是魔鬼,它能给你带来动力带来追求,也可能给你带来痛苦带来灾难。这就如同丰腴的土地,它能生长鲜花,也能生长毒人没成功之前,一定要管理好自己的欲望呃,在你没有成功之前啊,一定要禁欲。什么叫禁欲?就是没有赚到钱之前,不要跟那些喜欢吃喝玩乐的人交朋友打交道。跟他们混在一起,只会消耗你的时间精力和金钱,让你丧失斗志和吃苦的能力。年新年开盲盒,sanag塞那X6S无聊熊联名款蓝牙音响体验2023年的第一天,我入手了这sanag塞那X6S无聊熊联名款蓝牙音响,其实主要目的不仅因为它是无聊熊联名款,而是它赠送的熊仔盲盒。作为新年的第一份礼物,这次我开的盲盒是篮下垄断机如果你认同了痛苦,你就放弃了自由文章首发在公众号孙娟的书房,期待您的关注!有人说,你相信黑暗,这个世界就是黑暗的。你相信光明,这个世界就是光明的。你是一面镜子,你是什么样,世界就什么样。哪有那么简单。世界就是世界