Oracle10g的recyclebin
做了個實驗,發現建立在system上的物件是無法真正入recyclebin的。所以一般來講sysdba的使用者所drop的table是無法用flashback table t to before drop命令恢復的。
下面是實驗:
首先以sysdba建立兩個使用者並賦予相應的許可權
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 12月 29 19:26:45 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
SQL> conn / as sysdba;
已連線。
SQL> create user hujinpei identified by passw0rd default tablespace users;
使用者已建立。
SQL> create user alan identified by passw0rd default tablespace system;
使用者已建立。
SQL> grant connect,resource,dba to hujinpei;
授權成功。
SQL> grant connect,resource,dba to alan;
授權成功。
以hujinpei使用者登陸另外一個session
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 12月 29 19:29:55 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
SQL> conn hujinpei/passw0rd@irmdb
已連線。
SQL> create table t ( id int);
表已建立。
SQL> select object_name,original_name from recyclebin;
未選定行
SQL> drop table t;
表已刪除。
SQL> select object_name,original_name from recyclebin;
OBJECT_NAME ORIGINAL_NAME
------------------------------ --------------------------------
BIN$Phso2StdTrq+wh642whvUA==$0 T
SQL> show recyclebin;
ORIGINAL NAME RECYCLEBIN NAME OBJECT TYPE DROP TIME
---------------- ------------------------------ ------------ -------------------
T BIN$Phso2StdTrq+wh642whvUA==$0 TABLE 2007-12-29:19:30:24
SQL> desc t;
ERROR:
ORA-04043: 物件 t 不存在
SQL> flashback table t to before drop;
閃回完成。
SQL> desc t;
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
ID NUMBER(38)
我們可以看到表在drop的時候進入了recyclebin,並且可以恢復了。
那如果我再以alan使用者登陸新的session做同樣的試驗。
C:\Documents and Settings\Administrator>sqlplus /nolog
SQL*Plus: Release 10.2.0.3.0 - Production on 星期六 12月 29 19:34:07 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
SQL> conn alan/passw0rd@irmdb
已連線。
SQL> create table t ( id int );
表已建立。
SQL> select object_name,original_name from recyclebin;
未選定行
SQL> drop table t;
表已刪除。
SQL> select object_name,original_name from recyclebin;
未選定行
SQL> flashback table t to before drop;
flashback table t to before drop
*
第 1 行出現錯誤:
ORA-38305: 物件不在回收站中
原因是alan使用者建立的物件都在system表空間中。因此無法回收。
針對recyclebin的維護
比如
purge table table_name
purge recyclebin
等等有很多。
另外通過查詢
SQL> select object_name,object_type from dba_objects
2 where object_name='RECYCLEBIN';
OBJECT_NAME
----------------------------------------------------------
OBJECT_TYPE
-------------------
RECYCLEBIN
SYNONYM
知道recyclebin是個同意詞,那麼他的源是什麼呢?繼續查詢
SQL> select synonym_name,table_name from dba_synonyms where synonym_name='RECYCLEBIN';
SYNONYM_NAME TABLE_NAME
------------------------------ ------------------------------
RECYCLEBIN USER_RECYCLEBIN
這回我們就知道了,user_recyclebin就是recyclebin公用同意詞的源。
後面的資訊只是留用觀察,供參考:
SQL> select synonym_name,table_name from dba_synonyms where synonym_name='USER_RECYCLEBIN';
SYNONYM_NAME TABLE_NAME
------------------------------ ------------------------------
USER_RECYCLEBIN USER_RECYCLEBIN
SQL> select synonym_name,table_name from dba_synonyms where synonym_name='USER_TABLES';
SYNONYM_NAME TABLE_NAME
------------------------------ ------------------------------
USER_TABLES USER_TABLES
SQL> select synonym_name,table_name from dba_synonyms where synonym_name='V$SESSION';
SYNONYM_NAME TABLE_NAME
------------------------------ ------------------------------
V$SESSION V_$SESSION
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12361284/viewspace-61766/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle10g recyclebinOracle
- Oracle10g 的Recyclebin簡介Oracle
- oracle10g recyclebin 詳解Oracle
- How to maintain Oracle10g RecyclebinAIOracle
- Oracle10g的回收站(recyclebin)和自由空間管理Oracle
- Oracle10g的回收站(recyclebin)和自由空間管理(zt)Oracle
- Linux recyclebinLinux
- Oracle Recyclebin - purgeOracle
- recyclebin in ORACLE 10Oracle
- ListView 中的 RecycleBin 機制View
- recyclebin造成的問題分析
- oracle recyclebin詳解Oracle
- Oracle recyclebin介紹Oracle
- oracle recyclebin和flashbackOracle
- 清除oracle的recyclebin回收站Oracle
- recyclebin for oracle 10gOracle 10g
- 原始碼解析ListView中的RecycleBin機制原始碼View
- 【RECYCLEBIN】Oracle回收站詳解Oracle
- oracle flashback特性(2.1)--Flashback Table之RECYCLEBINOracle
- 【故障-ORACLE】定時清理dba_recyclebinOracle
- 應用oracle flashback--Flashback Table之RECYCLEBINOracle
- 【recyclebin】徹底禁用 Oracle回收站功能Oracle
- 【Oracle】-【recyclebin,索引】-回收站恢復的索引名稱修改Oracle索引
- 10g 新特性 Recyclebin 空間的自動清理(zt)
- 【徵文】應用oracle flashback(2.1)--Flashback Table之RECYCLEBINOracle
- recyclebin未清引起的查詢表空間使用率慢
- 全面學習oracle flashback特性(2.1)--Flashback Table之RECYCLEBINOracle
- Oracle10G 的gOracle
- Oracle OCP IZ0-053 710(Recyclebin&Tablespace Quato)Oracle
- oracle10g logmnr的使用Oracle
- Oracle10g的Flashback version QueryOracle
- [原創] 當表空間不足時,Oracle是這樣管理RecyclebinOracle
- oracle10g中的asm的配置(轉)OracleASM
- oracle10g中的bigfile tablespaceOracle
- oracle10g刪除Table的困惑Oracle
- oracle10g SGAOracle
- oracle10g PGAOracle
- Oracle10g心得Oracle