关于log buffer和redo管理的一个问题

今天在查看log buffer和redo管理的资料时有些疑惑,请大家指点迷津
server process在构造redo vectors和redo records时所需的内存在哪个内存区域分配呀?记得老师曾在课上讲过在这里server process要进行redo copy,将构造的redo信息copy到log buffer,但是对于server process如何进行redo copy还有些疑惑,请大家指点。
标签: 暂无标签
Quasimodo

写了  篇文章,拥有财富 ,被  人关注

转播转播 分享分享 分享淘帖
回复

使用道具

P4 | 发表于 2010-11-22 10:15:08
redo vectors、redo records、transaction的关系是一个transaction有一个或多个redo records组成,一个redo records有多个redo vectors组成;
redo copy的过程是把redo从pga写到log buffer中,这个过程先要请求redo copy latch,成功后在获取redo allocate latch,然后在进行copy过程,所以redo的最初是在pga中的变化UGA中生成的(专用模式下),如果是共享服务器模式,由于UGA使用的是SGA(large pool 或 shared pool)所以redo应该是在SGA中生成的。个人见解如有错误请见谅。
回复

使用道具

P4 | 发表于 2010-11-22 11:22:33
上面是ORACLE9i下的流程,10g下向老师发了一个“Oracle 10g中的In-memory Undo运作原理”的帖子,上面讲的比较清楚,可以参考一下。
回复

使用道具

P4 | 发表于 2010-11-22 14:48:19
回复 chenyu 的帖子

讲解的很透彻,明白了
回复

使用道具

您需要登录后才可以回帖 登录 | 加入社区

本版积分规则

意见
反馈