Oracle触发LGWR进程写日志的4个条件[转载]

Oracle触发LGWR进程写日志的4个条件

作者: 胡金培,  出处:IT专家网, 责任编辑: 李书琴, 
http://database.ctocio.com.cn/tips/237/8200737.shtml
2008-07-03 10:24
  当LGWR处于空闲状态时,它依赖于rdbms rpc message等待事件,处于休眠状态,直到三秒时间到,如果这个时候LGWR发现有Redo信息需要写出的话,那么LGWR将执行写的操作,log file parallel write等待事件将会出现。
<script> document.write("<SCRIPT LANGUAGE=/"JavaScript1.1/" SRC=/"http:ucpn.yesky.com//js.ng//area=cc-wenzhangye_pip1&format=picinpic&node_ctocio_cto="+nodeid+"&num=1&page=cont&site=ctocio_cto/"><//SCRIPT><div class='clear'></div>"); </script> <script src="http://ucpn.yesky.com/js.ng/area=cc-wenzhangye_pip1&format=picinpic&node_ctocio_cto=20380&num=1&page=cont&site=ctocio_cto"></script>

  总结一下Redo写的触发条件:

  1,每三秒钟超时(timeout):

  当LGWR处于空闲状态时,它依赖于rdbms rpc message等待事件,处于休眠状态,直到三秒时间到,如果这个时候LGWR发现有Redo信息需要写出的话,那么LGWR将执行写的操作,log file parallel write等待事件将会出现。

  2.阀值的达到:

  Redo log buffer 1/3 满;

  Redo log buffer 拥有 1MB 的脏数据;

  参数_log_io_size的设置很重要,一般为log_buffer的1/3大小

  3.用户提交:

  当一个transaction提交的时候,在Redo stream中将记录一个提交标志。在这些Redo被写到磁盘上之前,这个transaction是不能恢复的。所以,在transaction返回成功 标志之前,必须等待LGWR写的完成。进程通知LGWR写,并且以log file sync事件开始休眠。超时为1秒

  4.在DBWn写之前:

  如果DBWR将要写出的数据的高RBA超过LGWR的on-disk RBA,则DBWR将通知LGWR执行写的操作,在Oracle8i之前,此时DBWR将等待Log file sync事件。从Oracle8i开始,DBWR把这些block(将要写出的block,这种block的高RBA超过了LGWR的on-disk RBA)放入defer队列中,同时通知LGWR执行Redo写出。

  注:

  log buffer space等待事件说明log buffer空间不够用了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值