mysql binlo 抽取_mysqlbinlog 抽取(读取) 二进制日志

mysql 一般没人会开启全局日志,量太大了,还占用服务器资源。但是binlog 都是开启的(不会还有不开启binlog的兄弟吧)

有时会遇到  查询某段时间sql历史的 问题:

二进制日志没法直接看,mysql有自带的mysqlbinlog 命令/工具  可以解析二进制日志

最开始自己一般直接用   mysqlbinlog --database=db_name  mysql-bin.xxxx   >  db_name.sql   过滤到想要的库

grep -B3 -w tb_name db_name.sql > tb_name.sql   过滤到想要的表 ,这里grep -B  可以看自己情况设置几,不太明白的可以先了解下grep命令

再根据时间用sed截取 时间段的日志  cat tb_name.sql | sed -n '/开始时间/,/结束时间/p'     查看

这是我第一次查看方法,这个方法查看时间段有点傻。。。。。

后来经过同事提携,升级了。mysqlbinlog本来就可以定义开始时间和结束时间

mysqlbinlog --database=db_name   --start-datetime='2020-06-17 06:06:06'    --stop-datetime='2020-06-17 16:06:06'  mysql-bin.xxxx   >  db_name.sql

而且也可以利用pos点来精确位置 --start-opsiton  --stop-position

后来又遇到一次,mysqlbinlog解析不出来,解析出来的还是看不了。因为binlog的格式问题,这个就不详细说明了

加参数

mysqlbinlog --database=db_name  --base64-output=decode-rows -v  --start-datetime='2020-06-17 06:06:06'    --stop-datetime='2020-06-17 16:06:06'  mysql-bin.xxxx   >  db_name.sql

68f724bad5a33d9a9f6bd2ca7369ecb7.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值