再贡献一份监控MYSQL主从同步配置中监控从库运行状态的脚本。代码如下:
- #!/bin/bash
- #Check MySQL Slave"s Runnning Status
- #Crontab time 00:10
-
- MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ "{print $5}"`
- MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ "{print $4}"`
- STATUS=$(/usr/bin/mysql -uroot -p11111 -S /var/lib/mysql/mysql.sock -e "show slave statusG" | grep -i "running")
- IO_env=`echo $STATUS | grep IO | awk " {print $2}"`
- SQL_env=`echo $STATUS | grep SQL | awk "{print $2}"`
- DATA=`date +"%y-%m-%d %H:%M:%S"`
-
- function checkMysqlStatus(){
- if [ "$MYSQLPORT" == "3306" ]
- then
- /usr/bin/mysql -uroot -p11111 --connect_timeout=5 -e "show databases;" &>/dev/null 2>&1
- if [ $? -ne 0 ]
- then
- echo "Server: $MYSQLIP mysql is down, please try to restart mysql by manual!" > /var/log/mysqlerr
- mail -s "WARN! server: $MYSQLIP mysql is down." admin@yourdomain.com < /var/log/mysqlerr
- else
- echo "mysql is running..."
- fi
- else
- mail -s "WARN!Server: $MYSQLIP mysql is down." admin@yourdomain.com
- fi
- }
-
- checkMysqlStatus
-
- if [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]
- then
- echo "MySQL Slave is running!"
- else
- echo "####### $DATA #########">> /data/mysql/mysql_slave_status.log
- echo "MySQL Slave is not running!" >> /data/mysql/mysql_slave_status.log
- echo "MySQL Slave is not running!" | mail -s "WARN! $MYSQLIP MySQL Slave is not running." admin@yourdomain.com
- fi
建议每十分钟运行一次
*/10 * * * * root /bin/sh /root/mysql_slave_status.sh
原理:1)监控MYSQL的运行状态;
2)Slave机器的IO和SQL状态都必须为YES,缺一不可;
注意,请结合自身的实际环境使用。PHP实现CSV大文件数据导入到MySQL数据库监控MySQL进程的脚本,故障则重启,如无法启动则Email通知相关资讯 MySQL主从同步
- Ubuntu下MySQL主从同步配置 (今 14:59)
- MySQL主从同步校验与重新同步 (09月01日)
- 监控MySQL主从同步延时 (08月03日)
| - MySQL生产库主从重新同步操作注意 (09月01日)
- Linux下MySQL主从同步配置 (08月23日)
- Linux下MySQL数据库主从同步配置 (03月11日)
|
本文评论 查看全部评论 (0)