mysql主从同步如何实现分级定时检查自动修复断连,Shell脚本自动获取主数据库file文件以及position值自动修复。

一、什么是Shell脚本。

1. shell是外壳的意思,就是Liunx操作系统的外壳。通过shell命令来操作和控制Liunx操作系统,Shell脚本就像Window下的Bat脚本一样,计算机接受用户输入的shell命令来对Liunx操作系统进行控制。shell脚本是对多个shell命令进行封装文件,以点sh后缀文件来执行多个shell命令提高效率。

二、Shell脚本作用

​ Shell脚本帮助Liunx系统对重复、复杂的Shell命令进行的一种封装,提高Liunx系统Shell命令的执行效率,让复杂的命令经过封装能够轻松、简单的执行。

三、shell脚本应用场景

  • 重复性操作
  • 交互性任务
  • 批量事务处理
  • 服务运行状态监控
  • 定时任务执行

 了解上面就行了我们主要实现自动修复功能实用性高。

三、LInux服务器跟目录创建文件夹。

 

四、LInux服务器跟目录创建.sh后缀脚本文件。

   五、编辑sh脚本自动获取主服务器mysqlfile文件以及position值判断是否挂掉挂掉则重启。

    复制就能用修改配置信息

   执行命令     .  xxx.sh   执行sh脚本。

#!/bin/bash 
# 入口bash
source /etc/profile  #指定环境变量
cd /scripts/   #先cd到当前目录这样就能保证我们后续在当前目录
mysql -u root -proot <<EOF   #执行my命令检测是否成功
use testdatabase22;
select * from student;
EOF #结束mysql命令 
rm -rf /scripts/log.log #每次进来先删除在保存做到最新的数据我们的主服务器日志文件

#获取当前的连接状态 IO进程 Sql进程
mysql -u root -proot -e "show slave status \G" |grep Yes|awk '{print $2}' >> log.log #截取二进制日志
#获取主服务器的 file文件以及 postion
mysql  -h输入父Ip -u root -proot -e "show master status"|grep my|awk '{print $1}' >> lake.log #截取二进制日
mysql  -h输入父Ip -u root -proot -e "show master status"|grep my|awk '{print $2}' >> lake.log #截取二进制日志

#保存变量
yesone=`cat log.log |sed -n '1p'`
yestwo=`cat log.log |sed -n '2p'`
masterfile=`cat lake.log |sed -n '1p'`

masterfileposti=`cat lake.log |sed -n '2p'`

echo $masterfile

echo $masterfileposti
#echo "$yesone"xnb

#echo "$yestwo"xnbtiw

#判断
#if [ "$yesone"xnb != "Yesxnb" ]
#then 
  # echo "执行失败第一个yes错误"
#else 
 #  echo "成功执行!"
# fi


#查询文件如果第二yes没有则确实断开连接
if [ "$yestwo"xnbtiw != "Yes"xnbtiw ]
then
   echo "执行失败断开连接请检查!"
   echo "开始修复!第一步查询!"
   mysql -u root -proot <<EOF
   show variables like 'server_id';
   stop slave; 
   set global server_id = 4; 
   show variables like 'server_id';
change master to master_host='父IP',master_user='repluser',master_password='qazxsw@123',master_log_file='$masterfile',MASTER_LOG_POS=$masterfileposti; #注意是number
   start slave;
   SHOW SLAVE STATUS\G;
EOF
  echo "脚本修复成功!"
else
   echo "成功执行!"
fi

  

 六、宝塔配置脚本。

现在我们测试一下

 1.将从数据库执行mysql重启第一个no为断开连接

   

 2.查询宝塔脚本日志看看是否修复

 

 

总结:

 1.创建文件夹—>添加文件执行脚本测试看是否成功——>宝塔执行定时任务添加脚本监控——>

重启mysql——>检查是否修复 。

以上则是这个自动修复脚本教程谢谢!。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大福ya

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值