Re: Unix Filesystem vs Raw Partition

From: Roderick Manalac <rmanalac_at_oracle.com>
Date: 11 Oct 1994 02:14:42 GMT
Message-ID: <37csei$eou_at_dcsun4.us.oracle.com>


lparsons_at_world.std.com (Lee E Parsons) writes:
|> Paul Zola <pzola_at_us.oracle.com> wrote:
|> >
|> >The Oracle RDBMS uses one of these two system calls to guarantee that
|> >the data associated with a transaction has "hit the disk" by the time
|> >that the COMMIT returns.
|>
|> Will the entire system be synced on each commit? I would have thought
|> that this would have had performnce implications. I had always figured
|> that all writes to the redo log would be backed by a O_SYNC and the
|> entire DB would be synced at a checkpoint. This is the least amount of
|> syncing I can see that still ensures integrity. A sync only at commit
|> would still leave you at risk if uncommited data had been flushed out
|> of the SGA and writes to the redo logs was still pending.
|>
|> Any white papers on how this works? BTW, You should have answered
|> this on Monday. I would have been too busy working then to bother
|> you. :-}

To maybe explain things better:
All Oracle files are open()ed with the O_SYNC flag set on most Unix boxes (there may always be differences on how one writes through cache under the various Unix implementations).

LGWR only flushes out the log buffer to the redo logs at commit time. DBWR dumps dirty blocks to the data files when it needs free buffers in the Oracle buffer cache or at log checkpoint time (which sort of explains why the database needs to be down in order to take a valid cold backup and not just quiescent).

Hopefully I've got that all correct.

Roderick Manalac
Oracle Corporation Received on Tue Oct 11 1994 - 03:14:42 CET

Original text of this message