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 "\033[31m`date +"%Y-%m-%d %T"` Restart begin! \033[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 "\033[31m`date +"%Y-%m-%d %T"` Restart end! \n \033[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 \033[32m$service --> $port \033[0m OK!"
  else
    echo -e "    replication \033[31m$service --> $port \033[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

mysql 单机多实例重启数据库服务的更多相关文章

  1. MySQL单机多实例安装并配置主从复制

    单机多实例据说可以最大程度提高硬件使用,谁知道呢,但是以前的公司喜欢这样搞,我最近也在学习复制什么的,电脑搞不起两台虚拟机,刚好单机多实例可以解救我.下面就说说步骤. 承上文http://www.cn ...

  2. mysql单机多实例

    在数据库服务器上,可以架构多个Mysql服务器,进行单机多实例的读写分离: 可以通过mysqld_multi来进行多实例的管理,mysqld_multi是用perl写的脚本,原理是通过mysql_ad ...

  3. mysqld_multi部署mysql单机多实例

    1.安装gcc-c++.ncurses依赖包 # yum install gcc-c++ ncurses-devel 2.安装cmake,用来编译mysql # tar -xvf cmake-3.2. ...

  4. 多配置文件部署mysql单机多实例

    1.安装gcc-c++.ncurses依赖包 # yum install gcc-c++ ncurses-devel 2.安装cmake,用来编译mysql # tar -xvf cmake-3.2. ...

  5. mysql单机多实例配置

    Windows上配置多个mysql实例,主要改下配置文件即可,mysql目录如下: my2中主要改两个配置内容 datadir = D:/Program Files/Mysql/mysql-5.7.2 ...

  6. MySQL单机单实例安装脚本(转载)

    说明:使用mysql generic tar.gz包快速安装mysql 三个文件installation_of_single_mysql.sh.template_install-my.cnf.mysq ...

  7. MySQL单机单实例安装脚本

    说明:使用mysql generic tar.gz包快速安装mysql 三个文件installation_of_single_mysql.sh.template_install-my.cnf.mysq ...

  8. mysql 单机多实例配置

    如果你想在一台机器上进行主从配置实验,本篇可以帮助你实现愿望 [client] #password = your_password port = 3306 socket = /tmp/mysql.so ...

  9. 使用mysqld_multi 实现Mysql 5.6.36 + 5.7.18 单机多实例多版本安装

    Mysql 5.6.36 + 5.7.18 单机多实例多版本安装 随着硬件层面的发展,各种高性能服务器如雨后春笋般出现,但高性能服务器不免造成浪费, MySQL单机多实例,是指在一台物理服务器上运行多 ...

随机推荐

  1. EDA : quartus2 17.1lite + modelsim +verilog 使用流程

    首先   然后填充好自己写的代码 之后save as 存到自己的文件夹 会自动弹出   配置     Assignments settings   之后第一次编译 成功后processing star ...

  2. Please commit your changes or stash them before you merge问题解决

    问题描述 error: Your local changes to the following files would be overwritten by merge: xxx/xxx/xxx.c P ...

  3. CodeForces 1047C Enlarge GCD(数论)题解

    题意:n个数的gcd是k,要你删掉最少的数使得删完后的数组的gcd > k 思路:先求出k,然后每个数除以k.然后找出出现次数最多的质因数即可. 代码: #include<cmath> ...

  4. C++中函数的形式参数引用

    形式参数的传递方式 值传递 值传递是将数值传递到程序中,这种方式传递是单向传递 但是如果想要双向传递,这种视频无法满足: 引用传递 引用传递可以实现双向的传递 为了对比处两个之间的差异,这里举出两个例 ...

  5. Doris开发手记1:解决蛋疼的MySQL 8.0连接问题

    笔者作为Apache Doris的开发者,平时感觉相关Doris的文章写的很少.主要是很多时候不知道应该去记录一些怎么样的问题,感觉写的不好就会很慌张.新的一年,希望记录自己在Doris开发过程之中所 ...

  6. LeetCode 算法题解 js 版 (001 Two Sum)

    LeetCode 算法题解 js 版 (001 Two Sum) 两数之和 https://leetcode.com/problems/two-sum/submissions/ https://lee ...

  7. node.js & create file

    node.js & create file node js create file if not exists https://nodejs.org/api/fs.html#fs_fs_ope ...

  8. NGK以强大的创新能力赋予NGK公链超级实用的特性

    公链从大趋势看是一个不断迭代的过程,不管是共识算法.网络架构.开发者协议都在一代一代不断完善跟创新. NGK公链作为公链赛道上的后起之秀,对于主流公链技术的局限性以及下一代公链技术的发展方向都有非常清 ...

  9. Markdown简单语法的使用

    Markdown简单语法的使用 目录 Markdown简单语法的使用 前言 标题的设置 字体的设置 1.字体加粗 2.斜体 3.字体加粗斜体 3.删除线 引用 列表的使用 插入图片 分割线 代码的书写 ...

  10. 链表、栈、队列、KMP相关知识点

    链表.栈与队列.kmp; 数组模拟单链表: 用的最多的是邻接表--就是多个单链表: 作用:存储树与图 需要明确相关定义: 为什么需要使用数组模拟链表 比使用结构体 或者类来说 速度更快 代码简洁 算法 ...