Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: log_checkpoint_timeout : what is exactly the meaning ?
Richard,
Thanks for the correction. I think in future I'll avoid making
any comments about Oracle behaviour when I've just
spent 22 hours on a plane.
Vigi98,
The choice of FIRST is deliberate and correct. Looking
at it another way around - when you first change a data
block it goes onto a 'checkpoint queue' waiting to be
written to disc. This queue is a linked list of buffer headers,
protected by a latch. Once a buffer header is in the
list, its position is not changed regardless of how many
times the content of the block change. Setting the
checkpoint timeout to 900 seconds ensures that the
length of the queue is never allowed to get too long -
any block that joined the queue more than 900 seconds
ago will have been written back to disc.
Alternatively - if I look for a piece of the redo log that I generated over 900 seconds ago, then the block that I applied it to has definitely been written to disc at some time in the interim.
-- Jonathan Lewis http://www.jlcomp.demon.co.uk Author of: Practical Oracle 8i: Building Efficient Databases Next Seminar - Australia - July/August http://www.jlcomp.demon.co.uk/seminar.html Host to The Co-Operative Oracle Users' FAQ http://www.jlcomp.demon.co.uk/faq/ind_faq.html Vigi98 wrote in message <3cf73625$0$247$626a54ce_at_news.free.fr>...Received on Fri May 31 2002 - 04:03:15 CDT
>
>"Richard Foote" <richard.foote_at_bigpond.com> wrote in message
>news:%6EJ8.1685$Hj3.5395_at_newsfeeds.bigpond.com...
>> Just a slight clarification to Jonathan's post.
>>
>> "... you are telling Oracle (not) to ensure that no block may remain
>> unwritten if its first change occurred more than 900 seconds ago" (Note
>the
>> elimination of the "(not)" after Oracle correctly changes the meaning of
>the
>> sentence)
>>
>> Cheers
>>
>> Richard
>
>Thanks for that precision, but the sentence remains unclear for me. Isn't
it
>"you are telling Oracle to ensure that no block may remain unwritten if its
>LAST change occurred more than 900 seconds ago" ?
>
>
>>
>> "Jonathan Lewis" <jonathan_at_jlcomp.demon.co.uk> wrote in message
>> news:1022789937.15172.0.nnrp-12.9e984b29_at_news.demon.co.uk...
>> >
>> > The answer depends on your version of Oracle.
>> > Recently the meaning has changed - Oracle uses
>> > an incremental checkpoint strategy to ensure that
>> > the I/O subsystem is not flooded so ferociously at
>> > end of log file. The log_checkpoint_interval and
>> > log_checkpoint_timeout had their implementation
>> > changed so that they act as lag events, rather
>> > than triggering a checkpoint.
>> >
>> > For log_checkpoint_timeout=900, you are telling
>> > Oracle not to ensure that no block may remain
>> > unwritten if its first change occurred more than
>> > 900 seconds ago.
>> >
>> >
>> > --
>> > Jonathan Lewis
>> > http://www.jlcomp.demon.co.uk
>> >
>> > Author of:
>> > Practical Oracle 8i: Building Efficient Databases
>> >
>> > Next Seminar - Australia - July/August
>> > http://www.jlcomp.demon.co.uk/seminar.html
>> >
>> > Host to The Co-Operative Oracle Users' FAQ
>> > http://www.jlcomp.demon.co.uk/faq/ind_faq.html
>> >
>> >
>> >
>> > vigi98 wrote in message ...
>> > >Hi all,
>> > >
>> > >In my init.ora, the only two parameters about checkpoints are the
>> > >following :
>> > >
>> > >log_checkpoint_timeout = 900
>> > >log_checkpoints_to_alert=true
>> > >
>> > >Shouldn't I observe in the alert file the beginning of a new
>> > >checkpoint every 15 minutes ? Apparently checkpoints behave as if I
>> > >had not set the log_checkpoint_timeout, i.e. checkpoints are launched
>> > >only when a redo log switch occurs. As my redo logs are 200Mb wide,
>> > >there can be a very long time before a redo log switch occurs, in case
>> > >of low traffic on the database.
>> > >
>> > >Have I misunderstood the signification of this parameter (I mean
>> > >log_checkpoint_timeout ) ?
>> > >
>> > >Thanks in advance.
>> >
>> >
>>
>>
>
>