oracle checkpoint

Oracle checkpoint是什么?

Oracle检查点:检查点是一个事件,是一些动作

SCN则是oracle数据库里的时钟,是吗?


SCN,CHECKPOINT,REDO ENTRY,COMMIT这四者的关系到底是什么?


当你commit的时候,oracle会产生两个动作:

1:把REDO LOG BUFFER中的内容同步到disk中。

2:在系统中生成一个SCN号,记录下这个commit来,也就是记录下这个事务来


DML语句在你离开的时候,会隐式的进行一次commit)。


但是说:数据同步保证,逻辑上来说,在我们commit之后,就同步了


但是从物理的角度来讲,commit之后,disk中的datafile中的block中的内容并没有改变

Commit只不过是把REDO LOG BUFFER中的redo  entry同步到redo log中了。


日志写是顺序写,而datafile写,是异步写


这个时候,我们是如何保证我们查询到的数据是同步的呢?

commit修改过之后的呢?


我们查询数据,在oracle中如果是在buffer cache中的话,那样会产生logical read,这样的话,这些数据是脏数据,


这样的话,产生的是一件事情,如果脏数据是存在buffer cache中的话,我们查询的话,肯定是没有问题的,数据都是新的


Case1shutdown 数据库,会产生什么?

Shutdown数据库,物理上会把所有的脏数据都syncdiskdatafile


但是具体是怎么实现的呢?


Checkpoint又是什么?

检查点:又会牵扯到另外的一些机制:

RBA redo byte address:这指的是:redoentry的具体的地址

HIGH RBAbuffer cache中的脏数据最近一次修改,对应的redo 的地址

LOW RBAbuffer cache中的脏数据第一次进行修改,对应的redo的地址


BCQ buffer checkpointqueue: 缓存检查点队列:

具体指的是什么内容?

我猜呢?



What is checkpoint?

There is two checkpoint


Normal checkpoint和增量checkpoint


目的是实现数据同步,



现在很奇怪的一点是,怎么实现的数据同步




Oracle有两个进程:DBWR进程和CKPT进程


DBWR进程:


本文出自 “原歌轩” 博客,请务必保留此出处http://yuangeqingtian.blog.51cto.com/6994701/1366019

oracle checkpoint,布布扣,bubuko.com

oracle checkpoint

上一篇:修改Oracle编码


下一篇:MySQL-MMM如何调用远程管理卡命令去fence?