ORACLE UNDO 機制

UNDO作用:

1、回滾,rollback時

2、構造CR塊,提供讀一致性

3、回滾,實例恢復的時候


undo表空區的狀態:

1、free  可以使用的回滾段的區

2、active  表示此區中有活動的未提交的事務塊

3、inactive 表示此區中的事務已經提交,但未過undo_retention默認900秒時間,原則上ORACLE不會覆蓋他,但在UNDO空間不足,壓力大時也會被覆蓋。

4、expired  過了undo_retention時間的區


alter tablespace undotbs1 retention guarantee

此參數默認爲noguarantee,select TABLESPACE_NAME,RETENTION from dba_tablespaces;可查

修改成guarantee表示如果我們希望或想要求inactive區保證在900秒時間內不會被覆蓋,只有過了retention時間變成了expired狀態纔可以被覆蓋。


UNOD使用順序:

先找free區空間,如果不夠ORACLE會嘗試擴容UNDO表空間,如果不夠或不能擴容,則會嘗試覆蓋使用expired狀態的區空間,如果expired也不夠,則會嘗試覆蓋使用inactive狀態的區空間,如果設置了guarantee參數不能使用此狀態空間,或者inactive空間也用完了,事務則會被掛起。

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