mysql删掉的表可以恢复吗

mysql删掉的表可以恢复吗,第1张

情况1、如果你有该库的整体备份或对这个表的单独备份,那么也许可以恢复。可以将最新的备份恢复到一个备用的服务器上,导出那表的内容,完成恢复

情况2、如果没有任何备份,那就基本没戏了。一般删除表的 *** 作是drop table,日志中不会记录删除具体行数的记录。表所对应目录下的文件已经被删除(innodb独立表空间,单表归为一文件)。同样的情况适用于myisam数据库引擎,对应的myd/myi/frm文件均被删除。这不像windows还有垃圾箱,是不可逆的 *** 作

此外,对数据库最危险的 *** 作就是对表进行删除行、删除表或删库的 *** 作了,所以任何对数据库有高危风险的 *** 作前最重要的就是备份!备份!再备份!

基于oracle数据文件和控制文件的恢复,只要数据文件还在 就可以利用PRM FOR Oracle工具从中抽取出有用数据。

PRM可以再无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter database open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性。

而且PRM无需学任何新命令。

对于误 *** 作DROP TABLE的数据恢复

D公司的应用开发人员在ASM存储环境下,在没有任何备份的情况下DROP了系统中一张核心应用表,此时第一时间采用PRM可以恢复该DROP掉数据表的绝大部分数据。10g以后提供了 recyclebin回收站特性,可以首先通过查询DBA_RECYCLEBINS视图来确定被DROP掉的表是否在回收站中,如果在则优先通过回收站flashback to before drop,如果回收站中也没有了,则第一时间使用PRM恢复。

恢复简要流程如下:

首先将被DROP掉的数据表所在的表空间OFFLINE

通过查询数据字典或者LOGMINER找到被DROP掉数据表的DATA_OBJECT_ID,如果此步骤中得不到这个DATA_OBJECT_ID,则需要在NON-DICT非字典模式下

启动PRM,进入NON-DICT非字典模式,并加入被DROP掉数据表所在的表空间的所有数据文件,之后SCAN DATABASE+SCAN TABLE from Extent MAP

通过DATA_OBJECT_ID定位到展开对象树形图中对应的数据表,采用DataBridge模式插回到源数据库中

对于这种情况 需要使用特殊恢复工具 PRM DUL FOR ORACLE,可以直接读取 dbf文件的内容然后导出数据。

Oracle DBA神器:PRM灾难恢复工具,Schema级别数据恢复。PRM For Oracle Database – schema级别oracle数据库数据恢复特性 ,PRM即ParnassusData Recovery Manager是企业级别Oracle数据库灾难恢复工具。PRM可以在无备份的情况下恢复被truncated掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6777503.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存