|
|
原帖由 liuguanyun 于 2003-3-28 14:22 发表 ![]()
A log switch is
the event during which LGWR stops writing to one online redo log group and starts writing
to another. The two events are often connected: an instance takes a checkpoint at each
log switch by default. A log switch, by default, takes place automatically when the current
online redo log file group fills.
每有一个checkpioint触发,则会把这个checkpioint和上一个checkpioint点间dirty cache中的
数据写到datafile中,而log swith 一个会触发checkpioint,所以在没有把此checkpioint点和上
一个checkpioint点的数据写完到datafile 前,下一个redo log B 是不可用(CHECK POINT NOT COMLETE)
这是我的一点看法。
9i,10g 应用了checkpoint queue的机制。。。。没有8i那样完全检查点巨大的IO冲击。。。
logfile switch 将触发incremental checkpoint,ckpt进程通知DBWR进程写数据,但DBWR启动并不代表会写数据,必须满足一定的条件才会写datafile...
logfile switch 并不等待checkpoint, 如A切换到B后,B为current,如果A所对应的脏数据块还没有写入disk,那么A为active,如果轮询一圈后仍然A为active,就会hang住。 |
|