MySQL主从同步
脚本
[root@test scripts]# cat ss.sh
#!/bin/bash
. /etc/init.d/functions
MYUSER=root
MYPASS=c565f972
SOCKET="/data/3307/mysql.sock"
MYCMD="/application/mysql/bin/mysql -u$MYUSER -p$MYPASS -S $SOCKET"
STATUS=($($MYCMD -e "show slave status\G;"|egrep "Seconds_Behind|_Running|Last_SQL_Errno"|awk '{print $NF}'))
ERRNU=( )
###############Effect#####################
Wait(){
action "MySql Slave is fail !" /bin/false
echo -n "Trying to skip the error ,wait 3s"
for ((i=;i<;i++))
do
echo -n "."
sleep
done
echo
}
Print(){
action "Skip error is ok" /bin/true
action "MySql Slave is ok" /bin/true
read -p "Show slave status{IO|SQL|Seconds_Behind_Master|Last_SQL_Errno} ? please enter yes
/no. :" enter
case $enter in
yes)
echo "=================================================="
$MYCMD -e "show slave status\G;"|egrep "Seconds_Behind|_Running|Last_SQL_Errno"
echo "=================================================="
exit
;;
no)
exit
;;
esac
} ###############Check######################
Check_status(){
if [ "${STATUS[0]}" = "Yes" -a "${STATUS[1]}" = "Yes" -a "${STATUS[2]}" = "" ]
then
action "MySql Slave is ok !" /bin/true
exit
else
sta=
return $sta
fi
}
Check_err(){
Check_status
if [ $? -ne ]
then
Wait #调用前面的函数
for ((a=;a<${#ERRNU[*]};a++))
do
A=`echo ${ERRNU[a]}`
if [ $A -eq "${STATUS[3]}" ]
then
$MYCMD -e "stop slave;"
$MYCMD -e "set global sql_slave_skip_counter = 1;"
$MYCMD -e "start slave;"
fi
done
fi
}
Check_again(){
STATUS=($($MYCMD -e "show slave status\G;"|egrep "Seconds_Behind|_Running|Last_SQL_Errno"|
awk '{print $NF}'))
if [ "${STATUS[0]}" = "Yes" -a "${STATUS[1]}" = "Yes" -a "${STATUS[2]}" = "" ]
then
Print #调用前面的函数,输入yes/no确认有没有跳过错误,看看状态
else
action "MySql Slave is fail" /bin/false
echo "MySql Slave is fail `date +%F\ %T`" >>/tmp/mysql_slave.log
mail -s "MySql Slave is fail `date +%F\ %T`" topaz1618@.com </tmp/mysql_slave.log
fi
} ###############main######################
main(){
Check_err
Check_again
}
main
执行
没有问题的检查结果
[root@test scripts]# sh ss.sh
MySql Slave is ok ! [ OK ]
有问题的检查结果
[root@test scripts]# sh ss.sh
MySql Slave is fail ! [FAILED]
Trying to skip the error ,wait 3s.... #提示正在跳过错误
Skip error is ok [ OK ] #修复成功
MySql Slave is ok [ OK ] #MySQL主从服务好了
Show slave status{IO|SQL|Seconds_Behind_Master|Last_SQL_Errno} ? please enter yes/no.
#敲yes,看状态确认,no会直接退出
:yes
==================================================
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Seconds_Behind_Master:
Last_SQL_Errno:
==================================================
You have new mail in /var/spool/mail/root
MySQL主从同步的更多相关文章
- zabbix3.0.4监控mysql主从同步
zabbix3.0.4监控mysql主从同步 1.监控mysql主从同步原理: 执行一个命令 mysql -u zabbix -pzabbix -e 'show slave status\G' 我们在 ...
- MySQL主从同步几个文件
MySQL主从同步: M锁表 M导出S导入 M解锁 M建同步帐号 S获取点位:产生master.info S开启同步 3306: mysql-bin.0000x mysql-bin.index ...
- 监控mysql主从同步状态脚本
监控mysql主从同步状态脚本 示例一: cat check_mysql_health #!/bin/sh slave_is=($(mysql -S /tmp/mysql3307.sock -uroo ...
- Linux下MySQL主从同步配置
Centos6.5 MySQL主从同步 MySQL版本5.6.25 主服务器:centos6.5 IP:192.168.1.101 从服务器:centos6.5 IP:192.168.1.102 一. ...
- Mysql主从同步(复制)
目录: mysql主从同步定义 主从同步机制 配置主从同步 配置主服务器 配置从服务器 使用主从同步来备份 使用mysqldump来备份 备份原始文件 ...
- MySQL主从同步原理 部署【转】
一.主从的作用:1.可以当做一种备份方式2.用来实现读写分离,缓解一个数据库的压力二.MySQL主从备份原理master 上提供binlog ,slave 通过 I/O线程从 master拿取 bin ...
- shell脚本修复MySQL主从同步
发布:thebaby 来源:net [大 中 小] 分享一例shell脚本,用于修改mysql的主从同步问题,有需要的朋友参考下吧. 一个可以修改mysql主从同步的shell脚本. 例子 ...
- nagios 实现Mysql 主从同步状态的监控
一.系统环境 主机名 IP nagios 192.168.15.111 mysql_s 192.168.15.21 二.操作步骤 2.1 mysql_s端的配置 2.1.1 编写check_mysql ...
- mysql 主从同步出问题,重新修复从库 - web架构研究
mysql 主从同步出问题,重新修复从库 - web架构研究 mysql 主从同步出问题,重新修复从库 0 昨天由于操作失误,在从库上执行一堆sql之后,导致主从同步错误,并且已 ...
- mysql主从同步配置(windows环境)
mysql主从同步配置(mysql5.5,windows环境) A主机(作为主服务器)环境:windows8.mysql5.5 ip:192.168.1.100(自己填) B主机(作为从服务器,由 ...
随机推荐
- Euler-Maruyama discretization("欧拉-丸山"数值解法)
欧拉法的来源 在数学和计算机科学中,欧拉方法(Euler method)命名自它的发明者莱昂哈德·欧拉,是一种一阶数值方法,用以对给定初值的常微分方程(即初值问题)求解.它是一种解决常微分方程数值积分 ...
- Linq 单表城市级联
var list = (from province in db.Areas && province.IsDel == join city in db.Areas on province ...
- redis-内存异常 Redis is configured to save RDB snapshots解决
连接reids获取数据时提示 Redis is configured to save RDB snapshots, but is currently not able to persist on di ...
- java的字符串截取
import java.util.Date; import java.text.SimpleDateFormat; Date now = new Date(); def portcodes = new ...
- EF 二级缓存 EFSecondLevelCache
EFSecondLevelCache ======= Entity Framework .x Second Level Caching Library. 二级缓存是一个查询缓存.EF命令的结果将存储在 ...
- linux0.11改进之四 基于内核栈的进程切换
这是学习哈工大李治军在mooc课操作系统时做的实验记录.原实验报告在实验楼上.现转移到这里.备以后整理之用. 完整的实验代码见:实验楼代码 一.tss方式的进程切换 Linux0.11中默认使用的是硬 ...
- HTML学习笔记——标签
最近开始学习前端的一些知识,了解了一下Html和CSS. HTML:是网页内容的载体,它负责的是网页的内涵,也就是网页要呈现的内容,包括了图片,视频还有文字.是网页要加载的东西: CSS:是样式表现, ...
- fastclick 源码注解及一些基础知识点
在移动端,网页上的点击穿透问题导致了非常糟糕的用户体验.那么该如何解决这个问题呢? 问题产生的原因 移动端浏览器的点击事件存在300ms的延迟执行,这个延迟是由于移动端需要通过在这个时间段用户是否两次 ...
- Linux 下 ---ThinkPHP 图片上传提示:上传根目录不存在!请尝试手动创建
2016年11月15日11:15:47 Windows下如果碰到如此问题,要看文件保存根路径里的rootpath,比如ThinkPHP框架里config.php文件里的的参数配置: //文件上传相关配 ...
- mysql 查询制定日期数据
//获取昨天更新数据的条件date_sub(current_date(), interval 1 day) = from_unixtime(senddate, '%Y-%m-%d') 注释:date_ ...