回收站是删除对象使用的存储空间。可以使用实例参数recyclebin禁用回收站,默认是on,可以为某个会话或系统设置为off或on。所有模式都有一个回收站。
当表空间不足时可以自动重用回收站对象占用的表空间(此后不可能恢复对象),或使用purge真正地删除对象。
//显示回收站状态
SQL> show parameter recyclebin;
NAME TYPE VALUE
---------- ----------- -----
recyclebin string on
//可以禁用或启用回收站
SQL> alter system set recyclebin=off;
SQL> alter system set recyclebin=on;
//显示回收站内容
SQL> show recycle;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
EMP BIN$nZeFdV7KRUavVdBBbSCGQA==$0 TABLE 2014-03-05:22:04:34
T BIN$F4pMSE6QTxOG/ROtSMvhaw==$0 TABLE 2014-03-03:23:19:47
T BIN$36411FISQ/OxxyOllF78yw==$0 TABLE 2014-03-03:22:57:01
TEST BIN$sMXGDOloSOiX42Fb7sCObg==$0 TABLE 2014-03-27:00:46:17
//查询当前用户下的回收站信息,can_undrop——是否可撤消删除
SQL> select object_name, original_name,type,droptime,can_undrop, space from user_recyclebin;
OBJECT_NAME ORIGINAL_NAME TYPE DROPTIME CAN SPACE
------------------------------ --------------- ------- ------------------- --- -----
BIN$nZeFdV7KRUavVdBBbSCGQA==$0 EMP TABLE 2014-03-05:22:04:34 YES 8
BIN$F4pMSE6QTxOG/ROtSMvhaw==$0 T TABLE 2014-03-03:23:19:47 YES 8
BIN$36411FISQ/OxxyOllF78yw==$0 T TABLE 2014-03-03:22:57:01 YES 8
BIN$sMXGDOloSOiX42Fb7sCObg==$0 TEST TABLE 2014-03-27:00:46:17 YES 8
下面是关于回收站的一些常用操作:
//删除表并移到回收站
drop table emp purge;
//从回收站中清除表emp
purge table emp;
//从回收站中清除索引emp_idx
purge index emp_idx;
//从表空间ts01中清除所有删除的对象
purge tablespace ts01;
//从表空间ts01中清除用户scott所删除的所有对象
purge tablespace ts01 user scott;
//清空回收站
purge recyclebin;
//清除所有删除的对象,需要dba权限
purge dba_recyclebin;