ORACLE的检查点(checkpoint)
8.1 什么是checkpoint
checkpoint是数据库的一个内部事件,检查点激活时会触发数据库写进程(DBWR),将数据缓冲区里的脏数据块写到数据文件中。
8.2 checkpoint主要2个作用:
1)保证数据库的一致性,这是指将脏数据写出到硬盘,保证内存和硬盘上的数据是一样的。
2)缩短实例恢复的时间,实例恢复要把实例异常关闭前没有写到硬盘的脏数据通过日志进行恢复。如果脏块过多,实例恢复的时间也会过长,检查点的发生可以减少脏块的数量,从而减少实例恢复的时间。
8.3 checkpoint分类
完全检查点 full checkpoint
增量检查点 incremental checkpoint
局部检查点 partial checkpoint
查看检查点:select file#,checkpoint_change#,last_change# from v$datafile;
8.3.1 完全检查点工作方式:记下当前的scn, 将此scn之前所有的脏块一次性写完,再将该scn号同步更新控制文件和数据文件头。
可以引起完全检查点的四个动作
a)正常关闭数据库:shutdown immediate
b)手动检查点切换:alter system checkpoint;
c)日志切换:alter system switch logfile;
d)数据库热备模式:alter database begin backup;
验证以上概念可以做一下alter system checkpoint,然后观察v$datafile和v$datafile_header中scn被更新。
另外,我们可以研究一下日志切换:alter system switch logfile;
————————————————
版权声明:本文为CSDN博主「嶶風」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/s630730701/article/details/51986556/