Oracle中清除BIN$开头的垃圾表的解决办法

最近我在学oracle数据库时遇到一种情况就是在删除表的时候,表是可以删除,但是再用select * from tab;语句查询时,会出现好多以BIN开头的文件,而且删除一个表就会出现一个以BIN开头的文件,看着就烦,刚搜了一些关于这种情况的解决办法,与各位分享一下,与我有相同烦恼的同学下面是您最满意的解决办法,具体如下:

       首先解释一下以BIN开头表是什么东东?在10g中bin开头表示已经删除的放在回收站的表,oracle在删除表时并没有彻底的删除,而是把表放入回收站!purge recyclebin清空回收站即可。

以下是具体解决办法:

10g的新特性flashback闪回区。

当误删除某些表时,可以通过命令恢复回来:
flashback table tablename to before drop;

查看是否开启了闪回功能:
select flashback_on from v$database;

如果确定某些表确实可以删除,可以使用下面的语句,就不会出现BIN$开头的表了
drop table table_name purge;

-------------------------------------------------------------------------------------------------------

删除Bin开头的表,即已经drop但存在于回收站中的表:
-->
查询所有此类表SQL> select * from recyclebin where type='TABLE';
用来删除回收站中所有的表SQL> PURGE RECYCLEBIN  --------这语句就能清除所有以BIN开头的残留文件
用来删除指定的表SQL> PURGE TABLE TABLE_NAME
用来闪回被删除的表SQL> FLASHBACK TABLE table_name TO BEFORE DROP;
-->

-------------------------------------------------------------------------------------------------------
可以在的Drop表时不产生Bin型表SQL> DROP TABLE "TableName" purge;

  over!  --------by  振华

猜你喜欢

转载自davidxiaozhi.iteye.com/blog/1202915
今日推荐