[关闭]
@shjanken 2014-07-28T06:09:50.000000Z 字数 410 阅读 1052

ORACLE CHECKPOINT 2: 意义和作用

oracle 51cto 学习笔记


相关概念

  1. oracle 在崩溃的瞬间,有些脏快对应的事务已经的提交,有些还未提交。
    • 对于已经提交了的事务对应的脏快,不可以丢失,需要通过 redo log 来恢复脏快。
    • 未提交事务的脏快也可以丢失。( 对脏快的修改等于没发生过 )

ORACLE 实例恢复的过程

oracle 实例崩溃之后,重启 oracle 将会进行实例恢复。

  1. oracle 会在控制文件中查找check point 进程储存在控制文件中的最早被修改的数据块的日志地址。(由于事务已经提交,所以一定存在对应的 redo log) , 未挂在 check point 链上的数据块都已经写入了磁盘,无需关心。

  2. 以该日志为起点,前滚至 current 日志中的最后一条日志.

  3. 实例恢复时,从起点开始应用日志,可能重新构造出包含未提交事务的脏快。oracle 会将未提交事务进行回滚。

综上所述, 检查点队列是用来确定实例恢复所需要应用日志的起点

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注