加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_宿迁站长网 (https://www.0527zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql如何检查物理磁盘中的二进制日志文件是否有丢失

发布时间:2016-09-26 09:40:33 所属栏目:MySql教程 来源:站长网
导读:问题场景:有时候因为磁盘损坏或人为原因错误删除了磁盘中的二进制文件,导致mysql中的show binary logs记录和实际的物理磁盘中的二进制文件不匹配 #binlogdiff.sh #!/bin/sh #ocpyang@126.com #作用:mysql中show binary logs记录的二进制日志文件和实际的

问题场景:有时候因为磁盘损坏或人为原因错误删除了磁盘中的二进制文件,导致mysql中的show binary logs记录和实际的物理磁盘中的二进制文件不匹配

#binlogdiff.sh  
#!/bin/sh  
#ocpyang@126.com  
#作用: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}

本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/

(编辑:云计算网_宿迁站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!