关于log buffer和redo管理的一个问题
今天在查看log buffer和redo管理的资料时有些疑惑,请大家指点迷津:):server process在构造redo vectors和redo records时所需的内存在哪个内存区域分配呀?记得老师曾在课上讲过在这里server process要进行redo copy,将构造的redo信息copy到log buffer,但是对于server process如何进行redo copy还有些疑惑,请大家指点。 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中生成的。个人见解如有错误请见谅。 上面是ORACLE9i下的流程,10g下向老师发了一个“Oracle 10g中的In-memory Undo运作原理”的帖子,上面讲的比较清楚,可以参考一下。 回复 chenyu 的帖子
讲解的很透彻,明白了:)
页:
[1]