注意里面的一段话:
/* logfile switch 日志文件切换引起的是一种slow慢的完全检查点,它不同于alter system checkpoint(ASC),
ASC要求的脏块写出和控制文件及数据文件头更新时要立即完成的,也就是说当alter system checkpoint语句返回"System altered."
后以上工作都已经完成了;而alter system switch logfile或者自然的日志切换引发的是一种慢的完全检查点,
它在返回"System altered"时不要求写脏块等工作必须已经完成
*/
上面这段话的意思是说alter system switch logfile命令发出后,数据库不是立即要求写脏块的,既然没有立即写脏块,那控制文件及数据文件头也就没有更新了。所以你发出alter system switch logfile命令后,马上查询视图V$DATABASE和V$DATAFILE_HEADER,看到的信息可能跟之前的一模一样。这时,要么等几分钟再查询那两个视图,要么按照Maclean Liu文章中提到的操作。或许就可以看到不一样的CHECKPOINT_CHANGE#了。