love wife & love life —Roger 的Oracle技术博客

Phone:18180207355 提供专业Oracle数据恢复、性能优化、迁移升级、紧急救援等服务

How to auto Rollback DML Using binlog

本站文章除注明转载外,均为本站原创: 转载自love wife & love life —Roger 的Oracle技术博客

本文链接地址: How to auto Rollback DML Using binlog

新美大在binlog2sql的基础只是开源了一款新的小工具叫Myflash;用于解析binlog实现快速数据恢复,类似Oracle中的flashback功能,不过目前仅支持MySQL 5.6、5.7版本(MariaDB 10 已经引入了flashback功能).我这里进行了简单测试,以后恢复DML误操作就更简单一些了。

1)首先需要准备好myflash测试环境

大家可以去这里下载源程序:https://github.com/Meituan-Dianping/MyFlash

我这里的测试环境是Redhat Linux 6.5,直接解压myflash无法运行,发现glibc版本不匹配,需要2.14版本。因此首先我需要编译新版本的glibc。

–下载glibc 2.14

–编译

–拷贝libc.so.6到/lib64

–删除原来的libc

–make install

–确认是否ok

可以看到已经ok了,支持最新的GLIBC_2.14了。下面开始测试myflash.

2) 如下是针对myflash的简单测试过程

–创建测试表

–创建测试存储过程模拟10万条测试数据

–模拟删除5万条数据

–利用myflash解析binlog

这里简单的修改了一个小脚本,实现了半自动化(参考了群里一个网友的脚本).

–验证数据

可以看到数据很容易就恢复出来了,效率非常高。比binsql2sql要高很多。整个恢复过程大概1~2秒。不仅是delete,实际对于insert和update的DML操作,都是支持的。这里我不进一步展开了。

    分享到:
18180207355
加Q咨询