位置: 编程技术 - 正文
推荐整理分享mysql 找回误删表的数据方法(必看)(mysql删除的数据恢复),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql删除的数据恢复,mysql删除的数据恢复,mysql恢复删除的记录,mysql误删表数据恢复,mysql误删表恢复,mysql误删表数据恢复,mysql误删表数据恢复,mysql误删表恢复,内容如对您有帮助,希望把文章链接给更多的朋友!
有备份的话很简单,只需要生成一个最近备份的数据 然后用mysqlbinlog找回备份时间点之后的数据 再恢复到现网即可。
要是没有备份 可能就会比较麻烦,找回数据的成本也是非常之高的.
下面介绍下 mysqlbinlog找回备份时间点之后的数据的办法:
做个简单的实验,将mysql的表数据删除之后,然后用mysqlbinlog 找回刚才删除的表的数据。
app表的创建时间和数据的插入: -- ::
原理: mysqlbinlog
前提: mysql开启了bin log日志
测试删除之前:
开始删除数据:
开始找回数据:
1.找到bin log的位置:
可以看到 最近被修改的bin log 只有 master-bin.
(要是误删除跨越了好几个bin log 找回数据的时候就必须一个个的bin log日志去找回了)
将这一段时间所有执行的sql语句存入到 待恢复的 sql文件中。
mysqlbinlog --start-date='-- ::' --stop-date='-- ::' /app/mysql/log/master-bin. >/app/mysql/mysql_restore_.sql
当然在现网环境下 ,这个时间可能没那么的准确,并且还有其他事务sql语句的干扰。
创建临时数据库
create database for_bak;
导出当前数据库中被误删的表 app
mysqldump -uroot -ppwd my_db app > /app/mysql/app.sql
将现在的数据导入到临时表:
mysql -root -ppwd for_bak < /app/mysql/app.sql
我们再来看下 /app/mysql/mysql_restore_.sql的部分内容: (可以看到罪恶的delete 语句)
可以看到 数据是什么时间点删除的 。 具体的时间也可以用 select from_unixtime(); 来查询
令人欣慰的是 create table app 语句和 insert 的语句也在这个文件之中。 在手工去掉 delete 语句之后 在临时库里面进行 source mysqlbinlog找回来的sql文件
就将app恢复到被删除之前的状态了。 然后将临时库的数据导入到现网数据(这个不是这篇文章的重点了)。
要是没有备份,要找回所有app表相关的数据 那可能就非常的麻烦了 尤其是 binlog文件非常多 而且每个都比较的大。
那样的话也只有从app的建立到现在 用mysqlbinlog来逐个的找回与app表相关dml操作的sql记录,然后整合恢复数据。
我想这种情况一般比较的少。虽然麻烦,但是也不是不能恢复。
以上这篇mysql 找回误删表的数据方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。
mysql分区功能详解,以及实例分析 一,什么是数据库分区前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存
MAC下Mysql5.7.版本修改root密码的方法 首先跳过权限表模式启动MySQL:mysqld--skip-grant-tables&从现在开始,你将踏入第一个坑,如果你使用网上到处贴的错误修改方法:mysqlUPDATEmysql.userSETauthenticati
详解MySQL的limit用法和分页查询语句的性能分析 limit用法在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能。SELE
标签: mysql删除的数据恢复
本文链接地址:https://www.jiuchutong.com/biancheng/349906.html 转载请保留说明!友情链接: 武汉网站建设