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: Uncommitted Data

Re: Uncommitted Data

From: <xhoster_at_gmail.com>
Date: 16 Jun 2005 16:08:35 GMT
Message-ID: <20050616120835.702$L3@newsreader.com>


agarwalp_at_eeism.com wrote:
> The only thing i am not clear about is, If the data files contains
> following dirty blocks

A data file cannot contain dirty blocks. A dirty block is one that exists in memory in a different state than it exists on disk.

>
> update table set col1=2 where col1=3
> update table set col1=4 where col1=5
> Check point
> update table set col1=6 where col1=7
>
> Database crashes
>
> Then i believe with the checkpoint information in the Log file only
> first two will be rolled forward

They are already on disk in the datafile, so there is nothing to roll forward.

Rolling forward is what you do when the log file has newer data than the data file, because the crash happened before the change was written to the data file. That isn't the case with the first two updates.

> and the third will be lost since it is
> niether followed by commit or checkpoint.

Commits and checkpoints do entirely different things. Dirty/clean and committed/uncommitted are independent concepts. Whether the third one gets rolled foward or not depends on whether the redo log was flushed before the crash. This flushing does not only happen for checkpoints and commits.

> if the above is true, then what happens during the crash whick makes
> redo log roll forward the dirty blocks even though they are in the
> datafiles.

That is a nonsensical question.

Xho

-- 
-------------------- http://NewsReader.Com/ --------------------
Usenet Newsgroup Service                        $9.95/Month 30GB
Received on Thu Jun 16 2005 - 11:08:35 CDT

Original text of this message

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