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: Data Buffer Cache

Re: Data Buffer Cache

From: Richard Foote <richard.foote_at_bigpond.com>
Date: Wed, 11 Sep 2002 10:59:26 +1000
Message-ID: <rqwf9.29176$g9.84229@newsfeeds.bigpond.com>

Hi All

I know !!

Firstly from a recovery point of view, indeed it is not possible for DBWR to write down something to disk that is not recorded in the redo logs. If the DBWR is "woken" up, it wakes up the LGWR to flush it's current contents down to disk.

From a rollback point of view, it matters not if the undo block is in memory or disk. A rollback message requires Oracle to first access the changed data block (and go to disk if not currently cached). It then accesses the rollback segment header of the rollback segment that contains the undo in question (details of which are stored in the data block header) and go to disk if not currently in memory. Then it needs to retrieve the particular undo block referenced in the header to reconstruct the data block and apply the rollback (and go to disk if not currently cached).

This process is then repeated for all changed blocks. So when Oracle requires a particular undo block, it's like any other block. It looks for it first in memory, if Oracle can't find the bugger, it goes to the O/S to retrieve it.

Make sense ?

Cheers

Richard
"Michael J. Moore" <hicamel_x_the_spam_at_attbi.com> wrote in message news:R5sf9.381236$me6.43420_at_sccrnsc01...
> Good question. They don't exactly go into details in the Concepts manual;
> I would assume that PMON must signal DBWn to write undo out to the
> disk. There must also be a rule that DBWn must write redo buffers before
 it
> can
> write buffers to the database files.
> These are just my guesses. I hope somebody who KNOWS will respond.
> Mike
>
> "Pinaki" <bpinaki123_at_indiatimes.com> wrote in message
> news:96eccafc.0209100807.5c488661_at_posting.google.com...
> > Hello ,
> >
> > I am working in Oracle 8.1.7
> > I am issuing a update statement..."Update tab set x=y where z='abc'
> > from a session.I do not commit or rollback and no further statements are
 fired
> > from session for 10-15 mins...
> > From what I understand the previous image is stored in the Rollback
 segment and
> > redo information is stored in the Redo log buffer.
> > The DBWn meanwhile starts writing the dirty buffers to the
 disk(in
> > case of any event such as a log switch etc.).At this point of time some
 of
 my
> > data is in the buffer cache and some in the disk.Now I issue a rollback
 from my
> > session.How does oracle handle this situation and take me back to a
 position as
> > if nothing has happened at all...
> >
> > Thanks,
> > Pinaki
>
>
Received on Tue Sep 10 2002 - 19:59:26 CDT

Original text of this message

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