Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: Why create a new extent in rollback segment when the next is used and the one after that is free

Re: Why create a new extent in rollback segment when the next is used and the one after that is free

From: Mark D Powell <Mark.Powell_at_eds.com>
Date: 19 Oct 2005 15:43:29 -0700
Message-ID: <1129761809.940120.320920@o13g2000cwo.googlegroups.com>


>> Why is the mechanism not as follows: try the next allocated extent, if
it is in use, try the next allocted extent after that etc. and if there

is really no free allocated extent free, only then allocate a new extent <<

Because rollback segments, RBS, are used sequentially to the end and then loop back to the beginning. Roughly speaking the data is overlaid in the order it was first written. There is only one current extent. When it is full Oracle moves to the next. If the next extent is busy then it cannot be overlaid so Oracle inserts another extent in the segment. Logically a next extent can never be busy until Oracle has filled the segment and looped back around to the beginning at least once. A snapshot too old will only happen when Oracle has overlaid data in the RBS and then an attempt is made to read the no longer available image. In theory a larger segment would still hold the data, but the reality is there are practical limits to how much undo data your system needs to support.

The Concepts manual has a chapter that provides good detail of how RBS segments work.

Oracle 10g provides an undo retention guarentee parameter, but I do not recommend using it unless necessary for flashback database support.

HTH -- Mark D Powell -- Received on Wed Oct 19 2005 - 17:43:29 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US