您的位置:首页 > 数据库 > SQL

mysql主从同步监控小脚本(加强版)

2011-11-15 09:31 761 查看
mysql主从同步监控小脚本(加强版):

新版本脚本增加了“当发现同步出现无法同步的时候”会自动提取主库的file号,以及pos,进行同步主库,脚本内容如下:
#!/bin/sh
#set -x
#file is slave_repl.sh
#Author by Kevin
#date is 2011-11-13
mstool="/usr/local/mysql-3307/bin/mysql -h 192.168.1.106 -uroot -pw!zl7POg27 -P 3307"
sltool="/usr/local/mysql-3307/bin/mysql -h 192.168.1.107 -uroot -pw!zl7POg27 -P 3307"
declare -a slave_stat
slave_stat=($($sltool -e "show slave status\G"|grep Running |awk '{print $2}'))
if [ "${slave_stat[0]}" = "Yes" -a "${slave_stat[1]}" = "Yes" ]
then
echo "OK slave is running"
exit 0
else
echo "Critical slave is error"
echo
echo "*********************************************************"
echo "Now Starting replication with Master Mysql!"
file=`$mstool -e "show master status\G"|grep "File"|awk '{print $2}'`
pos=`$mstool -e "show master status\G"|grep "Pos"|awk '{print $2}'`
$sltool -e "slave stop;change master to master_host='192.168.1.106',master_port=3307,master_user='repl',master_password='w!zl7POg27',master_log_file='$file',master_log_pos=$pos;slave start;"
sleep 3
$sltool -e "show slave status\G;"|grep Running
echo
echo "Now Replication is Finished!"
echo
echo "**********************************************************"
exit 2
fi

运行后效果,如下图:
# ./slave_stop3307.sh
*******************************
Now stop Slave Replication!
Slave_IO_Running: No
Slave_SQL_Running: No
*******************************
# ./slave_repl3307.sh
Critical slave is error
*********************************************************
Now Starting replication with Master Mysql!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Now Replication is Finished!
**********************************************************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 监控 file