`
davidxiaozhi
  • 浏览: 237107 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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  振华

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics