版权声明:日常札记,乐于分享 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. Educational Codeforces Round 57题解

    A.Find Divisible 沙比题 显然l和2*l可以直接满足条件. 代码 #include<iostream> #include<cctype> #include< ...

  2. python-day34--并发编程之多线程

    理论部分 一.什么是线程: 1.线程:一条流水线的工作过程  2.一个进程里至少有一个线程,这个线程叫主线程 进程里真正干活的就是线程 3.进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资 ...

  3. 供应商API补充(详解EBS接口开发之供应商导入)(转)

    原文地址  供应商导入的API补充(详解EBS接口开发之供应商导入) --供应商 --创建 AP_VENDOR_PUB_PKG.Create_Vendor ( p_api_version IN NUM ...

  4. quartz---(1)

    Quartz Quartz是什么? 简单的一些例子 Quartz是什么 简单的认为Quartz是是一个定时器. 1.1. 下载 http://www.quartz-scheduler.org/down ...

  5. Oracle12c中性能优化&amp;功能增强新特性之全局索引DROP和TRUNCATE 分区的异步维护

    Oracle 12c中,通过延迟相关索引的维护可以优化某些DROP和TRUNCATE分区命令的性能,同时,保持全局索引为有效. 1.   设置 下面的例子演示带全局索引的表创建和加载数据的过程. -- ...

  6. 白化whitening

    原文地址:http://blog.csdn.net/hjimce/article/details/50864602 作者:hjimce 一.相关理论     白化这个词,可能在深度学习领域比较常遇到, ...

  7. java并发编程:线程安全管理类--原子操作类--AtomicStampedReference<V>

    1.类 AtomicStampedReference<V> AtomicStampedReference 维护带有整数“标志”的对象引用,可以用原子方式对其进行更新. 实现注意事项.通过创 ...

  8. Openwrt Udev Configure(3)

    1      Scope of Document This document describes how to write udev script, when enum usb device mayb ...

  9. git HEAD游离状态问题解决

    最近在迭代一个版本的时候,出现 HEAD detached at xxx 提示,应该是我切换分支的时候,哪里没弄对.   那么可以通过如下办法解决 git checkout 05 # 先checkou ...

  10. java代码获取客户端的真实ip

    java代码获取客户端的真实ip protected String getIpAddr(HttpServletRequest request) { String ip = request.getHea ...