闪回删除就是闪回被 删除的表空间,表给删除后改变名称存在,从不可覆盖变为可覆盖(若表空间已满,新的数据会覆盖被删除的表),所以能否闪回多久前的表取决于表空间的大小 ,被删除的表逻辑上被放入recyclebin中,recyclebin是个近似于队列的结构(先进先出)。此外,不同用户有不同的recyclebin。
不能被闪回的表包括:
1 system表空间
2 virtual private database
3 表空间被数据字典管理
4 purged删除
5 基于空间压力被覆盖
6 表上存在策略
操作示例:
1 查看recyclebin是否可用
SQL> show parameter recyclebin
2 选定非sys表删除
SQL> conn scott/tiger
SQL> select table_name from user_tables;
SQL> drop table ttest;
3 查看recyclebin,看看删除掉的表还在不在
SQL> select OBJECT_NAME,ORIGINAL_NAME from recyclebin;
SQL> desc "BIN$91YI2kr1Seulw71cnmoxpg==$0";//注意“”
//可见在recyclebin中表还是存在的,不过是换了个名字而已,可以直接拷贝出来,我们用闪回还原一下
SQL> flashback table ttest to before drop;