biglog日志恢复

一、 找运维导出biglog

日志名称导出为:mysql-bin.000014

二、将biglog转换为sql

在mysql安装目录的/bin目录下执行以下命令:

mysqlbinlog --no-defaults --base64-output=decode-rows -v --database=db_test1 --start-datetime="2023-03-23 09:00:00" --stop-datetime="2023-03-23 10:00:00" D:\huangtc\数据恢复\mysql-bin.000014 > test1.sql

mysqlbinlog日志参数说明

  • --no-defaults  //mysql自带的 mysqlbinlog工具无法识别binlog中的配置中的default-character-set=utf8这个指令
  • --base64-output=decode-rows //数据转换正常的字符,如果不设置这个参数将显示base64的数据
  • --database=db_test1 //数据库名(一个mysql数据库比较多,指定方便恢复)
  • --start-datetime="2023-03-23 09:00:00" //恢复起始时间
  • --stop-datetime="2023-03-23 10:00:00" //恢复结束时间
  • D:\huangtc\数据恢复\mysql-bin.000014  //需要数据恢复的日志文件 
  • test1.sql //恢复以后生成的文件名

 三、打开test1.sql文件

发现其中有delete关键字,然后将其中的delete转为insert

在test1.sql文件所在目录,执行以下bash命令:(Windows下可以通过git bash界面执行)

cat test1.sql | sed -n '/###/p' | sed 's/### //g;s/\/\*.*/,/g;s/DELETE FROM/;INSERT INTO/g;s/WHERE/SELECT/g;' |sed -r 's/(@17.*),/\1;/g' | sed 's/@1=//g'| sed 's/@[1-9]=/,/g' | sed 's/@[1-9][0-9]=/,/g' > OK.sql 

打开生成的OK.sql

 找到自己需要insert的语句,插入数据库即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值