Oracle闪回技术之三 Oracle 11g Oracle RecycleBin (回收站)管理一
Oracle的回收站也要定期维护,否则随着时间的增长,有可能会占用你很大的磁盘空间。管理回收站主要包括:启用和禁用回收站、查看回收站中的信息和清除回收站中的对象。
1、启用和禁用回收站
oracle系统默认启用回收站。如果要手工控制回收站是否启用,可以通过修改RECYCLEBIN参数。首先通过SHOW PARAMETER RECYCLEBIN命令检查(注意也必须是管理员用户才可以)当前回收站是否启用。
SQL> show parameter recyclebin;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
recyclebin string on
Value值是on说名回收站是启用状态;
关闭回收站:
SQL> alter session set recyclebin=off;
会话已更改。
2、查看回收站中的信息
两种:1、dba通过数据字典dba_recyclebin来查看2、普通用户通过show recyclebin来查看
SQL> desc user_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
3、恢复相依对象
SQL> create table tb_index_test(id number,content varchar2(30));
表已创建。
SQL> create index index_id on tb_index_test(id);
索引已创建。
SQL> drop table tb_index_test;
表已删除。
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
TB_INDEX_TEST BIN$gf1yHCeHQYaV7metr4X4kg==$0 TABLE 2013-01-27:09:59:14
可见没有与索引相关的信息,下面我们用一条sql来查看删除的表和索引信息,而上面的语句只能查询到表的信息。
SQL> select original_name,object_name,type,droptime from user_recyclebin;
ORIGINAL_NAME OBJECT_NAME
-------------------------------- ------------------------------
TYPE DROPTIME
------------------------- -------------------
TB_INDEX_TEST BIN$gf1yHCeHQYaV7metr4X4kg==$0
TABLE 2013-01-27:09:59:14
INDEX_ID BIN$MSHanVPZRluFmcNkmb/FYw==$0
INDEX 2013-01-27:09:59:14