oracle回收站管理

来源:这里教程网 时间:2026-03-03 19:41:19 作者:

查询回收站大小:

select sum(space*8/1024/1024) GB from dba_recyclebin;
select sum(space*8/1024/1024) GB from dba_recyclebin where original_name='YY';

reference 中对 space 的解释:

SPACE  NUMBER  Number of blocks used by the object

查看回收站是否开启: 
SHOW PARAMETER RECYCLEBIN;
关闭回收站:
ALTER SYSTEM SET RECYCLEBIN=OFF scope=spfile;
ALTER SESSION SET RECYCLEBIN=OFF;
开启回收站:
ALTER SYSTEM SET RECYCLEBIN=ON scope=spfile;
ALTER SESSION SET RECYCLEBIN =ON;

 

1.查看回收站
select * from user_recyclebin;

 

2.清空回收站
purge recyclebin;
purge dba_recyclebin;

 

3.清空回收站中的某个表
purge table "BIN$/UpBuh+LQ9yZGN95BFsk5Q==$0";
purge table "HNSI"."BIN$kvbM59svBqTgU94LC4WDdg==$0";

 

4.恢复回收站
FLASHBACK TABLE "BIN$0iJ7/rWFQrSGdZexvGv3qQ==$0" TO BEFORE DROP

 

这是 10g 推出 的新特性

10g 之后,如果启用 flash drop 功能,在 drop 表时,数据库不会直接删除,而是将其放在回收站中,当空间出现短缺时,才会逐渐回收这部分空间。

bin$ 表示表放在了回收站,你想要的话还可以找回来

删除的话一个方法是直接删 delete tanle bin$.....;

另一种方法就是使用 purge table table_name;

drop table 时, 不产生他们,修改你的 drop 语句

写成 :

DROP TABLE TABLE_NAME PURGE ;

 

相关推荐