事物的redo条目是什么时候产生并放入缓冲的?

fendouzhe 2017-11-03 03:36:49
事物的提交会触发lgwr写,那在这之前该事物对应的redo条目已经写入日志缓存了么?什么时候产生的?在事物开始的时候?
...全文
203 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
minsic78 2017-11-03
  • 打赏
  • 举报
回复
引用 1 楼 minsic78 的回复:
第一个问题:不一定,redo何时写到log buffer的问题其实很复杂,因为涉及到10g后新引入的IMU,如果是IMU,那么刚一开始生成的redo会放在SGA私有redo区,在提交的时候写入log buffer并刷入online redo log。 至于第二个问题,大而化之地讲:可以认为redo在事务开始时就生成在PGA中。
补充:如果事务涉及到的redo很太,共享池中的私有redo区放不了(私有redo区是和IMU相辅相成的),那么就会绕过私有redo区,直接送入log buffer。另外有些场景下用不了IMU,比如用了RAC,比如_in_memory_undo被修改为FALSE等情况下,也不会使用IMU。 所以不管怎么说,楼主的第一个问题的答案都是不确定的。
minsic78 2017-11-03
  • 打赏
  • 举报
回复
第一个问题:不一定,redo何时写到log buffer的问题其实很复杂,因为涉及到10g后新引入的IMU,如果是IMU,那么刚一开始生成的redo会放在SGA私有redo区,在提交的时候写入log buffer并刷入online redo log。 至于第二个问题,大而化之地讲:可以认为redo在事务开始时就生成在PGA中。

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧