版权声明:日常札记,乐于分享 https://blog.csdn.net/yangzhawen/article/details/32103555

场景:有时候由于磁盘损坏或人为原因错误删除了磁盘中的二进制文件,导致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}

 

 

实战:mysql检查物理磁盘中的二进制日志文件是否有丢失的更多相关文章

  1. MySQL二进制日志文件Binlog的三种格式以及对应的主从复制中三种技术

    二进制日志文件Binlog的格式主要有三种: 1.Statement:基于SQL语句级别的Binlog,每条修改数据的SQL都会保存到Binlog里面. 2.ROW:基于行级别,每一行数据的变化都会记 ...

  2. 使用mysqlbinlog从二进制日志文件中查询mysql执行过的sql语句 (原)

    前提MySQL开启了binlog日志操作1. 查看MySQL是否开启binlog(进mysql操作) mysql> show variables like 'log_bin%';       2 ...

  3. mysql中如何开启binlog?开启二进制日志文件?binary log?

    需求描述: 开启mysql的binlog即binary log日志功能,在此记录下. 版本描述: mysql版本:5.7.21-log 操作过程: 1.修改my.cnf并且将以下参数加入其中,重启my ...

  4. mysql删除二进制日志文件

    一.RESET MASTER 这个语句可以验证首次配置主机备机是否成功.步骤如下: 1. 启动master和 slave,开启replication (即 复制) 注:replication (复制) ...

  5. MySQL完全备份脚本:数据+二进制日志+备份日志

    一. 脚本须知 1.mysql数据文件和二进制日志文件最好保存在不同的分区或存储设备上 2.备份完成后注意修改数据的权限以防止泄露重要信息,哪些主机哪些用户可以用来恢复 3. 查看导出的2进制日志文件 ...

  6. MySQL中的 redo 日志文件

    MySQL中的 redo 日志文件 MySQL中有三种日志文件,redo log.bin log.undo log.redo log 是 存储引擎层(innodb)生成的日志,主要为了保证数据的可靠性 ...

  7. mysql二进制日志文件出错导致mysql服务无法启动

    今天打开phpmyadmin发现连不上mysql数据库,重新启动mysql启动不起来,查看日志发现例如以下错误 <span style="font-family:SimSun;font ...

  8. MySQL复制(二)--基于二进制日志文件(binlog)配置复制

    基础环境:   主库 从库 服务器IP地址 192.168.10.11 192.168.10.12 版本 5.7.24 5.7.24 已存在的数据库 mysql> show databases; ...

  9. php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现

    php从数据库中取二进制流文件转换为图片,图片以二进制流存入数据库实现 function data_uri($contents, $mime) { $base64 = base64_encode($c ...

随机推荐

  1. synchronized同步代码块锁释放

    今天发现自己写的线上程序出现数据库不能同步的问题,查看日志已经停止记录,随后使用jstack查看线程的运行状况,发现有个同步线程锁住了. 以下是jstack -l 637  问题线程的内容. &quo ...

  2. 修改TOMCAT默认主页

    1.默认的项目都在目录:apache-tomcat-9.0.0.M22\webapps\ROOT下 2.该目录下有一个index.jsp是tomcat的默认主页,如下 3.现在需要修改这个默认主页,改 ...

  3. python-day39--数据库

    1.什么是数据:描述事物的特征,提取对自己有用的信息  称之为数据 2..什么是数据库: 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的 为什么要用数据库: ...

  4. memory prefix hypo,hecto,hyper out1

    1● hypo 次等   2● hecto 许多,百   3● hyper 超过,许多  

  5. Cattle学习笔记

    Cattle学习笔记  

  6. cas AssertionThreadLocalFilter

    AssertionThreadLocalFilter AssertionThreadLocalFilter作用很简单,就是将Assertion绑定到ThreadLocal. ThreadLocal 无 ...

  7. SQL Server 调优系列基础篇 - 联合运算符总

    前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧. 废话少说,直接进入本篇的主题. 技术准备 基于SQL Server200 ...

  8. sgu108. Self-numbers 2 滚动数组 打表 难度:1

    108. Self-numbers 2 time limit per test: 0.5 sec. memory limit per test: 4096 KB In 1949 the Indian ...

  9. mongodb添加延时节点

    1.      简介 延时节点是主节点过去某个时间点的“数据快照”,通常用来做数据备份,如果主节点有误操作而删除了数据,可以通过延时节点来恢复数据.例如,当前时间是10:00,并且延时节点设置1个小时 ...

  10. Code Sign error: Provisioning profile XXXX can't be found

    [iphone]Code Sign error: Provisioning profile XXXX can't be found 如果你更新了profile,再编译iphone项目,发现下面的错误, ...