当前位置:首页-->综合-->显示文章内容
站 内 搜 索
请输入查询的字符串:
分类最新文章
新手入门:了解DNS服务基本原
个性化设计超级链接(转载)
利用VMware虚拟机硬盘安装Ro
如何在VPN中使用网络加密技术
IT与业务间的分歧日增:敏捷
写给计算机的大学生
IT 人员相信的十条潜规则
JAVA 对象简称收集
防火墙防止DDOS SYN Flood原
软件设计研究
分类热门文章
配置EJB3.0的开发环境
Unicode 的编码和实现
光盘制作防盗版技术研究
Linux下ADSL共享上网的解决办
DVD光盘的储存方式
博客中加背景音乐
光盘制作加密技术集锦
DVD光盘制作格式剖析
未来光盘制作加密技术使DVD肯
MySQL复制 自动监控脚本

MySQL复制 自动监控脚本


发布时间:2007-7-24 被阅览数: 次 作者:叶金荣

#!/bin/sh
#
# created by yejr, 2007/06/03
#
# 本脚本用于监控MySQL 复制是否运行,并且根据具体的错误代码自动判断是否忽略
#

now=`date +"%Y%m%d%H%M%S"`

StatFile="./slave_status.$now"

echo "show slave status\G" | mysql -uroot -pmypasswd > $StatFile

#取得 io_thread, sql_thread, last_errno 的状态
IoStat=`cat $StatFile | grep Slave_IO_Running | awk '{print $2}'`
SqlStat=`cat $StatFile | grep Slave_SQL_Running | awk '{ print $2}'`
Errno=`cat $StatFile | grep Last_Errno | awk '{print $2}'`

#IoStat=`cat $StatFile | head -n 12 | tail -n 1 | awk '{print $2}'`
#SqlStat=`cat $StatFile | head -n 13 | tail -n 1 | awk '{print $2}'`
#Errno=`cat $StatFile | head -n 20 | tail -n 1 | awk '{print $2}'`


if [ $IoStat = 'No' ] || [ $SqlStat = 'No' ] ; then

echo "[chkslave]"
date
#如果错误代码为 0,则可能是因为网络等原因导致复制中断,直接重新启动复制即可
if [ "$Errno" -eq 0 ] ; then
echo "start slave io_thread; start slave sql_thread;" | mysql --uroot -pmypasswd
echo "start slave io_thread; start slave sql_thread;"
#如果是一些不是很要紧的错误代码,也可以直接略过
elif [ "$Errno" -eq 1007 ] || [ "$Errno" -eq 1053 ] || [ "$Errno" -eq 1062 ] || [ "$Errno" -eq 1213 ] || [ "$Errno" -eq 1158 ] || [ "$Errno" -eq 1159 ] || [ "$Errno" -eq 1008 ] ; then
echo "stop slave; set global sql_slave_skip_counter=1; slave start;" | mysql --uroot -pmypasswd
echo "stop slave; set global sql_slave_skip_counter=1; slave start;"
else
echo `date` "slave is down!!!"
fi

#删除临时状态文件
rm -f $StatFile

echo "[/chkslave]"

fi
本脚本在 linux/freebsd 平台下均试验过

 原文地址 http://www.imysql.cn/node/311

 



设为首页 | 加入收藏 | 联系站长 | 广告联系 | 最新文章 | 文章分类 
Copyright @ 中国商务网络 版权所有
公司地址:青岛市仙居路66号14#303 电话:0532-86068282 邮编:266071
Email:office@0532163.com