程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 實戰:mysql檢查物理磁盤中的二進制日志文件是否有丟失

實戰:mysql檢查物理磁盤中的二進制日志文件是否有丟失

編輯:MySQL綜合教程

場景:有時候因為磁盤損壞或人為原因錯誤刪除了磁盤中的二進制文件,導致mysql中的show binary logs記錄和實際的物理磁盤中的二進制文件不匹配

#binlogdiff.sh
#!/bin/sh
#[email protected]
#作用:mysql中show binary logs記錄的二進制日志文件和實際的物理文件比較,檢查
#磁盤中對應的二進制日志文件是否有丟失

source /usr/local/mysql/scripts/mysql_env.ini
binlog_init=tmpinit.`date +%Y%m%d%H%M%S`.txt
binlog_midd=tmpmidd.`date +%Y%m%d%H%M%S`.txt #mysql中show binary logs記錄的日志文件
binlog_res=tmpres.`date +%Y%m%d%H%M%S`.txt #binlog物理磁盤路徑中的日志文件

my_cnf=/usr/local/mysql/my.cnf #mysql的配置文件
log_bin_path=`grep -i "^log-bin" $my_cnf |cut -d = -f 2`
log_bin=`dirname $log_bin_path`

#lookup binlog records in mysql
mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"show binary logs;" >${binlog_init}
cat ${binlog_init} | cut -f 1 |cut -d . -f 2 |grep -i '^[0-9]' |sort -n >${binlog_midd}

#lookup binlog records in disk
ls -t ${log_bin}| grep '^mysql-bin' |cut -d . -f 2 |grep -i '^[0-9]' |sort -n >${binlog_res}

diff -c ${binlog_midd} $binlog_res

#clean temp file
rm -rf ${binlog_init}
rm -rf ${binlog_midd}
rm -rf ${binlog_res}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved