mysql主从监控

	要求:检测myslq从库状态,跳过固定的错误号,每隔30秒检测一次,如果符合条件自动跳过或者是重启从库
	1)取出mysql从库的关键字
	[[email protected] scripts]# mysql -u root -p123qq.com3307 -S /data/3307/mysql.sock -e "show slave status\G"|grep -E "Running|Seconds_Behind_Master|Last_SQL_Errno"|awk ‘{print $NF}‘
	Yes
	Yes
	0
	0
	2)把错误号定义在数组里面
	3)while ture
	根据思路调试出如下脚本。。。。。
	[[email protected] scripts]# cat check_mysql_slave.sh 
	#/bin/bash
	#Date:     2015-12-14 22:37
	#Author:   create by  李兴利
	#Mail:     [email protected]
	#Function: This scripts  function is check mysql slave is ok
	#Version:  1.1
	qq="[email protected]"
	cmd="mysql -u root -p123qq.com3307 -S /data/3307/mysql.sock -e"
	ip=`ifconfig eth2|sed -n ‘s#^.*ddr:\(.*\) Bc.*$#\1#gp‘`
	skip=`$cmd "stop slave;set global sql_slave_skip_counter=1;start slave;"`
	error_numb=(1158 1159 1008 1007 1062)
	while true
	do
	status=(`$cmd "show slave status\G"|grep -E "Running|Seconds_Behind_Master|Last_SQL_Errno"|awk ‘{print $NF}‘`)

	   if [ "${status[0]}"  == "Yes" -a "${status[1]}" == "Yes" -a "${status[2]}" == "0" ]
	       then
	           echo  "mysql slave is ok"
	       else
	           for ((n=0;n<${#error_numb[*]};n++))
	           do
	              if [ "${status[3]}" == "${error_numb[n]}" ];then
	              ${skip}
	              else
	               $cmd "stop slave;start slave;"
	              fi
	           done
	           echo  "mysql salve is not ok"
	           echo "${ip} mysql is not ok"|mail -s "mysql slave error at `date +%F%T`" $qq
	   fi
	sleep 3
	done
	[[email protected] scripts]# 
	测试结果如下
	[[email protected] scripts]# sh check_mysql_slave.sh 
	mysql salve is not ok
	mysql slave is ok
	mysql slave is ok
	mysql slave is ok
	mysql slave is ok
	mysql slave is ok
	mysql slave is ok
	mysql slave is ok
	mysql slave is ok
	mysql slave is ok
	mysql slave is ok

更多内容请访问 李兴利博客
时间: 2024-09-30 00:02:42

mysql主从监控的相关文章

mysql主从监控脚本:

在大型网站中对数据库往往都是做主从设计的,要是根据设计模式读写都只是进行再主库上面,那么从服务器往往是智能起了备份的作用,有时候备份端口了适当时候手工添加就好,但是要是网站做了读写分离,不及时发现那就是灾难性的了:(一般出现从库跟不上可以暂时先把读也切换到主上去.等从恢复好了再切回来):下面根据这个给出一条主从监控脚本: #!/bin/bash#check MySQL_Slave Status #crontab time 00:10 MYSQLPORT=`netstat -na|grep "LI

Shell开发MySQL主从监控脚本

监控MySQL主从同步是否异常,如果异常,则发送短信或者邮件给管理员. 1)开发一个守护进程脚本每30秒实现检测一次. 2)如果同步出现如下错误号(1158,1159,1008,1007,1062),则跳过错误. 阶段3:3)如果IO和SQL线程出现异常,则通知邮件给管理员 使用数组技术实现上述脚本(获取主从判断及错误号部分) 主从监控脚本如下: #!/bin/bash CODE=( 1158 1159 1008 1007 1062 2003 ) fun_Base(){ #1.定义变量 #1.1

利用Zabbix监控mysql主从

mysql主从监控 #脚本如下,截取主从关键字 cat check_mysql_slave.sh  #!/bin/bash # declare -a 定义数组,slave_is 会被视为数组 declare -a slave_is slave_is=($(/data/mysql/bin/mysql -e "show slave status\G"|grep -E "Slave_IO_Running|Slave_SQL_Running:"|awk '{print $2

监控mysql主从脚本

一.下载并解压sendEmail cd /usr/local/src wget tar -zxvf sendEmail-v1.56.tar.gz cp sendEmail-v1.56/sendEmail /usr/local/bin/     拷贝之后就能用了 发邮件命令: sendEmail [email protected] -t [email protected] -s smtp.163.com -u "test"-xu zhang_peicheng -xp xxxxxxxxxx

zabbix实现对mysql数据库主从监控

1.主从关系建立 配置mysql-master端: 1)修改mysql-master的配置文件 [[email protected] ~]# vim /etc/my.cnf [mysqld] server_id=1 innodb_file_per_table datadir=/data/mysql socket=/var/lib/mysql/mysql.sock log-bin=/data/log-bin/bin binlog_format=row -- 2)启动mysql服务,并授权从服务用户

MySQL主从同步延迟717秒?!!

原标题:MySQL主从同步延迟717秒?!! 最近业务MySQL主从监控刚加好,随后总收到延迟几百秒的告警,但实际排查下来却没有大碍,告警信息如下: 网上找下来也有人遇到同样的问题,(但这个问题属于MySQL的BUG还是zabbix的BUG呢?..) 分析的很有深度,原理透彻,这里分享给大家 MySQL 本身通过 show slave status 提供了 Seconds_Behind_Master ,用于衡量主备之间的复制延迟,但是 今天碰到了一个场景,发现 Seconds_Behind_Ma

监控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主从同步监控脚本

mysql主从同步监控脚本,利用mysql从库中的IO和SQL进程以及延迟时间来监控主从同步是否正常,详细shell脚本如下: #!/bin/bash #author wangning #date 2017-7-17 #qq 1198143315 #Email [email protected] ################################## define variable############################# define_variable(){ ip