mysql 主从备份监控slave状态nagios脚本

#!/bin/bash
cmd=‘mysql -uslave -ppasswd -P3306 -h 192.168.0.72 -Be‘
status=`$cmd ‘show slave status\G‘`
Seconds_Behind_Master=`echo "$status"|awk ‘/Seconds_Behind_Master/{FS=":";print $2}‘`
Read_Master_Log_Pos=`echo "$status"|awk ‘/Read_Master_Log_Pos/{FS=":";print $2}‘`
Exec_Master_Log_Pos=`echo "$status"|awk ‘/Exec_Master_Log_Pos/{FS=":";print $2}‘`
Last_IO_Errno=`echo "$status"|awk ‘/Last_IO_Errno/{FS=":";print $2}‘`
Last_SQL_Errno=`echo "$status"|awk ‘/Last_SQL_Errno/{FS=":";print $2}‘`
Slave_IO_Running=`echo "$status"|awk ‘/Slave_IO_Running/{FS=":";print $2}‘`
Slave_SQL_Running=`echo "$status"|awk ‘/Slave_SQL_Running/{FS=":";print $2}‘`

#nagios status:
STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4

if [ "$Slave_IO_Running" != "Yes" -o "$Slave_SQL_Running" != "Yes" ];then
        echo "Slave_IO or Slave_SQL process exited! Last_IO_Errno:$Last_IO_Errno Last_SQL_Errno:$Last_SQL_Errno"
        exit $STATE_CRITICAL
fi

later=$[$Read_Master_Log_Pos - $Exec_Master_Log_Pos]

if [ $later -ge 100 ];then
        echo "Read_Master_Log_Pos:$Read_Master_Log_Pos Exec_Master_Log_Pos:$Exec_Master_Log_Pos"
        exit $STATE_WARNING
fi

if [ $Seconds_Behind_Master -ge 30 ];then
        echo "Warning: Seconds_Behind_Master:$Seconds_Behind_Master"
        exit $STATE_WARNING
fi
echo "Slave OK-Read_Master_Log_Pos:$Read_Master_Log_Pos Exec_Master_Log_Pos:$Exec_Master_Log_Pos Seconds_Behind_Master:$Seconds_Behind_Master"
exit $STATE_OK
时间: 2024-08-29 01:48:52

mysql 主从备份监控slave状态nagios脚本的相关文章

mysql主从同步监控脚本

mysql主从同步监控脚本,利用mysql从库中的IO和SQL进程以及延迟时间来监控主从同步是否正常,详细shell脚本如下: #!/bin/bash #author wangning #date 2017-7-17 #qq 1198143315 #Email [email protected] ################################## define variable############################# define_variable(){ ip

mysql主从备份及常见问题处理

1.mysql主从备份基本原理 mysql支持单向.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).因此,要进行复制,必须在主服务器上启用二进制日志.每个从服务器从主服务器接收主服务器已经记录到的二进制日志,获取日志信息更新.通过设置在Master上的binlog,使其处于打开状态:Slave通过一个I/O线程从Master上读取binlog,然后传输到Slave的中继日志中,然后使

django+centos+mariadb读写分离完美实现(上)-mysql主从备份实现

首先画图一张,用来展示今天要做的事情,读写分离,个人理解就是使用mysql主从备份的原理,让两个数据库同时为自己提供服务.其中主库负责数据保存,从库负责数据展示,可以一主一从,也可以一主多从.从而降低数据库同时处理读写的压力. 1.环境如下 master 10.10.101.83 slave 10.10.101.184 2.接着搭建数据库备份,使用的是centos7.4+mariadb 2-1-两台服务器安装Mariadb数据库 (ps:mariadb是免费版的mysql,操作很相似,注意,两台

linux下 mysql主从备份

在使用Ubuntu作为开发环境时经常需要在全局安装一些依赖框架等,这个时候就常常需要用到root权限,但是在Ubuntu下第一次使用su命令时会提示认证失败:查找资料后发现Ubuntu下root权限默认是锁定的,可能是处于安全考虑,但是作为开发人员肯定是需要root权限的. 在命令行中可以输入下面命令设置root密码,这样就能随时使用root权限了: [email protected]:~$ su 密码: su:认证失败 [email protected]:~$ sudo passwd [sud

window 平台下mysql主从的监控(window执行计划配合vb脚本)

(1)在window上安装ODBC(vb链接MySQL的驱动程序) 下载地址为:http://dev.mysql.com/downloads/connector/odbc/ 根据window系统选择相应版本即可. 我安装的是mysql-connector-odbc-5.3.4 如果在安装mysql-connector-odbc-5.3.4报错了, Error 1918.Error installing ODBC driver Mysql ODBC 5.3 ANSI Driver,ODBC err

MySQL主从备份(2)v0.9

基于lvm2的备份: 前提:数据目录位于逻辑卷,包含了数据文件和事务日志: (1) 请求锁定所有表: mysql> FLUSH TABLES WITH READ LOCK; (2) 记录二进制文件事件位置: mysql> FLUSH LOGS; mysql> SHOW MASTER STATUS; mysql  -e  'SHOW MASTER STATUS;' >> /PATH/TO/SOME_POS_FILE (3) 创建快照卷 lvcreate  -L # -s -p

mysql 主从备份实验

1.分别在master服务器和slave服务器上安装 mysql $yum install -y mysql mysql-dev mysql-master A.在master上操作: A.1.编辑mysql配置文件: $ vim /etc/my.cnf 在[mysqld]段内添加行: server-id=129           #根据喜好随便起,最好有一定规律. log-bin=mysql-bin       #开启二进制日志功能,必须 A.2. 重启mysqld服务,进入mysql $se

MySQL主从备份详细步骤

1.主从服务器分别作以下操作: 1.1.版本一致  1.2.初始化表,并在后台启动mysql  1.3.修改root的密码 2.修改主服务器master:   #vi /etc/my.cnf       [mysqld]       log-bin=mysql-bin   //[必须]启用二进制日志       server-id=222      //[必须]服务器唯一ID,默认是1,一般取IP最后一段 3.修改从服务器slave:   #vi /etc/my.cnf       [mysql

mysql 主从备份

准备 用两台服务器做测试: Master Server: 192.0.0.1/Linux/MYSQL 4.1.12 Slave Server: 192.0.0.2/Linux/MYSQL 4.1.18         做主从服务器的原则是,MYSQL版本要相同,如果不能满足,最起码从服务器的MYSQL的版本必须高于主服务器的MYSQL版本 二.配置master服务器 1. 登录Master服务器,编辑my.cnf #vim /etc/my.cnf 在[mysqld]段添加以下内容: [mysql