 |
|
 |
|
 |
| Oracle 10G 新特性——闪回表(2) |
来源: www.ixdba.net 
作者: IXDBA.NET官方
时间:2006-09-28 阅读:21
|
|
本文章共6403字,分5页,当前第2页,快速翻页:
|
依赖于原表的存储过程都失效了。而建在表上的索引和触发器也会被重新命名。
SQL> select index_name, index_type, table_name from ind;
INDEX_NAME INDEX_TYPE TABLE_NAME
------------------- ------------------- ----------------------
BIN$1++ilvsQQ7mfPh2pvont5A==$0 NORMAL BIN$XXUGsbYvSqa8Mrd6GstP+g==$0
被删除的表及其相关对象都会被放置在一个称为recyclebin的逻辑容器中:
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> flashback table abc to before drop;
闪回完成。
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------ -------------- ---------- IXDBA.NET社区论坛
ABC TABLE
这样就轻松的将对象恢复了!
注意,对象被恢复后,它在recyclebin中占用的空间并不会被释放。必须使用PURGERECYCLEBIN来清空占用的空间。
SQL> PURGE RECYCLEBIN;
回收站已清空。
当然,如果想要彻底删除一个对象,让它不占用回收站的空间,可以用以下语句实现:
SQL> DROP TABLE ABC PURGE;
管理回收站
一旦哪些没有被真正删除的对象占满了表空间将会怎样呢?其实答案很简单:如果表空间被回收站中的数据占满了,并且数据文件也无法再扩展了(即产生了表空间压力)。那么回收站中的对象将会以“先入先出”(FIFO)的原则被自动清除掉。并且,依赖表的对象(如索引)将会比表对象先清除。
同样的,当存在用户配额时也会发生表空间压力的情况。当一个用户的配额空间被占满了,尽管此时表空间还可能有足够的空间,系统也会以FIFO的原子释放回收站中属于这个用户的对象。
另外,还有多种途径来手工控制回收站。比如可以用对象的原有名字从回收站中清除指定对象:
PURGE TABLE ABC
或者用对象被删除后系统自动重命名的名字来指定清除它:
阅读更多内容:<<上一页 · 1 · 2 · 3 · 4 · 5 · 下一页>>
|
|
|
|
| |
|
|
|
| | |
|