Oracle Undo 的配置

cow977發表於2011-03-03
配置AUM,要先設定初始化引數unod_management,有兩個取值:
AUTO:表示採用AUM來管理undo
MANUAL:表示採用MUN來管理undo,要手工建立rollback segment
 
在AUM下,只要建立undo表空間,設定undo_tablespace初始化引數即可。
 
create undo tablespace Name datafile FileName size XM autoextend on;
alter system set undo_tablespace=Name;
 
在AUM下,如果在設定undo_tablespace時,指定了某個不存在的undo表空間,則例項啟動時報錯;
如果沒有設定undo_tablespace,則系統會查詢第一個可用的undo表空間;
如果沒有找到undo表空間,則使用位於系統表空間的rollback segment。
 
AUM採用的是事務繫結undo segment的演算法:
首先嚐試將每個undo segment繫結一個事務,即每個undo segment上只被一個事務使用;
如果不能發現完全空閒的(也就是沒有與任何事務繫結)undo segment,則嘗試將其他離線的undo segment聯機;
如果沒有可用的undo segment進行聯機,嘗試建立一個新的undo segment;
如果由於沒有可用空間,不能建立新的undo segment,則事務繫結演算法會嘗試找最早被使用的那個undo segment,這種情況下,不同的多個事務才會在一個相同的undo segment裡同時執行。
 
Undo Segment的收縮,由SMON完成:
每12小時會收縮一次,刪除狀態為idle狀態的extents;
前臺進行DML而需要undo時,發現空間不夠,則會喚醒SMON進行一次收縮。

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

相關文章