mysql 复制检测脚本

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

 

#!/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

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Linux中,MySQL巡检脚本是一种用于监视、诊断和优化MySQL服务器性能的工具。它可以帮助管理员定期检查和评估服务器的各个方面,确保其正常运行并提供最佳性能。 MySQL巡检脚本通常包括以下功能: 1. 监控MySQL服务器的状态脚本可以检查数据库服务器的运行状态,并显示关键性能指标,如连接数、查询执行次数、缓存使用情况等。通过持续监控这些指标,管理员可以了解服务器的负载情况,及时采取措施优化性能。 2. 检查MySQL的配置:脚本可以检查MySQL配置文件,确保其与服务器硬件和操作系统的要求相匹配。它可以检查缓冲区大小、线程池设置、连接数量等配置参数,强调潜在的问题并提供修复建议。 3. 识别慢查询:脚本可以分析数据库日志,识别慢查询和高消耗的查询语句。这对于定位性能问题和优化查询非常重要。通过检查慢查询,可以发现导致性能瓶颈的查询语句,并提供优化建议。 4. 检查数据库备份和恢复:脚本可以确认数据库备份是否按计划执行,并检查备份的完整性。此外,它还可以评估数据库的恢复性能,以确保在故障发生时可以及时恢复数据。 5. 检查数据库安全性:脚本可以检查数据库的安全设置,比如弱密码、未授权访问等。它可以提示管理员采取相应的措施,以确保数据库的安全防护。 综上所述,MySQL巡检脚本能够帮助管理员对MySQL服务器进行全面的性能检查和优化,确保服务器的稳定性和可靠性。这也是Linux系统中常用的一种管理工具。 ### 回答2: Linux中MySQL巡检脚本是一种用于检查和监视MySQL数据库服务器的工具。巡检脚本可以通过定期运行,以提供数据库性能方面的报告和警告。 MySQL巡检脚本可以检查以下方面: 1. 数据库连接:脚本可以检查数据库服务器的连接数以及是否有空闲连接。如果连接数超过限制或没有足够的空闲连接可用,脚本可以发送警报。 2. 数据库存储空间:脚本可以检查数据库中表的大小和数据库磁盘空间的使用情况。如果数据库存储空间接近或超过限制,脚本可以发送警报。 3. 查询性能:脚本可以检查查询语句的执行时间和慢查询日志。它可以识别哪些查询可能导致性能瓶颈,并提出优化建议。 4. 数据库备份:脚本可以检查数据库备份的状态和过期情况。它可以警告如果备份失败或过期的备份。 5. MySQL服务器状态脚本可以检查MySQL服务器的运行状态,例如是否有和CPU和内存使用情况,是否有重要进程运行,以及服务器日志的错误和警告。 通过定期运行巡检脚本,管理员可以及时了解数据库的运行状态和性能问题。这不仅可以帮助管理员更好地管理数据库,而且可以提前识别并解决潜在的故障和性能问题,从而确保数据库的稳定性和可靠性。 ### 回答3: Linux中MySQL巡检脚本是一种用于检测和监视MySQL数据库性能和健康状态脚本工具。它可以通过执行一系列的检查和监控任务来确保数据库运行正常,并提供及时的警报和通知,以便管理员可以采取适当的措施来解决问题。 MySQL巡检脚本通常包括以下方面的检查内容: 1. 数据库连接和登录验证:检查数据库的连接是否正常,并验证登录凭证是否正确。 2. 表空间和存储容量:检查数据库的表空间使用情况和存储容量是否足够,以避免空间不足导致数据库运行缓慢或崩溃。 3. 查询性能和慢查询分析:通过分析数据库的查询性能和慢查询日志,确定是否存在性能问题,并给出相应的优化建议。 4. 错误日志和警告信息:检查MySQL的错误日志和警告信息,及时发现并解决可能的问题。 5. MySQL进程和线程状态:检查数据库的进程和线程状态,包括运行中的进程、线程和锁定信息,以确保数据库的正常运行。 6. 主从复制状态:检查主从复制状态,确认主从服务器同步是否正常,并及时发现和修复复制延迟或断开的问题。 7. 数据库备份和恢复:检查数据库的备份和恢复情况,确保备份文件的完整性和可用性,以保证数据的安全性。 通过使用这些巡检脚本,管理员可以及时发现数据库的问题,提高数据库的稳定性和性能,确保数据的安全性和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值