Oracle中恢复drop掉的表中的数据

Posted wineman

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle中恢复drop掉的表中的数据相关的知识,希望对你有一定的参考价值。

今天同事不小心把生产上的一张表直接drop掉了,没有做备份,哥们慌的一匹,来找我这个小白来帮忙解决,于是心血来潮简单总结一下。
其实在oralce中,用drop删掉一张表,其实不会真正的删除,只是把表放到了回收站中,可以通过flashback命令来恢复drop掉的表。 
例如:
1.创建一张表,删除;再创建一张同名表,字段不同,再删除
在 select original_name,dropscn from recyclebin时候,两个表的dropscn是不同的,在利用闪回恢复时 flashback table test to before drop;只能恢复dropscn大的那张表。
2.drop时使用了purge选项,这时drop掉的表不会放入回收站,无法闪回数据
3.基于上面两种情况,会出现下面这种情况
  create table 先创建表,插入100数据;
  drop table purge 再drop掉表;
  create table 同名表;不插入数据
  drop table 再删除该表
  在这种情况下flashback闪回的表会是第二次建的表,即便第一个表的dropscn大,但是第一个表使用了purge选项,没有放入回收站
 
select original_name,dropscn from recyclebin;--查看哪些表被删除后放在回收站
flashback table test to before drop;--闪回恢复表和表内数据
注:flashback无法恢复索引

以上是关于Oracle中恢复drop掉的表中的数据的主要内容,如果未能解决你的问题,请参考以下文章

恢复oracle中用PLSQL误删除drop掉的表

oracle 如何恢复误删的表记录数据

mysql 中 drop的表 能恢复吗

急!!mysql4.1 误drop表,如何恢复

ORACLE日常-如何恢复oracle中误删除表(drop掉的)

Oracle恢复drop误删除的表