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

时间:2021-08-06 06:30:38

今天同事不小心把生产上的一张表直接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无法恢复索引