Welcome 微信登录

首页 / 数据库 / MySQL / MySQL 复制检测脚本

以下是根据网上的脚本整理,并结合实际进行改进。#!/bin/shusage="$0 -hlocalhost -uroot -pxxxx -P3306"
dbhost="localhost"
dbuser=""
dbpass=""
dbport=3306for varin in $* ; do
 if [ ${varin:0:2} = "-h" ] ; then
     dbhost=${varin:2}
  fi
 if [ ${varin:0:2} = "-u" ] ; then
     dbuser=${varin:2}
  fi
 if [ ${varin:0:2} = "-p" ] ; then
     dbpass=${varin:2}
  fi if [ ${varin:0:2} = "-P" ] ; then
     dbport=${varin:2}
  fi
doneecho $dbhost
echo $dbuser
echo $dbpass
echo $dbportnow=`date +"%Y%m%d%H%M%S"`
datelog=`date +"%Y-%m-%d %H:%M:%S"`
StatFile="./slave_status.$now"
checklogfile="/var/log/mysql_slavecheck.log"
echo "show slave statusG" | /usr/local/mysql/bin/mysql -u$dbuser -p$dbpass -h$dbhost -P$dbport > $StatFile
#get io_thread,sql_thread,last_errno status
#*************************** 1. row ***************************
#             Slave_IO_State: Connecting to master
#                Master_Host: 192.168.213.5
#                Master_User: synuser
#                Master_Port: 3306
#              Connect_Retry: 60
#            Master_Log_File: mysql-bin.000019
#        Read_Master_Log_Pos: 366270403
#             Relay_Log_File: Test-Web1-relay-bin.003133
#              Relay_Log_Pos: 98
#      Relay_Master_Log_File: mysql-bin.000019
#           Slave_IO_Running: No
#          Slave_SQL_Running: Yes
#            Replicate_Do_DB:
#        Replicate_Ignore_DB:
#         Replicate_Do_Table:
#     Replicate_Ignore_Table:
#    Replicate_Wild_Do_Table:
#Replicate_Wild_Ignore_Table:
#                 Last_Errno: 0
#                 Last_Error:
#               Skip_Counter: 0
#        Exec_Master_Log_Pos: 98
#            Relay_Log_Space: 98
#            Until_Condition: None
#             Until_Log_File:
#              Until_Log_Pos: 0
#         Master_SSL_Allowed: No
#         Master_SSL_CA_File:
#         Master_SSL_CA_Path:
#            Master_SSL_Cert:
#          Master_SSL_Cipher:
#             Master_SSL_Key:
#      Seconds_Behind_Master: NULL
IOSTAT=`grep "Slave_IO_Running" $StatFile |awk "{print $2}"`
SQLSTAT=`grep "Slave_SQL_Running" $StatFile |awk "{print $2}"`
Last_Errno=`grep "Last_Errno" $StatFile |awk "{print $2}"`
Last_Error=`grep "Last_Error" $StatFile |awk "{print $2}"`
Behind_Master=`grep "Seconds_Behind_Master" $StatFile |awk "{print $2}"`
if [ $IOSTAT = "No" ] || [ $SQLSTAT = "No" ] ; then
   echo "Server $dbhost:$dbport Slave is down,Check Time is :$datelog " > $checklogfileif [ $Behind_Master = "NULL" ] ; then
   echo "Server $dbhost:$dbport Slave not support slave-master,Check Time is :$datelog " >> $checklogfile
else
   echo ">>Last_ErrNo:$Last_Errno" >>$checklogfile
   echo ">>Last_Error:$Last_Error" >>$checklogfile
   echo ">>slave is behind master $Behind seconds!" >>$checklogfile
fi
fi
/bin/rm -rf $StatFileLinux主机下解决MySQL的 Table is read only错误mysqlreport 工具的使用相关资讯      MySQL教程 
  • 30分钟带你快速入门MySQL教程  (02月03日)
  • MySQL教程:关于I/O内存方面的一些  (01月24日)
  • CentOS上开启MySQL远程访问权限  (01/29/2013 10:58:40)
  • MySQL教程:关于checkpoint机制  (01月24日)
  • MySQL::Sandbox  (04/14/2013 08:03:38)
  • 生产环境MySQL 5.5.x单机多实例配  (11/02/2012 21:02:36)
本文评论 查看全部评论 (0)
表情: 姓名: 字数