### 描述 ### 

MySQL Binlog Digger是一个基于图形界面的binlog挖掘分析工具,可以为数据恢复提供undo sql回滚语句,它免安装,能对在线binlog与离线binlog进行分析,在选定在线binlog(甚至分析到最新日志)或离线binlog日志后,可对数据库、表、binlog开始时间、binlog结束时间、误操作的重做类型(redo sql、undo sql或所有)、redo sql关键字、显示类型(redo、undo或所有)进行精确过滤,得到我们所需的redo sql重做语句或undo sql回滚语句,另外,我们还可以把所得到的redo sql或undo sql复制出来或保存成sql文件,通过undo sql信息,我们在发生误操作时,就能快速把业务系统数据恢复至正常状态。

### 版本更新说明 ### 

1.挖掘分析时过滤了一些不必要的数据

2.数据库名、表名、字段名使用反引号(`)引住,避免生成的语句在执行时异常

3.增加对INSERT INTO、DELETE FROM、UPDATE、WHERE、AND、SET、VALUES之类mysql关键字处理

4.取消undo sql手工排序,改用默认的降序排序

5.把原来的insert into tab select col1, col2...改为标准SQL:insert into tab(col1,col2...) values(val1, val2...)

6.修复NULL值异常

 

### 使用说明 ### 

一.目的:

   对mysql binlog进行日志挖掘分析,通过对生成重做语句(redo sql)与回滚语句(undo sql)进行精确回滚,寻回误删、误增、误改的数据。

 

二.注意事项:

   在误操作发生后,如果表结构发生改变(例如:字段排列顺序、字段重命名),挖掘分析出来的重做语句(redo sql)与回滚语句(undo sql)准确度将会大大降低。

 

三.主要功能分两大类:

   在线挖掘分析与离线挖掘分析,在线挖掘分析binlog过程需要一定的数据库管理账号。

 

四.在线挖掘分析使用步骤

1.分别输入主机名或IP地址、端口、账号与密码,然后进行数据库连接测试。

2.进行数据库连接测试后,可以对数据库、表、开始binlog、结束binlog、最新binlog、开始时间、结束时间、关键字(sql)、sql操作类型(insert|delete|update|all)与显示类型(redo|undo|all)进行过滤。

3.设置好过滤条件后,把是否在线分析设置为'Yes', 便可以进行挖掘分析。

4.其中挖掘分析回来的redo sql默认为按时间升序排序,且不可进行手工排序,而挖掘分析回来的undo sql默认是降序排序,其序号与redo sql的序号一一对应,也是不可以进行手工排序。

5.对挖掘回来的redo sql与undo sql可以进行选择复制或复制所有,此外也可以进行选择保存或保存所有成sql文本文件。

 

五.离线挖掘分析使用步骤

1.不需要进行数据库在线连接测试。

2.把是否在线分析设置为'No'。

3.但可以对数据库、表、开始binlog、结束binlog、最新binlog、开始时间、结束时间、关键字(sql)、sql操作类型(insert|delete|update|all)与显示类型(redo|undo|all)进行过滤。

4.设置好过滤条件后,便可以进行挖掘分析。

5.其中挖掘分析回来的redo sql默认为按时间升序排序,且不可进行手工排序,而挖掘分析回来的undo sql默认是降序排序,其序号与redo sql的序号一一对应,也是不可以进行手工排序。

6.对挖掘回来的redo sql与undo sql可以进行选择复制或复制所有,此外也可以进行选择保存或保存所有成sql文本文件。