mysql heartbeat 慢_MySQL 主从延迟监控脚本(pt-heartbeat)

对于MySQL数据库主从复制延迟的监控,我们可以借助percona的有力武器pt-heartbeat来实现。pt-heartbeat通过使用时间戳方式在主库上更新特定表,然后在从库上读取被更新的时间戳然后与本地系统时间对比来得出其延迟。本文主要是通过脚本来定期检查从库与主库复制的延迟度并发送邮件,供大家参考。

有关pt-heartbeat工具的安装可以参考:percona-toolkit的安装及简介

有关pt-heartbeat工具的介绍可以参考:使用pt-heartbeat监控主从复制延迟

1、脚本概述 a、脚本定期使用--check方式单次检查当前的延迟性(定期的方式可以使用cron job比如每1分钟或5分钟)

b、通过设定指定的延迟阀值来判断当时的延迟性是否在可控范围

c、一旦当前的延迟大于指定阀值,则马上使用--monitor方式不停的监控其延迟性并写入到日志文件

d、对于--monitor方式,其进程运行超过30分钟,自kill其进程,以避免无限期运行导致日志过大,空间不够用

2、脚本内容[mysql@SZDB run]$ more ck_slave_lag.sh

#!/bin/bash

#set -x

if [ $# -ne 3 ];then

echo "usage:"

echo "ck_slave_lag.sh "

exit 0;

fi

# Author : Leshami

# Blog : http://www.php.cn/

ServerID=$1

MaxLag=$2

LogDir=$3

Timestamp=`date +%Y%m%d_%H%M%S`

Rentition=7

LogFile=$LogDir/slave_lag_$Timestamp.log

LagDetail=$LogDir/slave_lag_Detail_$Timestamp.log

mailadd=leshami@12306.cn

echo $ServerID

echo $MaxLag

echo $LogDir

echo $LogFile

echo $LagDetail

echo $mailadd

if [ ! -d $LogDir ];then

mkdir -p $LogDir

fi

Lag=`/usr/bin/pt-heartbeat --user=monitor --password=xxx -S /tmp/mysql.sock -D test --master-server-id=$ServerID --check`

Lag=`echo ${Lag%.*}`

#Lag=3

echo $Lag

ptStatus=`ps -ef|grep pt-heart|grep daemonize`

echo $ptStatus

if [ $Lag -gt $MaxLag ]; then

echo "The current date is `date` at `hostname`." >>$LogFile

echo "The current lag log file is $LogFile." >>$LogFile

echo "The current replication lag is $Lag." >>$LogFile

echo "The replication lag is larger than max lag $MaxLag." >>$LogFile

if [ -z "$ptStatus" ] ; then

echo "Start a monitor daemon with below command: " >>$LogFile

echo "pt-heartbeat --user=monitor --password=xxx -S /tmp/mysql.sock -D test " >>$LogFile

echo " --master-server-id=11 --monitor --print-master-server-id --daemonize --log=$LagDetail" >>$LogFile

/usr/bin/pt-heartbeat --user=monitor --password=xxx -S /tmp/mysql.sock -D test \

--master-server-id=$ServerID --monitor --print-master-server-id --daemonize --log=$LagDetail

echo "More detail please check lag log from $LagDetail." >>$LogFile

cat $LogFile | mutt -s "Found slave lag on `hostname`." $mailadd

fi

fi

if [ -n "$ptStatus" ] ; then

STime=`ps -ef|grep pt-heart|grep daemonize |gawk '{print $5}'`

Pid=`ps -ef|grep pt-heart|grep daemonize |gawk '{print $2}'`

STime=`date '+%Y%m%d'`" "$STime

s_STime=`date -d "$STime" '+%s'`

s_ETime=`date +%s`

DiffSec=`expr $s_ETime - $s_STime`

echo $STime

echo $s_STime

echo $s_ETime

echo $DiffSec

if [ "$DiffSec" -gt 1800 ]; then

echo "kill -9 $Pid"

kill -9 $Pid

fi

fi

# Remove history slave lag log.

find $LogDir -name "*slave_lag*" -ctime +$Rentition -delete

exit

3、部署参考[mysql@SZDB run]$ crontab -l

#check slave lag

*/1 * * * * /run/ck_slave_lag.sh 11 3 /log/SlaveLag

以上就是MySQL 主从延迟监控脚本(pt-heartbeat)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304057.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp.net中的窗体身份验证(分目录验证篇)

在上一篇博文《asp.net中的窗体身份验证(最简单篇)》中的身份验证虽然很简单,但是有一个缺点,就是访问整个网站都必须要经过身份验证,而事实上,很多网站都不会这么要求的。 比如一个新闻系统,通…

这本 “写不完” 的黑科技笔记本,恐怕要颠覆整个行业!

这是一本可以“阅后即焚”的笔记本?别想太多这个“焚”不是那个“焚”哦~TA非常神奇!风筒吹吹,笔记本上字迹都会自动消失。what?(暂时保密,一会见证奇迹)每个人在步入学生时代,到社会…

.NET 6 Preview 2 发布

前言在 2021 年 3 月 11 日, .NET 6 Preview 2 发布,这次的改进主要涉及到 MAUI、新的基础库和运行时、JIT 改进。.NET 6 正式版将会在 2021 年 11 月发布,支持 Windows、macOS、Linux、Android 和 iOS 等系统以及 x86、x86_64、ARM 和 ARM64…

mysql+误操作怎么恢复_MySQL 误操作后如何快速恢复数据

传统解法用全量备份重搭实例,再利用增量binlog备份,恢复到误操作之前的状态。然后跳过误操作的SQL,再继续应用binlog。此法费时费力,不值得再推荐。利用binlog2sql快速闪回首先,确认你的MySQL server开启了binlog&…

RHEL5.1下安装GCC

RHEL5.1下安装GCC 2010年08月17日 星期2 14:00 一、环境说明 由于用的是默认安装,所以说GCC也没有装进去。 GCC在安装源码包时要用到的一个组件, 开始安装:按顺序安装以下包就可以完成GCC的安装了 [roottest tools]# uname -a L…

你见过的“垃圾”项目是这样子么?

大家好,我是Z哥。我相信每一位程序员最怕遇到代码质量堪忧的项目,毕竟增加一个同样的功能,在一个代码整洁、清晰的项目里与在一个代码混乱不堪的项目里,效率和质量上的差距达到一个数量级一点也不奇怪。但是残酷的现实是&#xff…

[转]ArcGIS.Server.9.3和ArcGIS API for Flex实现Toolbar功能(四)

目的:1.ArcGIS API for Flex实现Toolbar功能,包括ZoomIn、ZoomOut、Pan、PrevExtent、NextExtent、FullExtent功能。准备工作:1.这次地图数据就用Esri提供的http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/Ma…

mysql使用索引下推的好处_mysql的索引下推理解和实践

对于mysql建表稍有点经验的开发人员都会为后续的where查询条件提前考虑创建索引。这里说的是在使用索引查询时有关索引下推的有关知识点。综合前人的经验结果:索引下推是数据库检索数据过程中为减少回表次数而做的优化。判断是否需要回表的是由mysql存储引擎控制&am…

物理学家史蒂夫·霍金逝世,享年76岁(附图文回顾他的一生)

3月14日消息,据英国天空新闻等多家媒体报道,史蒂芬威廉霍金(Stephen William Hawking)去世,享年76岁(1942年1月8日-2018年3月14日)。这一消息已经得到霍金家人确认。霍金的三个孩子露…

mysql数据库熟悉表空间数据文件_Oracle表空间和数据文件

Oracle创建表空间 1.创建普通表空间create tablespace oracle_tablespacedatafileOracle创建表空间1.创建普通表空间create tablespace oracle_tablespacedatafile /home/oracle/oradata/orcl/oracle_tablespace.dbfsize 100mautoextend on next 10M maxsize 200Mextent manage…

CSRobot gen:mysql,pg-c#类型映射

下面的数据库类型和c#类型的映射关系,只是我个人的想法,应该不同的业务场景对应可能不一样,比如json,xml,line,polygon结构化的数据,如果在C#中有对应的实体类,可以很友好的转换&…

HTTP header中的 Cache-control

网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:(1) 打开新窗口如果指定cache-c…

2018年最值得关注的15大技术趋势,区块链将得到更广泛的应用

通常情况下,技术趋势是很难准确预测的,因为预测未来本身就极其困难。但是我们还是可以从过往的一些显著数据指标来推测新的一年里科技行业的发展趋势。2018,有哪些值得关注的技术趋势?01 区块链将得到更广泛的应用

mtu值修改

ping -f -l 1472 192.168.0.1转载于:https://blog.51cto.com/xiaohe027/382282

Visual Studio项目引用出现感叹号怎么办?

原因可能有多种:第一种问题:解决方式1:今天换了台电脑,就把笔记本上的项目拷贝到了台式机上, 但是我没有拷贝解决方案整个文件夹,因为其中项目太多了,我就把其中一个项目的文件夹直接拷贝到电脑…

java打包拆包_[Java] Java 打包成jar包 和 解压jar包

解压jar包jar xf xxx.jar打包成jar包方法一:通过jar命令jar命令的用法:下面是jar命令的帮助说明:用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项包括:-c 创建新的归档文…

离职总结:大公司与小公司的个人体验

离职在即,在准备下一个工作环境的这段时间,忽然有一阵感慨,工作近五年,在这段时间中,体验了两种不同的工作环境:一个规模很大,各种开发体系完备的大公司,另一个(也是目前…

NDK/JNI01--NDK下载配置

1、NDK下载我的开发环境是Ubuntu9.04 , 所以下载的NDK为android-ndk-r4-linux-x86.zip 2、NDK解压及配置2-1、解压zip文件unzip android-ndk-r4-linux-x86.zip 2-2、配置NDKROOTvim /etc/profile适当位置添加:export NDKROOT/usr/local/android-sdk-linux_86/androi…

java导入导出excel_Java导入导出Excel工具 easyexcel

Java导入导出Excel工具 easyexcel做Java开发的同学,尤其是做管理后台的同学绝大多数都会接触到报表系统,这时候就少不了Excel的导入和导出了。Java解析生成Excel比较有名的有Apache POI ,但是POI存在缺陷就是所有的数据的解析都是在内存中进…

浅谈.Net Core后端单元测试

1. 前言单元测试一直都是"好处大家都知道很多,但是因为种种原因没有实施起来"的一个老大难问题。具体是否应该落地单元测试,以及落地的程度, 每个项目都有自己的情况。本篇为个人认为"如何更好地写单元测试", 即更加偏向实践向中夹杂一些理论的…