oracle 二进制日志格式,mysql 使用二进制日志文件恢复数据库

在心中一直有个东西梗着,那就是mysql利用二进制日志文件恢复数据库,今天下决心解决这个问题,在网上查了些资料,然后自己的物理机上测试总是失败,开始一直怀疑是网上说的不正确,最后想起来自己的数据库是从5.0.1升级到5.1.49的,也许是因为升级的原因导致日志文件无法恢复,出现下面的错误0bce3c2c8bfa76a13cc1c012cdacb3b7.png

最后没有办法,在虚拟机上面新装个mysql 5.1.49的数据库进行测试,先启用日志功能:log-bin=bin_log,然后配置假定添加删除相关数据,模拟测试环境(新建表,添加数据,删除数据,添加数据,删除表)

use test;

create table test(id int auto_increment not null primary key,val int,data varchar(20));

insert into test(val,data) values(10,'liang');

insert into test(val,data) values(20,'jia');

insert into test(val,data) values(30,'hui');

flush logs;

insert into test(val,data) values(40,'aaa');

insert into test(val,data) values(50,'bbb');

insert into test(val,data) values(60,'ccc');

delete from test where id between 4 and 5;

insert into test(val,data) values(70,'ddd');

flush logs;

insert into test(val,data) values(80,'dddd');

insert into test(val,data) values(90,'eeee');

drop table test;

得到日志文件如下:

c6e05b02dc5dcdd6fcc4ad54d3a9e04c.png

执行如下命令(dos要进入日志文件所在目录中)把二进制文件转化为记事本文件,方便查看:

mysqlbinlog bin_log.000001 >c:\1.txt

mysqlbinlog bin_log.000002 >c:\2.txt

mysqlbinlog bin_log.000003 >c:\3.txt

399d7d68fc3c2706af19220ad0b755c3.png

执行如下命令恢复数据库的删除数据和删除表操作

mysqlbinlog bin_log.000001 | mysql -uroot -p4020894

mysqlbinlog bin_log.000002 --stop-pos=861 | mysql -uroot -p4020894

mysqlbinlog bin_log.000002 --start-pos=965 | mysql -uroot -p4020894

mysqlbinlog bin_log.000003 --stop-pos=556 | mysql -uroot -p4020894

执行后的结果如:f54a84a06b2769dac29ee1fd673fb854.png

上面语句相关说明:

1)stop-pos=861表示执行到861行停止,具体阅读2.txt文件(这里体现了二进制文件转化为文本文件的价值)

2)start-pos=965表示执行从965行开始

其他操作

mysqlbinlog bin_log.000001--读取日志文件在dos上显示

mysqlbinlog bin_log.000002 --stop-datetime="2010-08-19 14:49:39" |mysql -uroot -p4020894--基于停止时间点的恢复

mysqlbinlog bin_log.000001 --start-datetime="2010-08-19 14:48:25" |mysql -uroot  -p4020894--基于开始时间点的恢复

mysqlbinlog bin_log.000001 --start-datetime="2010-08-19 14:47:28" --stop-datetime="2010-08-19 14:48:41"|mysql -uroot -p4020894--基于开始与停止时间点的恢复

mysqlbinlog bin_log.000001 bin_log.000002 --start-datetime="2010-08-19 14:47:28" --stop-datetime="2010-08-19 14:50:13" |mysql -uroot -p4020894--多个日志文件的恢复

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值