全面學習oracle flashback特性(2.1)--Flashback Table之RECYCLEBIN
簡單來講,如果我們把flashback query看做是恢復記錄,則flashback table就是用來恢復表的(由於記錄是以表為載體儲存,因此flashback table也應該看做是恢復記錄,只不過相對於flashback query而言,其粒度更大一些),同時呢,在Oracle10g中又新引入了一個叫做Recycle Bin的功能(主要針對表及其關聯的物件,比如索引約束啥的),被刪除的表並非真正刪除,而是先通過修改資料字典的方式,將其改名並放入recyclebin,如果要恢復recycle bin中物件的話,藉助flashback table是最簡便的方式。除此之外,flashback table也提供了類似flashback query中as of scn/timestamp的方式,藉助undo資料,直接將現有的表恢復到某個指定的時間點或scn時的狀態。
[@more@]
下面分別舉例:
1、從RECYCLEBIN中恢復
要恢復recyclebin中的表,注意語句如下:Flashback table [objName] to before drop,這個obj_name即可以是表名,也可以是recyclebin中的物件表(支援同時操作多個表,表名之間以逗號分隔即可),由於該項功能是恢復被刪除表,因此官方對其還有另外一稱謂:flashback drop。
下面舉個例子,從recyclebin中恢復一個被刪除的表:
JSSWEB> select object_name,original_name from recyclebin;
OBJECT_NAME ORIGINAL_NAME
------------------------------ --------------------------------
BIN$u/7I62WxS12jMVO358SFgw==$0 JSS_TB3
JSSWEB> select object_name,original_name from recyclebin;
OBJECT_NAME ORIGINAL_NAME
------------------------------ --------------------------------
BIN$u/7I62WxS12jMVO358SFgw==$0 JSS_TB3
JSSWEB> flashback table jss_tb3 to before drop;
閃回完成。
JSSWEB> select object_name,original_name from recyclebin;
未選定行
Flashback table語句同時提示了一個rename to [newTBname]的子句,如果要恢復的表在當前schema中已經存在同名的表,建議你在恢復時通過rename to 子句為待恢復的表指定一個新的表名,不然資料庫會報ORA-38312錯誤,再舉個例子:
JSSWEB> drop table jss_tb3;
表已刪除。
JSSWEB> create table jss_tb3 as select *from jss_tb1;
表已建立。
JSSWEB> flashback table jss_tb3 to before drop;
flashback table jss_tb3 to before drop
*
第 1 行出現錯誤:
ORA-38312: 原始名稱已被現有物件使用
你看,正如其提示的那樣,該表被刪除之後,又執行過建立同名表的操作,因此恢復的時候就會報錯,怎麼辦呢,用rename to.....
JSSWEB> flashback table jss_tb3 to before drop rename to jss_tb3_bak;
閃回完成。
======================================
檢視之前的連載:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7607759/viewspace-1006629/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle flashback特性(2.1)--Flashback Table之RECYCLEBINOracle
- 【徵文】應用oracle flashback(2.1)--Flashback Table之RECYCLEBINOracle
- 全面學習oracle flashback特性(2.3)--Flashback Table之注意事項Oracle
- 全面學習oracle flashback特性(2.2)--Flashback Table之從UNDO中恢復Oracle
- 應用oracle flashback--Flashback Table之RECYCLEBINOracle
- 全面學習oracle flashback特性(3.2)--Flashback Database操作示例OracleDatabase
- oracle flashback特性(2.2)--Flashback Table之從UNDO中恢復Oracle
- 全面學習oracle flashback特性(1.2)--閃回查詢之As of scnOracle
- oracle recyclebin和flashbackOracle
- 全面學習oracle flashback特性(1.4)--閃回查詢之Transaction queryOracle
- 全面學習oracle flashback特性(1.1)--閃回查詢之As of timestampOracle
- 【徵文】全面學習oracle flashback特性(1.2)--閃回查詢之As of scnOracle
- oracle flashback特性學習總結Oracle
- 全面學習oracle flashback特性(1.5)--閃回查詢之制約因素Oracle
- 【徵文】全面學習oracle flashback特性(1.1)--閃回查詢之As of timestampOracle
- 【徵文】全面學習oracle flashback特性(1.4)--閃回查詢之Transaction queryOracle
- flashback技術之---flashback table
- 【徵文】全面學習oracle flashback特性(1.5)--閃回查詢之制約因素Oracle
- 【徵文】應用oracle flashback(2.3)--Flashback Table之注意事項Oracle
- oracle flashback特性(3.2)--Flashback Database操作示例OracleDatabase
- 【徵文】應用oracle flashback(2.2)--Flashback Table之從UNDO中恢復Oracle
- 【Flashback】Flashback Table功能實踐
- Oracle FlashBack 學習筆記Oracle筆記
- (轉)oracle10g新特性之 flashbackOracle
- sys使用者不支援flashback table特性!
- Oracle 閃回特性(FLASHBACK DATABASE)OracleDatabase
- oracle flashback特性(1.2)--閃回查詢之As of scnOracle
- Oracle10g的Flashback之Flashback Transaction QueryOracle
- Flashback database與flashback table使用條件區別Database
- oracle flashback特性(1.1)--閃回查詢之As of timestampOracle
- oracle flashback特性(1.4)--閃回查詢之Transaction queryOracle
- flashback技術之---flashback query
- flashback技術之---flashback drop
- flashback技術之---flashback databaseDatabase
- flashback學習筆記筆記
- flashback學習日記
- Oracle FlashbackOracle
- 【FLASHBACK】Oracle flashback data archive 介紹OracleHive