红联Linux门户
Linux帮助

怎么purge已经被drop的对象

发布时间:2015-03-10 09:53:04来源:linux网站作者:msdnchina

以被drop对象所在的user去登陆sqlplus

然后show recyclebin;

F:\Oracle\product\10.2.0\db_1\BIN>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Feb 19 09:04:17 2015

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.

Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

12:41:11 sys@FS> conn system/aaaaaa
Connected.
12:41:17 system@FS> show recyclebin;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
XXX              BIN$T7ZJRNkmQcGysyaMOwZS9Q==$0 TABLE        2015-02-19:12:38:44

12:41:22 system@FS> purge table "BIN$T7ZJRNkmQcGysyaMOwZS9Q==$0";

Table purged.

Elapsed: 00:00:00.51
12:45:38 system@FS> show recyclebin;
12:45:40 system@FS>


这是 仅仅purge 回收站中的一个对象,其实,还有其他几种purge的细粒度:

purge index idx_test_1;
PURGE TABLESPACE USERS;
PURGE TABLESPACE USERS USER SCOTT;
PURGE RECYCLEBIN;--->purge 回收站中自己用户下的对象,并不是purge 整个回收站(并不是purge 回收站中所有用户下的对象)
PURGE DBA_RECYCLEBIN;--->purge 整个回收站(purge 回收站中所有用户下的对象)

其实DBA_RECYCLEBIN 也是一个可以select的视图,该视图的TS_NAME是对象所在的表空间名字。TS_NAME列在drop datafile 报ORA-03262: the file is non-empty 时,可以起到诊断作用。