mysql主从同步监控脚本

mysql主从同步监控脚本,利用mysql从库中的IO和SQL进程以及延迟时间来监控主从同步是否正常,详细shell脚本如下:

#!/bin/bash
#author wangning
#date 2017-7-17
#qq 1198143315
#Email [email protected]

################################## define variable#############################
define_variable(){
ip=`ifconfig|sed -n ‘2p‘|awk -F "[: ]+" ‘{print $4}‘`
code=(1158 1159 1008 1007 1062)
status=(`mysql -uroot -p123456 -S /data/3309/mysql.sock -e "show slave status\G"|egrep "Running|Behind_Master|Last_Errno"|awk ‘{print $2}‘`)
}

############################ judge master #######################################
judge_master(){
mysql -uroot -p123456 -S /data/3306/mysql.sock -e "show databases" &>/dev/null
if [ $? -ne 0 ];then
   echo "ip $ip the master mysql service is downed" >/mail/mysql_master.log &&   mail -s "wangning tile" [email protected] </mail/mysql_master.log
else
   echo "ip $ip the master mysql service is normal" >/mail/mysql_master.log &&   mail -s "wangning tile" [email protected] </mail/mysql_master.log
fi
}

################### judge IO SQL status and delay time ############################### 
IO_SQL_delay(){
if [ "${status[0]}" == "Yes" -a "${status[1]}" == "Yes" -a ${status[3]} -le 60 ];then
   echo "the master and slave replication is normal" >/mail/mysql_slave.log &&   mail -s "wangning tile" [email protected] </mail/mysql_slave.log
else 
   echo "the master and slave replication is failed" >/mail/mysql_slave.log &&   mail -s "wangning tile" [email protected] </mail/mysql_slave.log
fi
}

################################ judge error code ##################################
judge_error_code(){
for ((i=0;i<=${#status[*]};i++))
do
if [ ${status[2]} -eq ${code[i]} ];then
   mysql -uroot -p123456 -S /data/3309/mysql.sock -e "stop slave;set global sql_slave_skip_counter=1;start slave"
fi
done
}

main(){
while true
do
define_variable
judge_master
IO_SQL_delay
judge_error_code
sleep 180
done
}

main
时间: 2024-12-24 15:57:22

mysql主从同步监控脚本的相关文章

MySQL 主从延迟监控脚本(pt-heartbeat)

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

Mysql主从状态监控脚本

目标:对Mysql从库进行状态监控,如果从库复制异常就告警 思路: 1.首先查找Mysql从库的4个参数值(show slave status根据这个命令):分别是从库的IO线程.SQL线程.复制延迟时间(这个在以下脚本没用到,可以再写个脚本对其延迟进行告警).错误码 2.函数Mysql_status判断,对IO线程.SQL线程.错误码三者逻辑与判断 3.如果为假则执行函数Mysql_Errno 4.对于mysql错误码为1158 1159 1008 1007 1062 我们可以进行停止slav

mysql主从状态监控脚本报警脚本

#!/bin/bash MYSQLPORT=`netstat -antlp |grep "LISTEN" ` |grep "3306" |awk -F[:""]+  '{print $4}' MYSQLIP = `ifconfig eth0` |grep "inet addr" |awk -F[:""]+ '{print $4}' STATUS = $(/usr/local/mysql/bin/mysql

mysql 主从同步详细配置教程

8.10 Mysql 主从同步 8.10.1 主从原理mysql主从同步的原理:1.在master上开启bin-log日志,用于记录master上的更改删的一些记录.2.主从各开启io线程,从上开启io线程和sql线程.同时都配置好主从上的serveid唯一性3.主上配置好授权用户,从上设置change master授权连接的命令3. 从上io线程通过授权连接master,master通过io线程检查到slav的请求的日志.postsion点位置.4.master将这些相应的请求内容发送给sla

监控mysql主从同步状态是否异常,如果异常,则发生短信或邮寄给管理员

阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),请跳过错误 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) [[email protected] ~]# mysql -u root -proot -e "show slave status\G;" *************************** 1. row ***************************       

监控MySQL主从同步

脚本监控数据库主从同步 来源:http://oldboy.blog.51cto.com/2561410/1632876 来源: (生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟: 阶段1:开发一个守护进程脚本每30秒实现检测一次. 阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误. 阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分 [[em

监控MySQL主从同步是否异常并报警企业案例模拟

企业面试题1:(生产实战案例):监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员.提示:如果没主从同步环境,可以用下面文本放到文件里读取来模拟:阶段1:开发一个守护进程脚本每30秒实现检测一次.阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误.阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分) 此题来自:http://oldboy.blog.51cto.com/2561410/1632876 解答参考1: #!/bin

mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理

转自:http://www.cnblogs.com/kevingrace/p/6261091.html 在mysql工作中接触最多的就是mysql replication mysql在复制方面还是会有一些常规问题: 比如主库宕机或者从库宕机有可能会导致复制中断,通常需要进行人为修复, 或者很多时候需要把一个从库提升为主库,但对从库和主库的数据一致性不能保证一样. 这种情况下就需要使用percona-toolkit工具的pt-table-checksum组件来检查主从数据的一致性:如果发现不一致的

nagios 实现Mysql 主从同步状态的监控

一.系统环境 主机名 IP nagios 192.168.15.111 mysql_s 192.168.15.21 二.操作步骤 2.1 mysql_s端的配置 2.1.1 编写check_mysql_slave监控脚本 cd /usr/local/nagios/libexec   #切换到nagios 监控插件所在目录 vim check_mysql_slave       #开始编写mysql_slave监控脚本 注意:监控脚本中的mysql账户一定要新建一个,并设置有限的权限.   2.1