WEB开发网
开发学院数据库Oracle Oracle10g新特性——闪回表 阅读

Oracle10g新特性——闪回表

 2008-08-30 12:44:17 来源:WEB开发网   
核心提示: SQL> show recyclebinORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME ---ABC BIN$XXUGsbYvSqa8Mrd6GstP+g==$0 TABLE 2005-08-29:18:03:10显示了被删

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

或者用对象被删除后系统自动重命名的名字来指定清除它:

Tags:Oracleg 特性

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接