PRM-DUL Undelete恢复被Delete操作删除的Oracle记录/行 record/rows

对于没有有效物理或逻辑备份的场景,当Oracle中发生delete误操作时 一般会优先考虑使用flashback闪回或logminer日志挖掘等技术来恢复Oracle表中的数据行记录,但很多时候flashback或logminer都无法力挽狂澜。

 

对于delete操作而言,其对于oracle底层数据块block中的row piece记录一般仅仅是修改其row flag标记为已删除标记,容许后续INSERT的记录覆盖这些被标记为delete的数据,也容许破坏这些delete掉的数据的结构。 换句话说如果delete后没有对表做什么操作的话,直接读取block中的这些被标记为deleted的记录还是有可能读取到完整数据的。

总而言之,是否能恢复这部分delete掉的数据,完全取决于磁盘上oracle block中这部分删除的数据行是否有被最终清理掉。

在被清理掉之前ORACLE PRM-DUL工具都可以尝试把这部分数据恢复出来, 具体步骤与普通的数据字典模式差别很小。

启动PRM-DUL 点击恢复向导  字典模式

 

 

prm-undelete1

prm-undelete2

 

 

 

prm-undelete4

prm-undelete5

 

加入所有oracle数据文件,不需要加入临时文件TEMPFILE、UNDO数据文件、控制文件、日志文件

prm-undelete6

 

点击load 按钮,PRM会自动加载数据字典 即bootstrap动作

 

prm-undelete7

 

至此 PRM左侧将出现 树形的对象树,选择你需要恢复的用户下的对应数据表, 右击对象后选择 unload deleted data

 

prm-undelete8

 

prm-undelete9

 

PRM-DUL 完成对已删除数据的恢复操作后会将 数据写出到  上图中 File path的位置, 示例的数据恢复情况如下:

 

prm-undelete10

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *