博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
监控mysql主从同步状态是否异常
阅读量:5086 次
发布时间:2019-06-13

本文共 2491 字,大约阅读时间需要 8 分钟。

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

标签:

阶段1:开发一个守护进程脚本每30秒实现检测一次。

阶段2:如果同步出现如下错误号(1158,1159,1008,1007,1062),请跳过错误

阶段3:请使用数组技术实现上述脚本(获取主从判断及错误号部分)

[root@slave ~]# mysql -u root -proot -e "show slave status\G;"*************************** 1. row ***************************               Slave_IO_State: Waiting for master to send event                  Master_Host: 172.16.1.2      #当前的mysql master服务器主机                  Master_User: myslave                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File: master-bin.000003          Read_Master_Log_Pos: 471               Relay_Log_File: relay-log-bin.000002                Relay_Log_Pos: 252        Relay_Master_Log_File: master-bin.000003             Slave_IO_Running: Yes            Slave_SQL_Running: Yes                     Master_SSL_Key:                            Seconds_Behind_Master: 0    #和主库比同步延迟的秒数
准备:  egrep "_Running|Behind_Master" slave.log   #过滤             Slave_IO_Running: Yes            Slave_SQL_Running: Yes        Seconds_Behind_Master: 0         [root@slave ~]# egrep "_Running|Behind_Master" slave.log | awk ‘{print $NF}‘YesYes0

阶段一:开发一个守护进程脚本每30秒实现检测一次。

#!/bin/bashwhile truedo  array=($(egrep "_Running|Behind_Master" slave.log|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 not ok"      echo "$char"      echo "$char"|mail -s "$char" 995345781@qq.com      break  fi  sleep 30done执行结果:[root@slave ~]# sh test.sh  MySQL is slave is okMySQL is slave is ok

终极版:

#!/bin/bash#Date:2017-7-3#Author:xcn(baishuchao@yeah.net)#version 1.0mysql_cmd="mysql -u root -proot"errorno=(1158 1159 1008 1007 1062)while truedo  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 not ok"      echo "$char"      echo "$char"|mail -s "$char" 995345781@qq.com      break  fi  sleep 30done

提示:这个脚本可以用于生产环境中,监控mysql主从同步状态是否异常,根据

‘_Running|Behind_Master|Last_SQL_Errno‘

这个进行判断,如果不正常的话则会进一步判断状态码,然后进行输出,则会发邮件或短信给运维人员

转载于:https://www.cnblogs.com/liuyansheng/p/8056268.html

你可能感兴趣的文章
UVa540 Team Queue(队列queue)
查看>>
mysql数据增删改查
查看>>
akka之种子节点
查看>>
不知道做什么时
查看>>
matlab 给某一列乘上一个系数
查看>>
密码学笔记——培根密码
查看>>
Screening technology proved cost effective deal
查看>>
MAC 上升级python为最新版本
查看>>
创业老板不能犯的十种错误
查看>>
Animations介绍及实例
查看>>
判断请求是否为ajax请求
查看>>
【POJ2699】The Maximum Number of Strong Kings(网络流)
查看>>
spring boot配置跨域
查看>>
BZOJ 1996 合唱队(DP)
查看>>
进击吧!阶乘——大数乘法
查看>>
安卓学习资料推荐-25
查看>>
Mysql数据库备份和还原常用的命令
查看>>
关于退出当前页面在火狐的一些问题
查看>>
【项目实施】项目考核标准
查看>>
spring-aop AnnotationAwareAspectJAutoProxyCreator类
查看>>