说明
检查点系列相关文章地址:
Oracle检查点(一)检查点(Checkpoint)概念介绍: http://blog.itpub.net/69992972/viewspace-2787595/
Oracle检查点(二)检查点性能: http://blog.itpub.net/69992972/viewspace-2787789/
Oracle检查点(三)增量检查点四个关键参数介绍: http://blog.itpub.net/69992972/viewspace-2787943/
Oracle检查点(四)检查点对redo日志的影响和redo日志大小设置建议: http://blog.itpub.net/69992972/viewspace-2788206/
Oracle检查点(五)创建并利用Statspack定位检查点故障: http://blog.itpub.net/69992972/viewspace-2788418/
什么是检查点?
检查点( Checkpoint)是一种将内存中的已修改数据块与磁盘上的数据文件进行同步的数据库事件。通过检查点,Oracle可以确保了被事务(transaction)修改过数据可以被同步至磁盘。事务提交的时候不会将已修改数据块同步写入磁盘上。
检查点有两个用途:
1) 保证数据的一致性
2) 实现更快的数据库恢复
检查点是如何做到快速恢复?
由于直至检查点生成时所有的数据库更改均已记录在数据文件中,因此无需再应用先于检查点的redo日志。检查点必须确保高速缓存中所有已修改的缓冲数据均已经写入到相应的数据文件中,以避免在发生崩溃(实例或磁盘故障)时可能会出现的数据丢失。
需要知道的一些知识点( 重要!)
1. Oracle 只有在以下特定条件下才会将脏缓存写入磁盘:
1)shadow process需要扫描的数据块个数超过db_block_buffers参数的四分之一
2)每三秒钟
3)生成一个新检查点时
2. 检查点通过以下五种类型的事件来产生:
1)每次切换redo日志文件时
2)达到LOG_CHECKPOINT_TIMEOUT的延迟时
3)当前redo日志文件中已存在了大小为 (LOG_CHECKPOINT_INTERVAL* OS块的大小(bytes))的数据
4)直接由ALTER SYSTEM SWITCH LOGFILE命令实现
5)直接使用ALTER SYSTEM CHECKPOINT命令实现
3. 在检查点期间会发生以下操作:
1)DBWR 将缓冲区缓存中所有已修改的数据库块写回到数据文件中
2)检查点进程 (ckpt) 更新所有数据文件的文件头,以反映上一个检查点发生的时间 (SCN)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69992972/viewspace-2787595/ ,如需转载,请注明出处,否则将追究法律责任。