Oracle检查点机制

Oracle数据库每三秒创建一个SCN,代表检查点间隔。CKPT进程在每个检查点产生新的SCN并记录到控制文件,DBWn进程随后将提交的数据块写入数据文件,确保日志条目持久化。这一机制保证了数据库的一致性,并用于实例恢复。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

检查点是 Oracle 数据库内部一个重要的驱动机制。Oracle 按每三秒中把数据库时间分成连续的间隔,每个三秒钟间隔用一个十进制的数字序列唯一表示,这个数字序列就是 SCN(system change number),一个SCN 就是一个检查点间隔,唯一代表了数据库内的一个三秒钟时间段。
在上一个 SCN 间隔(三秒钟)结束、新的三秒钟间隔开始时,检查点进程(CKPT)就会产生新的检查点信息 SCN,并在第一时间把新的 SCN 在控制文件记录下来,之后,CKPT 就会一直等待,等待三秒钟结束这一时间点的到来,这个时间点称为完全检查点,在完全检查点时,CKPT 会触发数据库写进程(DBWn),知 DBWn 把当前检查点队列中凡是已标记为提交状态的数据块从缓存高速缓冲区读出并写入数据文件中,DBWn 在执行之前会首先触发一次日志写,以确保写入数据文件的提交过的数据块所对应的重做条目都已持久化记录在联机重做日志文件中。在 DBWn 把检查点队列记录的所有已提交的数据块全部成功写入数据文件后,CKPT 会用控制文件记录的 SCN 把数据库全部的数据文件头的 SCN 字段值刷新一遍,刷新完成后,每个数据文件头的 SCN 字段值和控制文件保持了一致,这就是一致性数据库的标志。在 Oracle内部,检查点机制在实例启动后就持续不间断地向前推进,Oracle 设计检查点机制的唯一目的就是为了执行实例恢复。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值