1. 程式人生 > >Oracle資料庫還原資料

Oracle資料庫還原資料

還原資料在使用者修改資料內容時建立,儲存修改前的值,還原資料至少會保留到事務結束,便於rollback時使用。

還原資料保證讀取一致性。

還原資料可用於閃回查詢,查詢過去某個時間點的資料。用於閃回表,將表恢復到特定時間點。

還原表空間自動進行管理,對於自動擴充套件的表空間,會將還原保留期優化為略長於 執行時間最長的活動查詢。對於固定大小的還原表空間,資料庫會進行動態優化,儘可能獲得最佳保留時間。

當還原表空間設定為自動增長或要設定LOB的還原保留時間時,需配置還原保留時間引數undo_retention,此引數只能應用於還原表空間,使用以下命令啟用(關閉)還原保留時間,預設900秒(15分):

ALTER TABLESPACE undotbs RETENTION (NO)GUARANTEE; 

檢視undo_retention引數值:

SQL>SHOW PARAMETER UNDO_RETENTION;

修改undo_retention的值:

SQL>ALTER SYSTEM SET UNDO_RETRNTION = 整數 SCOPE=BOTH;

檢視還原表空間是否啟用了還原保留時間:

SELECT TABLESPACE_NAME,CONTENTS,RETENTION
FROM DBA_TABLESPACES 
WHERE CONTENTS = 'UNDO';

將還原表空間設定為固定大小可以支援閃回操作並限制還原表空間的過大增長,必須設定一個合適的固定大小否則會產生以下兩種錯誤: 1.DML失敗 剩餘空間不足以存放此次DML操作的還原資料,返回錯誤。 2.快照過舊 還原表空間中沒有還原資料支援一致性查詢。 將還原表空間修改為固定大小:在EM的“Server > Automatic Undo Management(伺服器 > 自動還原管理)”中點選“Edit Undo Tablespace”,在“Datafile”欄下點選“Edit”即可修改為固定大小。