Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: DWBR and dirty buffers
Note in-line
-- Regards Jonathan Lewis http://www.jlcomp.demon.co.uk/faq/ind_faq.html The Co-operative Oracle Users' FAQ http://www.jlcomp.demon.co.uk/seminar.html Public Appearances - schedule updated Jan 21st 2005 "Radoslav Rusinov" <radoslav.rusinov_at_gmail.com> wrote in message news:58aa0927.0502250359.6e90b578_at_posting.google.com...Received on Sat Feb 26 2005 - 03:09:53 CST
> "Jonathan Lewis" <jonathan_at_jlcomp.demon.co.uk> wrote in message
> news:<cvmiji$c84$1_at_hercules.btinternet.com>...
>> Don't forget to allow time for the checkpoints
>> to complete, otherwise blocks that are due to
>> be written for the checkpoint still be reported
>> as dirty.
> Yes, I try but the result still the same even after 10 minutes on an
> idle database.
> -- 1. create table, inserting 600 000 rows and COMMIT
> -- 2. force checkpoint
> SQL> alter system checkpoint;
> System altered
> Executed in 2.266 seconds
>
> -- 3. checking dirty block by status
> SQL> SELECT status,COUNT(*) DIRTYBLKS FROM v$bh WHERE dirty='Y' and
> objd=39419
> 2 GROUP BY status;
> STATUS DIRTYBLKS
> ------ ----------
> xcur 3400
>
> Executed in 0.063 seconds
>
> -- after 10 minutes
> SQL> SELECT status,COUNT(*) DIRTYBLKS FROM v$bh WHERE dirty='Y' and
> objd=39419
> 2 GROUP BY status;
> STATUS DIRTYBLKS
> ------ ----------
> xcur 3400
>
> Executed in 0.078 seconds
>
Interesting - possibly 'alter system checkpoint' has changed it's meaning to match the concept of the running checkpoing: i.e. don't clean the buffer, completely only it up to the limit set by the checkpoint_timeout/MTTR settings. (I doubt this is would be true, but it's possible). Do you get the same if you use switch logfile instead of checkpoint ?
>> You may find that a few blocks seem to stay as
>> xcur - check the objd (data object id) for these,
>> it will probably be about 4 billion - meaning it's
>> from a rollback segment.
> Is this meant that these 3400 blocks are for rolback segments. They
> should keep pre-imaged data for this object and because that these
> blocks belongs to the same object.
Your 3400 blocks are from the table, as you selected them by objd (39419). The reference to rollbacks is there because no database is completely idle due to background processing, so there are always a few changes going on that manage to keep making a few rollback blocks dirty. Rollback blocks have objd of around 4 billion in v$bh
![]() |
![]() |