Oracle 閃回刪除與資源回收筒的簡介
在 Oracle 資料庫的早期版本中,如果錯誤地刪除了表,則必須將資料庫恢複到以前的時間以恢複刪除的表。此過程通常非常耗時,並且會導致丟失其它交易處理的工作。 Oracle Database 10g 引入了閃回刪除功能,您可以使用此功能還原 DROP TABLE 語句的結果,而不必使用時間點恢複。
註:初始化參數 RECYCLEBIN 用於控制閃回刪除功能是開啟 (ON) 還是關閉 (OFF)。如果將該參數設定為 OFF,則刪除的表不會進入資源回收筒。如果將該參數設定為 ON,則刪除的表將進入資源回收筒,並且可以進行恢複。預設情況下,將 RECYCLEBIN 設定為 ON。
1.正常情況下刪除一個表
drop table test1
這是表會被放置在recyclebin(資源回收筒)
注意:這裡如果執行了“commit”提交操作。下列閃回操作就會失效!
2.使用如下代碼進行閃回操作
flashback table test1 to before drop
3.使用函數 timestamp 將表閃回但是到一個確切的時間點是的狀態
如:
允許行滾動
alter table test1 enable row movement;
執行閃回操作
flashback table test1 to timestamp to_timestamp(‘2012-05-22 09:19:51’,’YYYY-MM-DD HH24:MI:SS’);
4.當資源回收筒中具有多個原始名稱時。
(1)一種是使用系統為所刪除的表所起的名稱還原特定版本
(2)使用原始名稱時,還原的表遵循後進先出(lifo)的規則
5.對資源回收筒中的表進行閃回並且重新命名。
flashback table test1 to before drop rename to testnews ;
6.不使用資源回收筒
drop table test1 purge;
drop tablespace users including contents;
drop user scott cascade;
7.清空資源回收筒的操作
purge recyclebin;
8.顯示資源回收筒的內容
show recyclebin
更多Oracle相關資訊見Oracle 專題頁面 http://www.bkjia.com/topicnews.aspx?tid=12