Heim  >  Artikel  >  Datenbank  >  MySQL 复制检测脚本

MySQL 复制检测脚本

WBOY
WBOYOriginal
2016-06-07 16:59:531212Durchsuche

以下是根据网上的脚本整理,并结合实际进行改进。#!/bin/shusage=quot;$0 -hlocalhost -uroot -pxxxx -P3306quot;dbhost=quot

以下是根据网上的脚本整理,并结合实际进行改进。

#!/bin/sh

usage="$0 -hlocalhost -uroot -pxxxx -P3306"
dbhost="localhost"
dbuser=""
dbpass=""
dbport=3306

for 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
done

echo $dbhost
echo $dbuser
echo $dbpass
echo $dbport

now=`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 status\G" | /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 " > $checklogfile

if [ $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 $StatFile

linux

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Oracle dbms_job.submit用法Nächster Artikel:Oracle 添加主键和索引