2017-06-03 115 views
0

我是新來的此Oracle數據庫。今天我跑了DROP TABLE table1;並試圖將其反轉。但腳本輸出返回此:已刪除的表已被永久刪除

閃回表table1 TO BEFORE DROP
錯誤報告 -
ORA-38305:對象未在回收站
38305. 00000 - 「回收站對象不是」
*原因:嘗試閃回刪除不在RecycleBin中的對象。
*操作:只有RecycleBin中的對象可以被閃回丟棄。

我認爲回收站被禁用了。於是我打開另一個連接並輸入這個命令:

ALTER SESSION SET recyclebin = ON; 

並重復該過程,結果仍然相同。當我跑SELECT * FROM RECYCLEBIN;

我在回收站裏沒有任何東西我無意間搞砸了什麼?

+0

你重複了哪個過程? – miracle173

+0

您是否在開啓回收站後再次創建'table1'? – APC

回答

0

你沒有搞錯命令ALTER SESSION SET recyclebin = ON;的任何內容,但是調用該命令的時間已晚。我認爲你的問題是由於你的默認表空間爲SYSTEM

0

Oracle Flashback Drop顛倒了DROP TABLE操作的影響。它可以用來在意外掉落桌子後恢復。閃回丟失比其他可用於此情況的恢復機制(如時間點恢復)快得多,並且不會導致最近事務或宕機時間的任何損失。

表及其依賴對象將保留在回收站中,直到它們從回收站中清除。你可以明確地清除從回收站桌子或其他物體的命令:

DROP TABLE some_table PURGE; 

刪除的對象保存在回收站中,直到時間沒有新盤可在表空間分配給對象所屬而不增加表空間。這種情況被稱爲空間壓力。由於爲特定表空間定義的用戶配額,也可能會產生空間壓力。表空間可能有空閒空間,但用戶可能已經耗盡了他或她的配額。

當空間壓力升高時,數據庫選擇要從回收站自動清除的對象。選擇對象以先進先出爲基礎進行清除,即首先刪除的對象是首先選擇進行清除的對象。

沒有爲回收站預先分配的固定數量的空間。因此,在丟棄的對象將保留在回收站中的最短時間內沒有保證。

要僅查看回收站中的對象,請使用USER_RECYCLEBINDBA_RECYCLEBIN視圖。