如何高效进行数据库恢复?
浏览量: 次 发布日期:2023-09-11 09:25:28
如何高效进行数据库恢复?
今天给大家介绍的是 ——————
mysqlbinlog flashback 5.6
一款非常高效快捷的数据库恢复软件。
DBA或者开发人员,有时会误删除或者误更新数据。传统的数据库恢复方法是利用之前的备份再加上误操作之前的binlog来恢复数据。该方法需要耗费较长时间来恢复备份,甚至需要停机维护,严重降低系统的可用性。
MySQL的flashback功能是在MySQL-5.5.18的基础上开发的。随着binlog格式的变动和类型的增加,基于5.5.18的版本,无法用于目前主流的5.6版本的。因此平民软件将该功能移植到5.6版本上,让相关人员对数据库有更强的掌控能力。
MySQL的binlog格式分为三类:
statement、mixed、row。
其中, statement格式,记录了所有客户端的执行语句。比如 update tb1 set name='aaa' where id=1;
row格式,记录了数据库的变更前和变更后数据。比如 update tb1 set name='aaa' ,id=1 where name='bbb' , id=1;
mixed格式,是二者的混合。在使用statement格式不会造成主从不一致时,使用statement格式,否则使用row模式。无锡数据恢复
因此想要把数据回退到上一个时间点,必须保证binlog_format=row
举例说明
在数据库中创建如下表
执行增、删、改动作
查看binlog文件
反转
insert:event中包含该行数据的每个字段值,删除即可
delete:event中包含了删除前,该行数据的所有字段值。将删除的数据,重新插入即可
update:只需将set和where部分调换,即可完成反转。
如果误操作的事务是由多个event组成的,那么必须将整个事务倒序恢复,即从最后一个event恢复到第一个event。
举例说明
注意:恢复之前先在不使用的从机上做测试,测试成功后,再在主库上做。
该软件利用binlog中记录了操作前的数据镜像和操作后的数据镜像。有如下限制
1) binlog_format=row
2) 只支持insert、update、delete
3) 不支持drop 、truncate、alter等ddl语句
flashback功能,可以在紧急情况下,避免用户漫长的数据库恢复过程。让高可用提升一个级别。
http://pan.baidu.com/s/1nvGOOIl
在指定--start-position时,需要注意包含table_map_event的位置,否则工具无法找到相关表的元数据信息。