Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> DWBR and dirty buffers
posting again...
It appears that dirty buffers for a specific object exists in the buffer cache even after
- switching through all online redo logfiles (twice) - alter system checkpoint - select * from t1
is done. See example...
Oracle9i 9.2.0.6 (64 bit)
Solaris 2.9
8k block size
fast_start_mttr_target = 15
db_cache_size= 218103808
3 online redo logfiles (100 MB each)
db in archivelog mode
only the following session active (no other users).
SO FAR, SO GOOD.
6. update t1 set c3=sysdate; 7. commit; 8. SELECT COUNT(*) DIRTYBLKS FROM v$bh WHERE dirty='Y' and objd=6708;DIRTYBLKS
3449
9. alter system checkpoint;
-- to force the DBWR to flush the dirty buffers from the cache to disk
10. SELECT COUNT(*) DIRTYBLKS FROM v$bh WHERE dirty='Y' and objd=6708;
DIRTYBLKS
2410
11. select * from t1;
-- due to delayed block cleanout (?)
12. SELECT COUNT(*) DIRTYBLKS FROM v$bh WHERE dirty='Y' and objd=6708;
DIRTYBLKS
3239
13. alter system checkpoint; 14. alter system switch logfile; (6 times) 14. SELECT COUNT(*) DIRTYBLKS FROM v$bh WHERE dirty='Y' and objd=6708;DIRTYBLKS
2410
Why are the dirty blocks not flushed to disk?
Thanks for any pointers. Received on Wed Feb 23 2005 - 20:26:45 CST
![]() |
![]() |