zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

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

Oracle 进行 解决办法 清除 垃圾 bin 开头
2023-09-14 09:13:29 时间

oracle drop table时,在10g中bin开头表示已经删除的放在回收站的表,oracle在删除表时并没有彻底的删除,而是把表放入回收站!purge recyclebin清空回收站即可。10g的新特性flashback闪回区

SQL> select * from tab;

TNAME                                                                                                                            TABTYPE        CLUSTERID
-------------------------------------------------------------------------------------------------------------------------------- ------------- ----------
BIN$7asyuy9fdsTgU4oIqMDIyg==$0                                                                                                   TABLE
T02                                                                                                                              TABLE
T01                                                                                                                              TABLE
BIN$7asyuy9idsTgU4oIqMDIyg==$0                                                                                                   TABLE
T03                                                                                                                              TABLE
DEPT                                                                                                                             TABLE
EMP                                                                                                                              TABLE
BONUS                                                                                                                            TABLE
SALGRADE                                                                                                                         TABLE
DETAIL_DEPT                                                                                                                      TABLE
VU10                                                                                                                             VIEW
VUTEST                                                                                                                           VIEW
BIN$7fWMwuLp1IzgU4oIqMDRBA==$0                                                                                                   TABLE
BIN$7fWMwuLr1IzgU4oIqMDRBA==$0                                                                                                   TABLE
BIN$7fWMwuLs1IzgU4oIqMDRBA==$0                                                                                                   TABLE
BIN$7fWMwuLt1IzgU4oIqMDRBA==$0                                                                                                   TABLE

16 rows selected.

SQL>

★recyclebin字典★

  • 当误删除某些表时,可以通过命令恢复回来:
flashback table table_name 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 recyclebin;

Recyclebin purged.

SQL> select * from tab;

TNAME                                                                                                                            TABTYPE        CLUSTERID
-------------------------------------------------------------------------------------------------------------------------------- ------------- ----------
T02                                                                                                                              TABLE
T01                                                                                                                              TABLE
T03                                                                                                                              TABLE
DEPT                                                                                                                             TABLE
EMP                                                                                                                              TABLE
BONUS                                                                                                                            TABLE
SALGRADE                                                                                                                         TABLE
DETAIL_DEPT                                                                                                                      TABLE
VU10                                                                                                                             VIEW
VUTEST                                                                                                                           VIEW

10 rows selected.

SQL> 

 

  •  用来删除指定的表
SQL> PURGE TABLE TABLE_NAME
  •  用来闪回被删除的表
SQL> FLASHBACK TABLE table_name TO BEFORE DROP;
  • 可以在的Drop表时不产生Bin型表
SQL> DROP TABLE "TableName" purge;
  • 设置falshback功能的开启和关闭 
SQL>startup mount

SQL>alter database flashback on(off)