一、前言
Oracle专家对redo内部进行了深入的剖析,以下是对各个大师文章的总结。
二、概念
Redo记录了数据块的变化,其中也包括undo的变化。理解redo需要先理解以下几个概念:
1、change vecotors:
一个数据块从一个状态变成另一个状态,每个数据块都有一个版本信息,其 组成是。
2、Redo records:
是由多个change vectors组成一个redo records,他主要记录数据库的变化,比如添加一行记录,将涉及到undo数据块的改变,数据块数据改变等。
三、基本结构
1、Redo Log Files:
Block 0: File Header
Block 1: Redo header
Block 2以后都是记录了 Redo Records
2、Redo Records: Redo Record Header + Change 1+ Change 2 + .......
四、工作原理
进程在修改数据块之前(change vectors),必须执行以下操作:
1、创建change vectors描述改变属性
2、undo块变化信息将产生change vectors(注意不是每个变化都被undo保护)
3、许多change vectors组成一个redo record,redo record是在进程的PGA中创建
4、将redo record拷贝到log buffer中
5、buffer cache中对应的数据块也发生变化
以上是通常情况下处理流程,但也有例外, 如sqlloader的direct mode,direct mode insert, nologging操作等
Redo records记录顺序是通过SCN和SUBSCN来控制的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/354732/viewspace-607394/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/354732/viewspace-607394/