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!
- **********************************************************
阅读(10941) | 评论(2) | 转发(3) |