• mysql 单机多实例重启数据库服务


    1、# cat db.txt
    backend 3310
    base 3320
    storage 3330
    payment 3340
    promotion 3350

    2、# cat restart_mysql_slave.sh
    #!/bin/sh
    export PATH=$PATH:/usr/local/mysql/bin

    echo -e "33[31m`date +"%Y-%m-%d %T"` Restart begin! 33[0m"

    #停止数据库
    /opt/ops-tool/stop_all.sh

    #启动数据库
    /opt/ops-tool/start_all.sh


    #启动从库
    /opt/ops-tool/start_slave.sh


    #检查主从状态
    /opt/ops-tool/mysql_replication_check.sh

    echo -e "33[31m`date +"%Y-%m-%d %T"` Restart end! 33[0m"

    3、# 

    cat stop_all.sh
    #!/bin/sh
    export PATH=$PATH:/usr/local/mysql/bin
     
    #停止数据库
    cat /opt/ops-tool/db.txt| while read line
    do
      pwd='xxx'
      port=$(echo $line |awk '{print $2}')
      /usr/local/mysql/bin/mysqladmin -h127.0.0.1 -P$port -umtdba_admin -p$pwd shutdown   &>/dev/null
      sleep 10
    done

    4、# cat start_all.sh
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/account_3550/conf/my.cnf &>/dev/null &
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/backend_3310/conf/my.cnf &>/dev/null &
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/base_3320/conf/my.cnf &>/dev/null &
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/bbtoms_3520/conf/my.cnf &>/dev/null &
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/bcoin_3610/conf/my.cnf &>/dev/null &

    sleep 20

    5、cat start_slave.sh
    #!/bin/sh
    export PATH=$PATH:/usr/local/mysql/bin
    cat /opt/ops-tool/db.txt| while read line
    do
      pwd='xxx'
      port=$(echo $line |awk '{print $2}')
      /usr/local/mysql/bin/mysql  -umtdba_admin -p$pwd -h127.0.0.1 -P$port -e"start slave ;"  &>/dev/null
      sleep 5
    done

    6、# 

    cat mysql_replication_check.sh
    #!/bin/sh
    export PATH=$PATH:/usr/local/mysql/bin
    cat /opt/ops-tool/db.txt| while read line
    do
      pwd='xxx'
      service=$(echo $line |awk '{print $1}')
      port=$(echo $line |awk '{print $2}')
      mysql="/usr/local/mysql/bin/mysql -h127.0.0.1 -P$port -umtdba_admin -p$pwd"
      $mysql -e "show slave status G;" 2>/dev/null > tmp.log
      IO_env=`cat tmp.log | grep -w Slave_IO_Running | awk '{print $2}'`
      SQL_env=`cat tmp.log | grep -w Slave_SQL_Running | awk '{print $2}'`
      #判断Slave_IO_Running Slave_SQL_Running状态
      if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]
      then
        echo -e "    replication 33[32m$service --> $port 33[0m OK!"
      else
        echo -e "    replication 33[31m$service --> $port 33[0m is abnormal!"
      fi
    done
     
     
    /bin/rm -rf tmp.log

    配置crontab任务计划

    # crontab -l
    0 17 * * * /bin/bash /opt/ops-tool/restart_mysql_slave.sh > /tmp/restart_mysql_$(date "+\%Y-\%m-\%d").log

  • 相关阅读:
    JS和Jquery获取this
    写SQL经验积累2
    转载学习
    java开发3个月总结
    学习规划
    Spring Boot详解
    webSocketDemo
    spring boot中 redis配置类(4.0)
    c语言操作字符串
    聊聊面试常问的HashMap中红黑树
  • 原文地址:https://www.cnblogs.com/manger/p/12574899.html
Copyright © 2020-2023  润新知