商场网站 策划,中英文网站切换,松溪网站建设,安徽做网站电话mysql做了主从同步之后#xff0c;偶尔出现过几次主从同步报错或延迟#xff0c;由于没有任何监控和报警机制#xff0c;只有在应用程序报错的时候才能发现数据同步出问题了。所以写了个shell脚本用来检测mysql数据库的同步状态#!/bin/bash#monitor_mysql_slave statusUSERN…mysql做了主从同步之后偶尔出现过几次主从同步报错或延迟由于没有任何监控和报警机制只有在应用程序报错的时候才能发现数据同步出问题了。所以写了个shell脚本用来检测mysql数据库的同步状态#!/bin/bash#monitor_mysql_slave statusUSERNAMExx#如果密码中包含特殊字符可以加引号避免转义PASSWORDxxSLAVE_HOSTipSLAVE_PORTportMYSQLmysql -u$USERNAME -p$PASSWORDSLAVE$MYSQL -h $SLAVE_HOST -P $SLAVE_PORTEMAIL_ADDRzhangsanqq.comdatetimedate %Y-%m-%d %H:%M:%S#查看从服务器状态MySQL_Status$SLAVE -e SHOW SLAVE STATUS\G | grep -E Running|Seconds_Behind_Master|head -n3 #从服务器的二个进程信息Slave_IO_Runningecho $MySQL_Status | grep Slave_IO_Running |awk {print $2}Slave_SQL_Runningecho $MySQL_Status |grep Slave_SQL_Running |awk {print $4}Seconds_Behind_Masterecho $MySQL_Status |grep Seconds_Behind_Master |awk {print $6}if [ $Slave_IO_Running Yes -a $Slave_SQL_Running Yes -a $Seconds_Behind_Master -lt 10]thenecho Replication OKelseSUBJECTERRORS in replicationBODY$datetime $SLAVE_HOST MySQL slave replication errorecho $SUBJECTecho $BODY#发送报警邮件echo $BODY | mail -s $SUBJECT -t $EMAIL_ADDRfi编写好了之后保存。授予可执行权限 chmod x 文件名 然后执行即可。如果有错误可使用sh -x 文件名 进行调试。也可将该脚本加入到定时任务中定时执行使用crontab -e 命令将下方的命令加入到定时任务中定时任务每15分钟执行一次*/15 * * * * /usr/local/xx.sh重启crontab这是个简单的检测MySQL同步状态的脚本而且单纯的依靠 Slave_IO_Running和Slave_SQL_RunningSeconds_Behind_Master的值来判断主从同步是否延迟是不准确的。推荐使用专门的工具进行监控比如percona-toolkit 等