Oracle10g新特性——闪回表
2008-08-30 12:44:17 来源:WEB开发网SQL> show recyclebin
显示了被删除对象的原有名字,删除后的名字,对象类型以及删除时间。
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ---------------------------- ------------ ---------------
ABC BIN$XXUGsbYvSqa8Mrd6GstP+g==$0 TABLE 2005-08-29:18:03:10
通过使用flashback table语句就可以恢复表!
闪回完成。
SQL> select * from tab;
这样就轻松的将对象恢复了!
TNAME TABTYPE CLUSTERID
------------------ -------------- ----------
ABC TABLE
注意,对象被恢复后,它在recyclebin中占用的空间并不会被释放。必须使用PURGERECYCLEBIN来清空占用的空间。
SQL> PURGE RECYCLEBIN;
回收站已清空。
当然,如果想要彻底删除一个对象,让它不占用回收站的空间,可以用以下语句实现:
SQL> DROP TABLE ABC PURGE;
管理回收站
一旦哪些没有被真正删除的对象占满了表空间将会怎样呢?其实答案很简单:如果表空间被回收站中的数据占满了,并且数据文件也无法再扩展了(即产生了表空间压力)。那么回收站中的对象将会以“先入先出”(FIFO)的原则被自动清除掉。并且,依赖表的对象(如索引)将会比表对象先清除。
同样的,当存在用户配额时也会发生表空间压力的情况。当一个用户的配额空间被占满了,尽管此时表空间还可能有足够的空间,系统也会以FIFO的原子释放回收站中属于这个用户的对象。
另外,还有多种途径来手工控制回收站。比如可以用对象的原有名字从回收站中清除指定对象:
PURGE TABLE ABC
或者用对象被删除后系统自动重命名的名字来指定清除它:
- ››特性信息
赞助商链接