oracle Recyclebin

每个用户都有自己的Recycle Bin。
删除的对象不会永久存储在Recycle Bin中,Oracle会按照一定的规则自动清除里面的内容,如没有足够的空间。
执行show recyclebin时只列出基表,被删除的表关联对象不会显示。
1、回收站基本信息查询:

SQL> desc recyclebin;
名称 是否为空? 类型
----------------------------------------- -------- -------------------------
OBJECT_NAME NOT NULL VARCHAR2(30)
ORIGINAL_NAME VARCHAR2(32)
OPERATION VARCHAR2(9)
TYPE VARCHAR2(25)
TS_NAME VARCHAR2(30)
CREATETIME VARCHAR2(19)
DROPTIME VARCHAR2(19)
DROPSCN NUMBER
PARTITION_NAME VARCHAR2(32)
CAN_UNDROP VARCHAR2(3)
CAN_PURGE VARCHAR2(3)
RELATED NOT NULL NUMBER
BASE_OBJECT NOT NULL NUMBER
PURGE_OBJECT NOT NULL NUMBER
SPACE NUMBER

SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
DEPARTMENT2 BIN$UQLtz4UuTiaVLzvCeKAcCA==$0 TABLE 2014-12-10:17:25:14
DEPT3 BIN$146E+wFfS6KWzzOKLcLIOA==$0 TABLE 2014-12-10:17:24:38
E2 BIN$fBBG2kejQ2Oug6a2XXj4hQ==$0 TABLE 2014-12-10:17:24:19
EMP2 BIN$xSzIQ4jVThe3dAWcIdusgA==$0 TABLE 2014-12-10:17:24:23
EMP2 BIN$bOKmVS+vRi2zPWaLvgJQwg==$0 TABLE 2014-12-10:00:16:43
EMP2 BIN$kbE5yqUMTdqHIojB5bNnyA==$0 TABLE 2014-11-30:11:53:02
……
回收站中可能存在多个original name相同的对象,flashback时,先闪回最近时间删除的那个。

SQL> select * from recyclebin; --查询详细的recycle bin中的内容

SQL> select * from "BIN$UQLtz4UuTiaVLzvCeKAcCA==$0"; --查询recycle bin中对象的内容

2、Recycle bin的禁用或启用

SQL> show parameter recyclebin; --默认情况下,该参数为on

NAME TYPE VALUE
------------------------------------ ----------- -------------------
recyclebin string on

SQL> alter session set recyclebin=off; --针对当前会话关闭回收站

SQL> alter system set recyclebin=off; --对整个实例关闭回收站

3、Recycle bin对象清除

强制删除对象,不放入recyclebin:
SQL> drop table emp purge; --使用purge参数来强制删除对象

清除Recycle Bin中的现有对象:
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
DEPARTMENT2 BIN$UQLtz4UuTiaVLzvCeKAcCA==$0 TABLE 2014-12-10:17:25:14
DEPT3 BIN$146E+wFfS6KWzzOKLcLIOA==$0 TABLE 2014-12-10:17:24:38
E2 BIN$fBBG2kejQ2Oug6a2XXj4hQ==$0 TABLE 2014-12-10:17:24:19
EMP2 BIN$xSzIQ4jVThe3dAWcIdusgA==$0 TABLE 2014-12-10:17:24:23
EMP2 BIN$bOKmVS+vRi2zPWaLvgJQwg==$0 TABLE 2014-12-10:00:16:43
EMP2 BIN$kbE5yqUMTdqHIojB5bNnyA==$0 TABLE 2014-11-30:11:53:02
……
SQL> purge table EMP2; --当有多个对象时,删除最先进入回收站的对象(先进先出原则)

表已清除。

SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
DEPARTMENT2 BIN$UQLtz4UuTiaVLzvCeKAcCA==$0 TABLE 2014-12-10:17:25:14
DEPT3 BIN$146E+wFfS6KWzzOKLcLIOA==$0 TABLE 2014-12-10:17:24:38
E2 BIN$fBBG2kejQ2Oug6a2XXj4hQ==$0 TABLE 2014-12-10:17:24:19
EMP2 BIN$xSzIQ4jVThe3dAWcIdusgA==$0 TABLE 2014-12-10:17:24:23
EMP2 BIN$bOKmVS+vRi2zPWaLvgJQwg==$0 TABLE 2014-12-10:00:16:43
……
或者是:
SQL> purge table "BIN$xSzIQ4jVThe3dAWcIdusgA==$0";

表已清除。
-------------
用purge 指定表空间进行清空:
SQL> purge tablespace tablespace_name;

清空recyclebin所有内容:
SQL> purge recyclebin;

回收站已清空。

 

posted on 2015-01-10 21:05  遠離塵世の方舟  阅读(384)  评论(0编辑  收藏  举报

导航