MySQL主从同步状态监控脚本及邮件通知

网络版本

#!/bin/bash

mysql_cmd="mysql -u root -pxxxxxxxxx"

errorno=(1158 1159 1008 1007 1062)

while true

do

array=($($mysql_cmd -e "show slave status\G"|egrep ‘_Running|Behind_Master|Last_SQL_Errno‘|awk ‘{ print $NF }‘))

if [ "${array[0]}"=="Yes" -a "${array[1]}"=="Yes" -a "${array[2]}"=="0" ]

then

echo "MySQL is slave is ok"

else

for ((i=0;i<${#errorno[*]};i++))

do

if [ "${array[3]}"="${errorno[$i]}" ];then

$mysql_cmd -e "stop slave &&set global sql_slave_skip_counter=1;start slave;"

fi

done

char="MySQL slave is error"

echo "$char"

echo "$char"|mail -s "$char" [email protected]

break

fi

sleep 30

done

?

?

精简原因:

1、root账号权限太大,新建一个query账号,相关赋权:

GRANT REPLICATION CLIENT on *.* to ‘query‘@‘%‘ ;

FLUSH PRIVILEGES

2、因我的db启用了GTID,不适用于set global sql_slave_skip_counter=1命令,故取消该步骤

3、‘_Running’过滤时会剩下Slave_SQL_Running_State,不想要,改为‘_Running’

?

简化后脚本:

#!/bin/bash

mysql_cmd="mysql -uquery -pxxxxxxxxx"

while true

do

array=($($mysql_cmd -e "show slave status\G"|egrep ‘_Running:|Behind_Master|Last_SQL_Errno‘|awk ‘{ print $NF }‘))

if [ "${array[0]}"=="Yes" -a "${array[1]}"=="Yes" -a "${array[2]}"=="0" ]

then

echo "MySQL is slave is ok"

else

char="MySQL slave is error"

echo "$char"

echo "$char"|mail -s "$char" [email protected]

break

fi

sleep 30

done

?

原文地址:https://www.cnblogs.com/lonuve/p/11015861.html

时间: 2024-09-28 12:33:42

MySQL主从同步状态监控脚本及邮件通知的相关文章

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

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

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

MySQL主从同步状态

因为mysql的slave报错,导致slave落后master很远.找资料查看同步状态. 引用 mysql> show slave status\G *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 192.168.0.103 Master_User: root Master_Port: 3306

监控docker容器内mysql主从同步状态

Docker exec 命令docker exec :在运行的容器中执行命令语法docker exec [OPTIONS] CONTAINER COMMAND [ARG...]OPTIONS说明:-d :分离模式: 在后台运行-i :即使没有附加也保持STDIN 打开-t :分配一个伪终端 脚本cat /server/scripts/mysql.sh #!/bin/bashdocker exec -t docke_mysql mysql -uroot -p123456 -e "show slav

监控MySQL主从同步状态

1.       [[email protected] mysql]# cat check_slave_status.sh 2.       #!/bin/sh 3.       #-------------------------------------------- 4.       #Author: Created by randolph 2016-08-17. 5.       #Function: This scripts function is"Monitoring MySQL Ma

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

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

mysql主从同步监控脚本

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

检查mysql主从同步结构中的从数据库服务器的状态-脚本shell

检查mysql主从同步结构(一主一从)中的从数据库服务器的状态          (ip授权.从服务器和IO是否正常.从mysql进程是否正常) 主mysql: 192.168.1.10 从mysql: 192.168.1.20 [[email protected] ~]# vi check_slave.sh #!/bin/bash master=192.168.1.10 i=1 service mysqld status &>/dev/null while [ true ] do echo

监控MySQL主从同步

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