| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Re: Logging Rollback Enteries
Thanks Sybrand.
i'm afraid the 3rd question of not put completely, what i meant by that was:
At the time of recovery why can't oracle use redo log to rollback uncommited transactions without first rolling forward the redo log into the the rollback segments and then rolling back the uncommitted trans using these rollback segments.
Thanks in anticipation.
ATTA
In article <38969b11.9423799_at_news.demon.nl>,
postbus_at_sybrandb.demon.nl (Sybrand Bakker) wrote:
> On Tue, 01 Feb 2000 07:33:16 GMT, atta707_at_my-deja.com wrote:
>
> >hi all,
> >
> >this message would get a little longer than usual, but i think
without
> >the excerpt it won't make sense. so please bear with me :)
> >
> >right at the outset an excerpt from the Oracle8 doc:
> >
> >/*
> >Logging Rollback Entries
> >
> >Rollback entries change data blocks in the rollback segment, and
Oracle
> >records all changes to data blocks, including rollback entries, in
the
> >redo log. This second recording of the rollback information is very
> >important for active transactions (not yet committed or rolled back)
at
> >the time of a system crash. If a system crash occurs, Oracle
> >automatically restores the rollback segment information, including
the
> >rollback entries for active transactions, as part of instance or
media
> >recovery. Once the recovery is complete, Oracle performs the actual
> >rollbacks of transactions that had been neither committed nor rolled
> >back at the time of the system crash.
> >*/
> >
> >here come my questions now:
> >
> >What's the format of a normal Redo Entry in the redo log file?
> >Why do we have to write rollback segments to redo log?
> >Why can't rolling back done from the redo log itself?
> >
> >Regards,
> >
> >
> >-:) ATTA
> >
> >
> >Sent via Deja.com http://www.deja.com/
> >Before you buy.
>
> 1 the redo entry consists of a SCN (system commit number, also
> recorded in the controlfile) and the changed bytes
> 2 because writes to the rollback segments (as any other write) are
> processed by DBWR. 'Dirty' blocks are cached in the buffer pool and
> written out only when a certain number is dirty. This allows to
> piggyback transactions. If a block is changed multiple times it will
> be written out once. Because these writes are cached, writes to the
> redo log are instantaneous, immediately and concurrently. The redo log
> is written sequentially ONLY.
> 3 this means you can't rollback from the redo log as you would need to
> search sequentially for the correct data. This is not an issue for
> recovery: because the SCN is recorded in the control file and in all
> relevant database files and in the redolog file, recovery would have
> to search only for the oldest SCN not in the database.
> Also, rolling back from the redo log would create an obvious
> bottleneck in LGWR.
>
> Hth,
>
> Sybrand Bakker, Oracle DBA
>
Sent via Deja.com http://www.deja.com/
Before you buy.
Received on Wed Feb 02 2000 - 00:01:21 CST
![]() |
![]() |