FLASHBACK TABLE table_name TO BEFORE DROP引發的猜想

來源:互聯網
上載者:User

ORACLE 10G新增了FLASHBACK特性,其中FLASHBACK TABLE用來對誤刪的表進行修複。

SQL> CONNECT SYSDBA/***** AS SYSDBA
已串連。

SQL> CREATE TABLE TEST (T VARCHAR2(10) ) ;

表已建立。

SQL> DROP TABLE TEST;

表已刪除。

SQL> FLASHBACK TABLE TEST TO BEFORE DROP;
FLASHBACK TABLE TEST TO BEFORE DROP
*
第 1 行出現錯誤:

ORA-38305: 對象不在資源回收筒中  

出現ORA-38305錯誤,起初我以為是資源回收筒機制參數OFF引起的,Oracle10g起,引入了資源回收筒的機制,將drop掉的資料表儲存在資源回收筒中。當發現誤刪除的時候,可以通過資源回收筒回收資料表。資源回收筒機制類似於我們在Windows系統上的資源回收筒。在Windows中,當我們選擇刪除一個檔案時,本質上並沒有將檔案從硬碟上刪除,只是將檔案以一種形式改名,這樣就能從資源回收筒中看到。於是我查看了RECYCLEBIN參數

 

奇怪的是資源回收筒參數是開啟的,SQL> SHOW RECYCLEBIN; 也看不到刪除的表。這到底是咋回事呢?折騰了很久。後來修改了建立表的資料表空間,竟然一切都OK

SQL> CREATE TABLE TEST(T VARCHAR2( 10)) TABLESPACE USERS;

表已建立。

SQL> DROP TABLE TEST;

表已刪除。

SQL> SHOW RECYCLEBIN;
ORIGINAL NAME    RECYCLEBIN NAME                OBJECT TYPE  DROP TIME
---------------- ------------------------------ ------------ -------------------
TEST             BIN$gVtRcd2NTqihW6yM4vs0Hw==$0 TABLE        2011-07-24:12:40:42
SQL> FLASHBACK TABLE TEST TO BEFORE DROP;

閃回完成。

SQL> SELECT * FROM TEST;

未選定行

如果不指定建立表的資料表空間,那麼它會使用預設的資料表空間SYSTEM,你可以通過SELECT
TABLESPACE_NAME FROM USER_TABLES WHERE TABLE_NAME='TEST'查看。後來我有多次重複了這個實驗,結果都是如此,在資料表空間SYSTEM下是無法使用FLASHBACK TABLE特性的

官方文檔解釋:

You cannot 'flashback table to before drop' a table which has been created in the SYSTEM tablespace. The table is sent to the recyclebin only
if it existed in some other tablespace other than SYSTEM tablespace and that tablespace must be locally managed.

ORACLE限制了在資料表空間SYSTEM下使用資源回收筒機制,這也是為什麼不推薦用SYS使用者建立資料庫物件。

原文連結:http://www.cnblogs.com/kerrycode/archive/2011/07/24/2115332.html

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.