记录一次mysql-drop表恢复

数据库
记录一次数据drop表恢复

昨日生产环境部署时,同事给的上线sql文件带有drop语句,没有检查直接执行了。
捣腾了一夜,在上班之前恢复了该表的数据。

该表从17年录入数据。
试用了:
1,基于binlog恢复工具mysqlbinlog_flashback
2,binlog2sql
3,MyFlash——美团点评的开源MySQL闪回工具
4,undrop-for-innodb
5,mysqlbinlog(mysql 自带)

前三款软件,根据mysql日志文件,能生成回滚语句,drop命令不好使,drop语句,不会生成一条条的delete语句,无法生成;
第四款:是针对drop表使用的,(但是我没有用成功)
最后是的思路是:
记录好你想要回滚的时间-drop之前;
mysqldump备份现在所有的表和数据
在mysql的日志文件中,找到数据库开始时间;
利用mysql 自带mysqlbinlog工具按时间导出sql, 目前导入到处的sql文件是从这个数据库建立开始到drop之前,然后导入数据库,导入成功后,最后查看该表数据恢复,导出该表,利用第一步导出的数据库文件恢复数据库,在恢复该表。成功解决,不然第二天用户使用就完犊子了。

你可能感兴趣的:(mysql)