說明:
作業系統:CentOS
目的:定時監控MySQL主從資料庫是否同步,如果不同步,記錄故障時間,並執行指令使主從恢復同步狀態
1、建立腳本檔案
vi / home/crontab/check_mysql_slave.sh #編輯,新增下方程式碼
#!/bin/sh
# check_mysql_slave status
# authorsql.osyunwei.com
local/mysql/bin/mysqlmysql_user=root #MySQL資料庫帳號mysql_pass=123456 #密碼mysql_sockfile=/tmp/mysql.sock f3%/date fcate fm. %H:%M:%S"` #取得目前時間mysql_slave_logfile=/home/logs/check_mysql_slave.log #日誌檔案路徑,必須事先建立好slave_ip=`ififconfig $ awk -F[:" "]+ '{print $4}'`status=$($mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "show slave statusG" | grep -i "running" )Slave_IO_Running=`echo $status | grep Slave_IO_Running | awk ' {print $2}'`Slave_SQL_Running=`echo $status | grepave_RLunning | "Yes" -a "$Slave_SQL_Running" = "Yes" ]then echo "Slave is Running!"elseecho " $datetime $slave_ip Slave is not echo " $datetime $slave_ip Slave is not running!"_myf5_osqls表_ f5_m not running! u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "SLAVE STOP;"$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "SET GLOBAL SQL_SLAVE_SKIP_COUNTER17; $mysql_user -p$mysql_pass -S $mysql_sockfile -e "SLAVE START;"$mysql_binfile -u$mysql_user -p$mysql_pass -S $mysql_sockfile -e "EXIT"fi
fi!
chmod +x /home/crontab/check_mysql_slave.sh #新增腳本執行權限2、新增任務計劃,修改/etc/crontabvi /etc/crontab 在最後一行加上# * * root /home/crontab/check_mysql_slave.sh #表示每10分鐘執行一次
:wq! #儲存退出
3、重新啟動crond使設定生效
/etc/rc.d/init.d/crond restart #yum install -y vixie-cron安裝計畫任務,某些系統上可能沒有預先安裝
chkconfig crond on #設定為開機啟動
可以根據日誌檔/eck/c/cave .log查看MySQL主從同步狀態
至此,Linux下MySQL主從同步監控shell腳本完成。