博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自动监控主从MySQL同步的SHELL脚本
阅读量:6454 次
发布时间:2019-06-23

本文共 1854 字,大约阅读时间需要 6 分钟。

代码如下:

#!/bin/bash#check MySQL_Slave Status#crontab time 00:10MYSQLPORT=`netstat -na|grep "LISTEN"|grep "3306"|awk -F[:" "]+ '{print $4}'`MYSQLIP=`ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}'`STATUS=$(/usr/local/webserver/mysql/bin/mysql -u yuhongchun -pyuhongchun101 -S /tmp/mysql.sock -e "show slave status\G" | 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"`if [ "$MYSQLPORT" == "3306" ]then  echo "mysql is running"else  mail -s "warn!server: $MYSQLIP mysql is down" yuhongchun027@163.com fiif [ "$IO_env" = "Yes" -a "$SQL_env" = "Yes" ]then  echo "Slave is running!"else  echo "####### $DATA #########">> /data/data/check_mysql_slave.log  echo "Slave is not running!" >>    /data/data/check_mysql_slave.log  echo "Slave is not running!" | mail -s "warn! $MYSQLIP MySQL Slave is not running" yuhongchun027@163.comfi

建议每十分钟运行一次

*/10 * * * * root /bin/sh /root/mysql_slave.sh

记得在每台MySQL从机上分配一个yuhongchun的用户,权限大些也没关系,只限定在本地运行,如下所示:

grant all privileges on *.* to "yuhongchun"@"127.0.0.1" identified by "yuhongchun101";grant all privileges on *.* to "yuhongchun"@"localhost" identified by "yuhongchun101";

脚本设计思路:

1、此脚本应该能适应各种各样不同的内外网环境,即IP不同的环境;

2、让脚本也顺便监控下MySQL是否正常运行;

3Slave机器的IOSQL状态都必须为YES,缺一不可,这里用到了多重条件判断-a

脚本产生的背景环境:

我有不少基于公网类型的网站(没有硬件防火墙,直接置于IDC机房)做的都是MySQL主从架构,从机主要起备份数据库和冷备份的作用,虽然从机宕机了问题不大,但也影响数据的备份工作;这样的网站有数十个,如果一个一个手动的检查,每天都要浪费不少时间,所以玩了下脚本控,设计了如上脚本。

脚本实践:

此脚本我已用于了生产环境,大家可以放在我们的从MySQL机器上,用来监控;另外建议有时也手动检查下,有次发现rsync --delete 自动删除了/data/data里面的数据,即从数据库的位置,脚本没有报警。

后期应用:

后期公司的MySQL数据库准备由一主一从架色升级成一主多从,读写分离的架构,LVS作从数据库的负载均衡器,此脚本自动监控从MySQLreplication状态,如果不能同步则自动关闭本机的MySQL服务,免得影响整个网站的正常业务访问。当然了,到时脚本的运行周期肯定也需要更改,10分钟变成秒级的,这个可以通过while循环来实现。

本文转自 抚琴煮酒 51CTO博客,原文链接:http://blog.51cto.com/yuhongchun/666019,如需转载请自行联系原作者
你可能感兴趣的文章
JVM类加载
查看>>
Oracle优化器的基础知识(二)
查看>>
ddl操作是否会产生undo?
查看>>
【NetApp】bye和envsave命令
查看>>
使用tcpcopy导入线上流量进行功能和压力测试
查看>>
显示return top的图标
查看>>
lucene3.5 全文检索案例————0.1秒检索60万数据
查看>>
PHP中soap的使用例子
查看>>
行业saas的未来假设与实践
查看>>
cn域名注册,没有备案,为什么不能访
查看>>
实时人脸检测
查看>>
【资料整理】ssh端口转发
查看>>
Linux权限管理
查看>>
QPS 与 TPS 简介
查看>>
介绍一个神奇的命令rwho
查看>>
Openstack Mitika组件介绍
查看>>
单位内用lk作负载均衡,大家看看
查看>>
Linux中的僵尸进程和孤儿进程
查看>>
12c archive_lag_targe强制日志切换
查看>>
div 加滚动条
查看>>