Backup And Recovery User's Guide-使用閃回表來回退一個表-閃回表的先決條件

LuiseDalian發表於2014-02-27

使用閃回表來回退一個表

閃回表使用undo表空間中的資訊,而不是還原備份來獲取表。

當執行閃回表操作時,新的行被刪除,老的行被重新插入。

在表的閃回操作被執行的時候,資料庫的其餘部分仍然可用。

閃回表的先決條件

在一個或多個表上使用閃回表功能,要使用帶有目標時間SCNFLASHBACK TABLE語句。

使用閃回表功能必須具有下面的許可權:

n  FLASHBACK ANY TABLE系統許可權/在指定表上的FLASHBACK物件許可權

n  表上的SELECTINSERTDELETEALTER許可權

n  閃回表到還原點,需要SELECT ANY DICTIONARY/FLASHBACK ANY TABLE/SELECT_CATALOG_ROLE

 

符合閃回要求的物件,需要滿足:

n  物件不能是下面的類別:作為簇的一部分的表、物化視訊、高階佇列(AQ)表、靜態資料字典表、系統表、遠端表、物件表、巢狀表、單獨的表分割槽或子分割槽。

n  在當前時間和目標閃回時間期間,表的結構不能被改變。

下面的DDL語句會改變表的結構:

u  升級、移動、截斷表

u  給表新增約束、給簇新增表

u  修改和刪除列

u  新增、刪除、mergingsplittingcoalescing、截斷分割槽或子分割槽(新增範圍分割槽除外)

n  必須在表上開啟行移動,這意味著在閃回之後rowid有可能改變。

如果在閃回之前在應用程式中儲存了rowid,則在閃回之後不保證rowid保持不變。

如果你的應用程式依賴於rowid,則不要使用閃回表。

n  undo表空間中的資料必須在時間上向前擴充套件的足夠大來滿足閃回目標時間或SCN的需要。

能夠執行閃回操作到的點是由undo保留期來決定的。

undo保留期undo資料在被回收之前被保留的最小時間,是表空間的特徵。

undo資料包含資料塊被改變之前的資訊。閃回操作使用undo資料來重新建立原始的資料。

為了確保undo資訊為閃回表操作而保留,建議對undo表空間設定UNDO_RETENTION引數為86400(秒),即24小時或更大。

注意FLASHBACK TABLE…TO BEFORE DROP是使用閃回刪除功能,而不是閃回表功能。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17013648/viewspace-1095799/,如需轉載,請註明出處,否則將追究法律責任。

相關文章