zoukankan      html  css  js  c++  java
  • 检查MySQL主从复制运行状态

    脚本思路:

    1、使用MySQL客户端命令"mysql"直接在命令行中运行MySQL指令"show slave statusG;"来查看MySQL主从复制状态信息。
    2、通过状态信息中的一些重要字段来判断当前主机的主从复制状态是否健康。
    3、若不健康则一般是由于Slave上SQL执行过程中出现异常,则将异常的SQL信息打印到屏幕上。

    脚本内容:

    #!/bin/bash
    # @author:rby
    # @title:检查MySQL主从健康情况
    
    #
    # 基本配置
    #
    MYSQL_USER="root"
    MYSQL_PASSWORD="xxx"
    MYSQL_HOST="localhost"
    MYSQL_PORT=3306
    
    # 
    # 检查MySQL主从健康情况
    #
    
    show_slave_status=`mysql -h"$MYSQL_HOST" -P"$MYSQL_PORT" -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" -A -e 'show slave statusG;' 2>/dev/null`
    slave_sql_running_state=`echo "$show_slave_status" |grep Slave_SQL_Running_State |awk -F ': ' '{print $2}'`  # Slave上SQL运行状态
    ms_status=`echo "$show_slave_status" |grep Running: |awk -F ': ' '{if($2=="Yes"){sum += 1}}; END{print sum}'`  # IO、SQL线程运行状态:2表示健康,!2表示不健康
    
    # 如果主从复制状态是不健康的则在屏幕上打印Slave主机SQL运行状态
    if [ $ms_status -eq 2 ];then
      echo "ms running status: 1"
    else
      echo "ms running status: 0"
      echo "error: $slave_sql_running_state"
    fi
    

    脚本解析:

    使用grep命令基于关键字过滤获取关键行
    使用awk命令进行判断和筛选字段
    使用Shell脚本中的if语句进行判断,并打印相关信息到屏幕上

    脚本好处:

    在本脚本中,使用变量"$show_slave_status"来存储"mysql -uxxx -pxxx -e'show slave statusG;'"命令执行的结果,以供后续的脚本指令语句对结果进行处理,其实际命令只运行了一次,就可以多处引用,同时也提高了脚本工作的效率。

    乐在分享!~~
  • 相关阅读:
    three.js
    three.js
    three.js
    反射API提供的常用类和函数
    PHP控制反转(IOC)和依赖注入(DI)
    优化思路以及优化过程
    nginx的缓存设置提高性能
    网页内容的压缩编码与传输速度优化
    nginx日志按日期自动切割脚本
    mysql数据备份
  • 原文地址:https://www.cnblogs.com/network-ren/p/15100129.html
Copyright © 2011-2022 走看看