事物的提交会触发lgwr写,那在这之前该事物对应的redo条目已经写入日志缓存了么?什么时候产生的?在事物开始的时候?

解决方案 »

  1.   

    第一个问题:不一定,redo何时写到log buffer的问题其实很复杂,因为涉及到10g后新引入的IMU,如果是IMU,那么刚一开始生成的redo会放在SGA私有redo区,在提交的时候写入log buffer并刷入online redo log。
    至于第二个问题,大而化之地讲:可以认为redo在事务开始时就生成在PGA中。
      

  2.   


    补充:如果事务涉及到的redo很太,共享池中的私有redo区放不了(私有redo区是和IMU相辅相成的),那么就会绕过私有redo区,直接送入log buffer。另外有些场景下用不了IMU,比如用了RAC,比如_in_memory_undo被修改为FALSE等情况下,也不会使用IMU。
    所以不管怎么说,楼主的第一个问题的答案都是不确定的。