undo資料表空間與redo日誌
undo與redo的區別和各自的作用
一、undo中資料的特點:
1、 是資料修改前的備份,主要是保證使用者的讀一致性
2、 在事務修改資料時產生
3、 至少儲存到事務結束
二、undo資料的作用:
1、 復原(rollback)操作
2、 實現讀一致性與閃回查詢
3、 從失敗的交易中還原資料
4、 非正常停機後的執行個體恢複
RMAN備份與恢複之undo資料表空間丟失
關於Oracle 釋放過度使用的undo資料表空間
Oracle undo的一些理解
Oracle undo 鏡像資料探究
Oracle 復原(ROLLBACK)和撤銷(undo)
三、undo復原段的特點:
1、 復原段是由執行個體自動建立用於支援事務啟動並執行專用段,同樣是區和塊組成,復原段會按實際需要自動進行增長或收縮,是一段可以給指定事務迴圈使用的儲存緩衝區。
2、 每個事務只會使用一個復原段,一個復原段在同一時刻可能會服務於多個事務
3、 當一個事務開始的時候,會指定一個復原段,在事務進行的過程中,當資料被修改時,未經處理資料會被複製到復原段中。
4、 在復原段中,事務會不斷的填充盤區,直到事務結束或所有的空間被用完,如果當前的盤區不夠用,事務會在段中請求下一盤區,如果所有已指派的盤區都被使用完,事務會覆蓋最初的盤區或者在復原段允許的情況下擴充新的盤區來使用。
5、 復原段存在於undo資料表空間中,在資料庫中可以存在多個undo資料表空間,但同一時刻只能使用一個undo資料表空間。
四、復原段中的資料類型
復原段中的資料類型主要分為以下三種:
1、 uncommitted undo information 未提交的復原資料,用於實現讀一致性,所以該資料不能被其他事務的資料所覆蓋
2、 committed undo information 已經提交過但未到期的復原資料,該資料關聯的事務已經提交,但是仍受到undo retention參數保持時間的影響
3、 expired undo information 事務已經提交,而且資料儲存的時間已經超過undo retention參數指定的時間,屬於已經到期的資料
當復原段滿了後,會優先覆蓋expired undo information,當到期資料空間用完後,會再覆蓋committed undo information的地區,這時undo retention參數所規定的保持時間會被破壞,uncommitted undo information的資料是不容許覆蓋的,如果要求提交的資料在undo retention參數規定的時間內不會被覆蓋,可以在undo資料表空間上指定retention guarantee, 文法如下:
Alter tablespace undobs retention guarantee;
五、undo資料與redo資料的區別:
1、 undo記錄資料修改之前的操作,redo記錄磁碟資料將要進行的操作
2、 undo用於資料的復原操作和實現一致性讀,redo用於前滾資料庫操作
3、 undo儲存在復原段中,redo儲存在重做記錄檔裡
4、 undo用於在多使用者並發的系統裡保證一致性讀,redo用於防止資料丟失
六、與undo有關的參數
Undo_management auto 自動的undo資料表空間管理
Undo_tablespace 設定undo資料表空間名稱,可以存在多個undo資料表空間,但同時只能使用一個
Undo_retention 設定快照儲存的時間,設定後在此時間段內仍有可能會被覆蓋
Alter tablespace undo_ts retention guarantee;強制所以快照必須儲存undo_retention所規定的時間。