回收站不工作的問題解決

djb1008發表於2012-04-22


一. 問題描述

在測試flashback 的功能時,發現drop表時,回收站功能沒有能夠啟用.

二. 問題分析

資料庫的flashback和recyclebin功能是開放的.
sql>select flashback_on from v$database;
FLASHBACK_ON
------------------------------------------------------
YES

SQL>show parameter recyclebin
NAME TYPE VALUE
---------------------- --------------------------------- --------
recyclebin string ON

[@more@]

SQL>create table t(x number(10));

Table created.

SQL> insert into t values(1);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from t;

X
----------
1

SQL> drop table t;
Table dropped.

####檢查回收站裡面,有沒有剛才刪除的表,結果顯示沒有任何記錄.
SQL> show recyclebin
SQL> select * from user_recyclebin;
no rows selected

檢查使用者預設表空間,原來hr使用者的預設表空間為system,hr.t表建立在system表空間上,所以刪除該表時,因為它存在於system表空上

,不放入回收站.
SQL> select username ,default_tablespace from dba_users;
USERNAME DEFAULT_TABLESPACE
---------------------------------------- --------------------
OLTP1 SYSTEM
OUTLN SYSTEM
HR SYSTEM
SYS SYSTEM
SYSTEM SYSTEM
TSMSYS SYSTEM
DIP SYSTEM
DBSNMP SYSAUX
WMSYS SYSAUX


三. 問題解決
修改使用者的預設表空間(非system表空間)
SQL>alter user hr default tablespace users;
User altered.

再次測試刪除表的操作.
SQL> create table t (id number(10));
Table created.
SQL> insert into t values(1);
1 row created.
SQL> commit;
Commit complete.
SQL> drop table t;
Table dropped.
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
T BIN$vkI6NtLWip7gQKjAgdAVoA==$0 TABLE 2012-04-22:02:34:25

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/32980/viewspace-1057973/,如需轉載,請註明出處,否則將追究法律責任。

相關文章