CKPT
用来减少数据库恢复过程中所花的时间。
Ckpt更新数据文件头 和控制文件。通知dbwr进程产生一个检查点,dbwr进程将buffer cache中的脏数据写入到数据文件中。
如何产生检查点呢?
有三种方法:
Alter system checkpoint
Alter system switch logfile
Dbwr写脏数据块
这里必须要提高一个SCN概念。系统改变号。
Select dbms_flashback.get_system_change_number from dual;
系统的SCN号,存在控制文件中。 Select checkpoint_change# from v$database;
数据文件的SCN号,存在控制文件中。Select checkpoint_change# from v$datafile;
Start SCN 存在各个数据文件头中。 意义在于数据库启动过程中是否需要media recovery Select checkpoint_change# from v$datafile_header;
End scn 存在存在控制文件中。 意义是用来验证数据库启动过程中是否需要instance recovery select name,last_change# from v$datafile
当system checkpoint scn=start scn=datafile checkpoint scn 启动数据库的时候不需要media recovery。如果三者不同,需要介质恢复
当end scn 不等于start scn 需要实例恢复
当start scn 大于system checkpoint scn说明控制文件不是当前的控制文件。也就是说这个控制文件太旧。需要采用using backup controlfile 来做recovery。这就是为什么需要system checkpoint scn的原因之一。
CKPT检查点的作用一是建立数据的一致性。二是为数据库作一个标记。可以恢复的最大限度。
由它来触发DBWR,把数据写入datafile。再由dbwr触发lgwn 把SCN写入到datafile和control file
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/607244/viewspace-750566/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/607244/viewspace-750566/