博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 二进制日志恢复_使用mysql二进制日志恢复数据
阅读量:6692 次
发布时间:2019-06-25

本文共 1135 字,大约阅读时间需要 3 分钟。

――――――――――――――――――――――――――――――――――

OK,现在测试数据已经建好了,要求是什么呢?

就是将test表的数据全部恢复出来。

先用mysqlbinlog工具将日志文件生成txt文件出来分析。

F:\Program Files\MySQL_Data\data\log>

mysqlbinlog liangck.000001 > G:\001.txt

F:\Program Files\MySQL_Data\data\log>

mysqlbinlog liangck.000002 > G:\002.txt

F:\Program Files\MySQL_Data\data\log>

mysqlbinlog liangck.000003 > G:\003.txt

通过这三个命令,可以在G盘下生成3个文件,

里面分别记录了日志文件的内容,

也就是用户操作的步骤。

因为我们需要重做第一个日志文件的所有操作,

所以这里只需要将第一个日志文件全恢复就行了。

F:\Program Files\MySQL_Data\data\log>

mysqlbinlog liangck.000001 | mysql -uroot –p

Ok,接着,我们需要分析的是第二个日志文件。为什么要分析它呢,

因为它中途执行了一个操作是DELETE,因为我们要做的是恢复全部数据,

也就是我们不希望去重做这个语句。所以在这里我们要想办法去绕开它。

我们先打开002.txt文件来分析一下。

在这个文件中,我们可以看到DELETE的操作的起始位置是875,终止位置是1008.

那么我们只要重做第二个日志文件的开头到875的操作,然后再从1008到末尾的操作,

我们就可以把数据给恢复回来,而不会DELETE数据。所以执行两个命令:

F:\Program Files\MySQL_Data\data\log>

mysqlbinlog liangck.000002 --stop-pos=875 | mysql -uroot -p

F:\Program Files\MySQL_Data\data\log>

mysqlbinlog liangck.000002 --start-pos=1008 | mysql -uroot -p mytest

OK,现在第二个日志文件的数据了。

第三个日志文件也是同理,只要找到DROP TABLE的位置,就可以了。

F:\Program Files\MySQL_Data\data\log>

mysqlbinlog liangck.000003 --stop-pos=574 | mysql -uroot –p

现在我们再查一下数据看看:

转载地址:http://bvdoo.baihongyu.com/

你可能感兴趣的文章
[转载]android 显示多选列表对话框setMultiChoiceItems
查看>>
SVN Cleanup failed to process the following paths错误的解决
查看>>
使用button的:after伪类选择器内容的跳动
查看>>
Java从小白到入门,Day8,JAVAOO-多态
查看>>
CSS之各种居中
查看>>
poj 2594 Treasure Exploration
查看>>
bzoj千题计划297:bzoj3629: [JLOI2014]聪明的燕姿
查看>>
iOS简单实现毛玻璃效果
查看>>
maven学习(5)-Maven 聚合与继承特性
查看>>
可以设置命令执行的超时时间的脚本
查看>>
SQL server权限管理和备份实例
查看>>
sql server中的用户临时表和全局临时表的区别
查看>>
大整数算法[06] 绝对值加法
查看>>
2018-2019-1 20165325 《信息安全系统设计基础》第五周学习总结
查看>>
Python 列表(list)操作
查看>>
洛谷P1417 烹调方案
查看>>
Bzoj3652 大新闻
查看>>
GridView之数据邦定(HYPERLINK)小技巧与从数据库取汇总参数传值
查看>>
面试问题总结
查看>>
HTML特殊转义字符列表
查看>>