zoukankan      html  css  js  c++  java
  • 监控mysql主从同步状态脚本

                          监控mysql主从同步状态脚本                      

    示例一:
    cat check_mysql_health
    
    #!/bin/sh
    slave_is=($(mysql -S /tmp/mysql3307.sock -uroot -e "show slave statusG"|grep "Slave_.*_Running" |awk '{print $2}')) 
    if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]
         then
         echo "OK SDK-slave3307 connect master3306 is running"
         exit 0
    else
         echo "Critical SDK-slave3307 connect master3306 is not running"
         exit 2
    fi 
    示例二:
    [root@slavedb test]# cat Check_Mysql_Synchronization.sh 
    #!/bin/bash
    MYUSER=root
    MYSOCKET=/tmp/mysql3306.sock
    MYPASSWD=
    MYLOGIN="mysql -S $MYSOCKET -u$MYUSER "
    ERROR=(1158 1159 1008 1007 1062 1050)
    check_status(){
    STATUS=($($MYLOGIN -e "show slave statusG"|egrep "Slave_SQL_Running|Slave_IO_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!"
            CHECK_NUM=0
            return $CHECK_NUM
    else
            CHECK_NUM=1
            return $CHECK_NUM
    fi
    }
    
    check_error(){
            check_status
            if [ $? -eq 1 ];then
                    for ((i=0;i<${#ERROR[*]};i++));do
                            if [ "${ERROR[i]}" == "${STATUS[3]}" ];then
                                    $MYLOGIN -e "stop slave;"
                                    $MYLOGIN -e "set global sql_slave_skip_counter=1"
                                    $MYLOGIN -e "start slave;"
                            fi
                    done
            fi
    }
    
    check_again(){
            STATUS=($($MYLOGIN -e "show slave statusG"|egrep "Slave_SQL_Running|Slave_IO_Running|Seconds_Behind_Master|Last_SQL_Errno"|awk '{print $NF}'))
            check_status >/dev/null 2&>1
            if [ $? -eq 1 ];then
                    echo "Mysql slave is fail $(date +%F)"
            fi
    }
    main(){
            while true;do
                    check_error
                    check_again
                    sleep 10
            done
    }
    main

    作者:唐胜伟
    出处:http://www.cnblogs.com/tangshengwei/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。

  • 相关阅读:
    spring boot中 使用http请求
    spring boot 多层级mapper
    spring boot 使用拦截器,注解 实现 权限过滤
    spring boot 集成mybatis报错
    spring boot 使用拦截器 实现 用户登录拦截
    mac eclipse 删除不用的workspace
    maven+eclipse+mac+tomcat 多模块发布
    启动spring boot 异常
    安装 redis [standlone模式]
    quartz项目中的运用
  • 原文地址:https://www.cnblogs.com/tangshengwei/p/5502010.html
Copyright © 2011-2022 走看看