關於SYSTEM表空間的表刪除後不會進入回收站的疑惑

我們知道Oracle有一個回收站的功能,如果刪除表的時候不使用purge選項,則會進入到回收站,可以使用Flashback閃回刪除。具體如下:

SQL> select * from v$version;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

PL/SQL Release 11.2.0.4.0 - Production

CORE    11.2.0.4.0      Production

TNS for Linux: Version 11.2.0.4.0 - Production

NLSRTL Version 11.2.0.4.0 - Production

SQL> conn hr/hr

Connected.

SQL> show recyclebin;

SQL> drop table emptest;

Table dropped.

SQL> show recyclebin;

ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME

---------------- ------------------------------ ------------ -------------------

EMPTEST          BIN$LyW+XZMEovjgU5XmqMB6SA==$0 TABLE        2016-03-29:08:02:22

SQL> flashback table emptest to before drop;

Flashback complete.

SQL> show recyclebin;

SQL> 

但是如果是SYS用戶刪除位於SYSTEM表空間的表,似乎是徹底刪除,不會進入回收站。具體如下:

SQL> conn / as sysdba

Connected.

SQL> show recyclebin;

SQL> create table emptest as select * from hr.employees;

Table created.

SQL> select table_name,tablespace_name from dba_tables where table_name='EMPTEST' and owner='SYS';

TABLE_NAME                     TABLESPACE_NAME

------------------------------ ------------------------------

EMPTEST                        SYSTEM

SQL> drop table emptest;

Table dropped.

SQL> show recyclebin;

SQL> 

SQL> flashback table emptest to before drop;

flashback table emptest to before drop

*

ERROR at line 1:

ORA-38305: object not in RECYCLE BIN

閃回報錯。

創建在其他表空間後刪除會進入到回收站。

SQL> create table emptest tablespace users as select * from hr.employees;

Table created.

SQL> drop table emptest;

Table dropped.

SQL> show recyclebin;

ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME

---------------- ------------------------------ ------------ -------------------

EMPTEST          BIN$LycThzsSsx3gU5XmqMDJHQ==$0 TABLE        2016-03-29:09:47:33

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章