Oracle FAQ Your Portal to the Oracle Knowledge Grid

Home -> Community -> Usenet -> c.d.o.server -> Re: What's in a Rollback Segment?

Re: What's in a Rollback Segment?

From: Ricky Sanchez <>
Date: Mon, 22 Jul 2002 03:28:39 GMT
Message-ID: <>

A couple of minor corrections.

Oracle stores logical representations of the physical changes to a block in the form of "undo vectors". Basically they are logical records describing bytes and offsets of change within the block. Sometimes a row insert, delete or modification can cause some shuffling of other row or index key or cluster or whatever data in a block, so all changes to the byte image of a block get represented. I only point this out because it might be misleading to suggest a column or row is stored, per se.

Really, it is just a logical description of byte level changes to a block, cobbled up in an orderly "record" form. Conceptually similar to the notion of a redo record, only undo instead of redo. This is called "physiological logging" and is described in Jim Gray and Andreas Reuter's "Transaction Processing: Concepts and Techniques".

Furthermore, block cache and transaction layer changes also take place, so all that stuff gets "vectored" as well. In addition, undo to the rollback segment itself gets written, plus changes to the rollback segment header block (transaction table) have to be tracked in the rollback segment, albeit in different blocks than the target object blocks. As you might imagine, rollback is a bunch of work, so try not to do it too often. ;-)

Also, the reuse of a rollback segment block is limited to situations where at least several hundred bytes are still available. There is a specific number of bytes that limit this, but the precise value is not important. Just know that some space conservation takes place when the opportunity presents itself.

> Didn't want to get complicated at this stage, but just answer the question
> as posed about 'whole block-whole row or just-column'.
> Regards
Received on Sun Jul 21 2002 - 22:28:39 CDT

Original text of this message