首页 > 应用开发 > IT综合 > CKPT & SCN
Checkpoint是一个数据库事件,用来同步所有的datafile,controlfile和redo logfile。当发出ckpt时(回顾什么时候oracle会发出ckpt呢),ckpt会将检查点时刻的scn写入到控制文件和数据文件头部,同时会促使dbwr进程将data buffer中的所有的脏数据写入到数据文件中。而dbwr进程工作时又会促使lgwr写log buffer中的日志数据到redo logfile中。所以当发出检查点时CKPT,DBWR和LGWR同时工作,三种文件的scn完全一致,从而能保持完全同步。
[@more@]平时的commit操作只会促使LGWR写redo日志,DBWR只有在检查点时刻才会将脏缓冲区数据写入到数据文件。那什么时候oracle会发出ckpt呢?见如下:
1、log switch时;
2、close database时;
3、manual ckpt时(alter system checkpoint);
4、parameter value(FAST_START_MTTR_TARGET)。
SCN(system change number)是用来标识database change的唯一标识号,递增的数值。9i中可查询system_flashback.get_system_change_number来获取scn,10g中可直接查询v$database中的current_scn来获取scn。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/38542/viewspace-918634/ ,如需转载,请注明出处,否则将追究法律责任。