日期:2014-05-16  浏览次数:20378 次

oracle 10g中的闪回表特性

??? 最开始接触oracle10g时,有的时候对表进行删除之类的操作时发现数据库中有很多名称乱码的表BIN$*******=$0,以为是自己操作错误导致的,后来才知道这是被删表在回收站中的名称,使用purge recyclebin;清空回收站释放空间就可以解决。

oracle 10g中的闪回表特性:

(1)查看当前模式下的表:select * from tab;

(2)假设查询结构中有一个recycletest 表,现在将表recycletest表删除:drop table recycletest;

(3)再查询表状态select * from tab;
发现recycletest表已经没有了,但是多了一个BIN$Mx5X8tS2TwGHtkEMqbsSNg==$0的表,此表即为原表删除后
在回收站中的重命名表,并保持与被删表的完整对象结构。

(4)执行show recyclebin;来查看回收站中的详细信息,可以发现该表即为原表。
(5)执行flashback table recycletest to before drop;
(6)select * from tab发现被删表已恢复。
(7)表放在回收站里并不在原始表空间中释放空间,要释放空间彻底删除表,应执行purge recyclebin;
(8)如果希望完全删除表而不适用闪回特性适用下面语句永久删除表:drop table recycletest purge;
?? 此命令永久删除,就像10g之前的版本一样。
?? 也可适用正常方式删除后适用purge table recycletest;
?? 后者适用其在回收站中的名称purge table "BIN$*******==$0"