在創建新的數據庫時,Oracle將在System表空間中建立一個默認的System回退段。System回退段只應當用於存放Oracle系統事務的回退記錄,任何用戶事務都不應當使用System回退段。
#在創建數據庫之後,應當立即在System表空間中建立一個非System回退段,因為在數據庫創建後,用戶需要首先創建其他的表空間和回退段。這時,這些操作的回退記錄將保存在這個非System回退段中,而不會保存在System回退段中。在其他的表空間和回退段建立完畢後,可以將System表空間中的這個非System回退段刪除。
實例啟動時獲取的回退段數目由多種方法確定:
·實例所獲取的公用回退段數目由transaction,transaction_per_rollback_segments指定
·實例所獲取的私有回退段目和名稱由rollback_segments決定。
#此外,一個實例所允許使用的最大回退段數目max_rollback_segments=ceil(transaction/transaction_per_rollback_segments)。
在一個實例中,如果同時使用公用回退段和私有回退段,實例首先獲取由rollback_segments參數指定的私有回退段,然後再通過ceil(transactions/transactions_per_rollback_segments)計算的值與已獲取的私有回退段數目的差額需要通過獲取公有回退段來補償。
·創建私有回退段
create rollback segments XXX
tablespace XXX
storage (initial XXX
next XXX
optimal XXX
pctincrease 0
minextents XXX
maxextents XXX )
·創建公有回退段
create public rollback segments XXX
……
#online offline
·alter rollback segment XXX online/offline
·利用參數文件(僅限於私有回退段)
rollback_segments
將私有回退段添加入該參數,重啟後,則該回退段的狀態將永久性為onlne
沒有寫入參數文件的回退段在數據庫重新啟動後,再次重新啟動後,變為offline
而公共回退段將不受參數文件的限制
在回退段中,段的頭部存儲正在使用的回退段事務的信息,一個事務只能使用一個回退段來存放它的回退信息,而一個回退段可以存放多個事務的回退信息。