Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: Does a commit cause a checkpoint?
Ryan wrote:
> if that is the case, then my question isnt as bad as the flamer suggested.
The question was not bad. It however does indicate a gap in the understanding that might be clarified by reading the document identified in that specific response.
>
> If LGWR and DBWR are independent processes, how does oracle ensure that if
> its being written by DBWR that it has already been written by LGWR.
>
Interprocess communications using shared memory, semaphores and IPC pipes. Techniques hto do this have been available for over 20 years.
> by my understanding of recovery and redo logs, this has to be the case.
> anyone have any details?
> "Brian Peasland" <oracle_dba_at_remove_spam.peasland.com> wrote in message
> news:3EF1D453.FFF4306B_at_remove_spam.peasland.com...
Since you can not seem to access the document, let me reproduce the relevant section for you, with comments:
>>>>>>>>>>>
LGWR writes one contiguous portion of the buffer to disk. LGWR writes:
A commit record when a user process commits a transaction
Redo log buffers
Every three seconds
When the redo log buffer is one-third full
When a DBWn process writes modified buffers to disk, if necessary
Note:
Before DBWn can write a modified buffer, all redo records associated with the
changes to the buffer must be written to disk (the write-ahead protocol). If
DBWn finds that some redo records have not been written, it signals LGWR to
write the redo records to disk and waits for LGWR to complete writing the redo
log buffer before it can write out the data buffers.
<<<<<<<<<<<<<<
The NOTE in the Concepts manual states BEFORE the DB writer can write a modified buffer, ALL relevant REDO records MUST have been written to the disk.
Even though DBWn and LGWR can be writing to the disk at the same time, they are NOT writing the same SCN info at the same time - LGWR has finished before DBW can start. (And, hopefully, they are not writ9ng to the same disk at the same time - major possible delays due to head contention which would be entirely the DBA/SA responsibility.)
This is one reason why people have considered using solid state disk for the log writer - see white papers at http://www.oaktable.net.
Also note - in the document, about 3 paragraphs further is a discussion about WHEN the log writer writes to disc relative to a commit, and a discussion about grouping transations/commits due to volume & high activity.
Bye! Received on Thu Jun 19 2003 - 17:50:02 CDT
![]() |
![]() |