undo表空間與redo日誌文件在oracle中的作用

 

undo表空間與redo日誌文件在oracle中的作用非常重要,本文重點介紹undo回滾段的作用與特點,同時簡單介紹undo與redo的區別和各自己的作用:
一.undo中數據的特點:
1。是數據修改前的備份,主要是保證用戶的讀一致性
2. 在事務修改數據時產生
3。至少保存到事務結束

二。undo數據的作用:
1.回滾(rollback)操作
2.實現讀一致性與閃回查詢
3.從失敗的事務中還原數據
4. 非正常停機後的實例恢復

三.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 UNDOTBS1 RETENTION GUARANTEE;

五。undo數據與redo數據的區別:
1.undo記錄數據修改之前的操作,redo記錄磁盤數據將要進行的操作.
2.undo用於數據的回滾操作,和實現一致性讀,redo用於前滾數據庫操作
3.undo存儲在回滾段裏,redo存儲在重做日誌文件裏
4.undo用於在多用戶併發的系統裏保證一致性讀,redo用於防止數據丟失

六.與undo有關的相關參數
undo_management = auto 自動的undo表空間管理
undo_tablespace = undotbs1 設置undo表空間的名稱,可以存在多個undo表空間,但同時只能使用一個
undo_retention = 900(秒) 設置快照保存的最少時間,設置後在此時間段內仍有可能會被覆蓋
ALTER TABLESPACE UNDO_TS RETENTION GUARANTEE; 強制所有快照必須保存 undo_retention所規定的時間。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章