Mysql操作失误一些回滚方法来恢复数据

原创 小新  2020-12-10 10:59:06  阅读 456 次 评论 0 条

在MYSQL维护或者开发上,多多少少都会因为一些问题造成一些失误的操作而导致数据出错,如果没有备份,快照的话,那问题是很大的,特别是在生产环境中。所以说数据就是金钱,有备份风险就少一些。

下面的方法,是没有备份,快照的情况下进行数据恢复的,前提下Mysql要开启Binlog的设置,要不然只能找专业的数据恢复公司来操作了。


下面的方法是恢复就需要用到Mysql binlog这些文件。文件中记录着数据库的所有操作,是将数据库之前所执行的语句重新执行一次,以达到恢复效果


方法一:使用到sqlbinlog工具

具体步骤:

1、先找到binlog文件,一般都是在mysql的data文件夹中,结尾以.00000X等形式结束。

2、寻找需要还原的时间点  使用语句 #mysqlbinlog  [文件名]
例(MySQLbinlog xxbin.000001)来查看内容,然后找到对应的具体时间

3、导出sql语句,使用语句 #mysqlbinlog [文件名] > sql文件路径
例(mysqlbinlog xxxbin,00001 > a.sql  | mysql -u root -p )  

如果需要指定时间导出--start--date -stop=' '  --date=' ' 来导出指定时间执行的语句
例:sqlbinlog --start-stop='2015-11-22 10:00:00'   xxbin.000001>a.sql  | mysql -u root -p 

这句意思是导出在2015-11-22 10点之前的语句,反之start是导出时间之后的。  start和stop可以同时使用。

如果存在多个bin文件,则按照需要导出。

4、使用mysql将导出的语句执行一次。

参考:https://www.cnblogs.com/zhoujinyi/archive/2012/12/26/2834897.html


方法二:使用开源工具binlog2sql快速回滚

安装

pip install -r requirements.txt


详情的操作方法可以参考:

https://www.jb51.net/article/99553.htm
https://www.cnblogs.com/paul8339/p/8505964.html

https://www.jianshu.com/p/6432188bc3d9


方法三:使用美团开源工具MySQL闪回工具--MyFlash

美团开源的这个工具,是能对得到它的闪回的,操作方法和bing2sql差不多。不过只支持5.6与5.7

详情操作方式可参考:

https://www.cnblogs.com/lijiaman/p/12770415.html

https://blog.csdn.net/weixin_41407372/article/details/78813389

本文地址:https://mxlog.com/fenxiang/1546.html
版权声明:本文为原创文章,版权归 小新 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?