为了账号安全,请及时绑定邮箱和手机立即绑定

LGWR的两种模式(POST/WAIT和POLLING)

标签:
Oracle

11.2之前,oracle的lgwr写入模式为post/wait

11.2之后新增了polling模式,可以与post/wait模式自动切换

通过隐藏参数 _use_adaptive_log_file_sync 参数来控制

查看该隐藏参数的方法:

SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ  FROM SYS.x$ksppi x, SYS.x$ksppcv yWHERE x.indx = y.indx  AND x.ksppinm LIKE '%_use_adaptive_log_file_sync%';

当参数设置为false时,lgwr还是采用post/wait方式将日志从buffer写入磁盘

当参数设置为true是,lgwr写入方式会自动在post/wait和polling模式之间进行切换,可能会造成比较严重的log file sync (当使用polling模式时)

建议关闭此参数:

alter system set "_use_adaptive_log_file_sync"=FALSE;

参数立即生效,无需重启实例。

 

模式切换时,lgwr的trace中会记录类似如下的信息:

RACDB1_lgwr_27890.trc-6094-Warning: log write elapsed time 649ms, size 11252KB

RACDB1_lgwr_27890.trc-6095-

RACDB1_lgwr_27890.trc-6096-*** 2016-05-10 13:28:41.481

RACDB1_lgwr_27890.trc-6097-Warning: log write elapsed time 654ms, size 16877KB

RACDB1_lgwr_27890.trc:6098:kcrfw_update_adaptive_sync_mode: post->poll long#=2 sync#=9 sync=1031 poll=1961 rw=574 ack=0 min_sleep=1961

--

RACDB1_lgwr_27890.trc-6115-Warning: log write elapsed time 532ms, size 16479KB

RACDB1_lgwr_27890.trc-6116-

RACDB1_lgwr_27890.trc-6117-*** 2016-05-10 18:22:14.255

RACDB1_lgwr_27890.trc-6118-Warning: log write elapsed time 781ms, size 316KB

RACDB1_lgwr_27890.trc:6119:kcrfw_update_adaptive_sync_mode: poll->post current_sched_delay=0 switch_sched_delay=1 current_sync_count_delta=2 switch_sync_count_delta=9

--

RACDB1_lgwr_27890.trc-6168-Warning: log write elapsed time 855ms, size 9153KB

RACDB1_lgwr_27890.trc-6169-

RACDB1_lgwr_27890.trc-6170-*** 2016-05-11 06:29:28.814

RACDB1_lgwr_27890.trc-6171-Warning: log write elapsed time 568ms, size 10345KB

RACDB1_lgwr_27890.trc:6172:kcrfw_update_adaptive_sync_mode: post->poll long#=2 sync#=7 sync=964 poll=1961 rw=969 ack=0 min_sleep=1961

 

 

两种模式的理解:(两种模式主体都是前台进程,post/wait是等待lgwr通知,polling是主动轮序lgwr)

Post/wait:用户会话被动等待LGWR通知redo写入到log file完毕,这种方式响应速度比较快。若cpu空闲时采用这种方式可以体验到更好的响应时间。
Polling:用户会话主动轮询LGWR,观测是否完成写入(轮询的间隔是10ms)。这种方式比Post/wait方式响应速度慢,但LGWR不直接把完成的消息通知到很多用户会话,可以节约CPU资源。若cpu繁忙时采用这种方式可以降低cpu资源的消耗。

 

官方对两种模式的解释:

Adaptive Log File sync was introduced in 11.2. the feature is exactly enabled since release 11.2.0.3 , It’s enabled through an underscore parameter called _use_adaptive_log_file_sync and the description of this parameter is: adaptively switch between post/wait and polling.

Oracle can switches between the 2 methods:
Post/wait, traditional method for posting completion of writes to redo log

LGWR explicitly posts all processes waiting for the commit to complete.


The advantage of the post/wait method is that sessions should find out almost immediately when the redo has been flushed to disk.

Polling, a new method where the foreground process checks if the LGWR has completed the write.

Foreground processes sleep and poll to see if the commit is complete. The advantage of this new method is to free LGWR from having to inform many processes waiting on commit to complete thereby freeing high CPU usage by the LGWR.If post/wait is selected and the foreground processes fail to receive a post from LGWR, an incident is recorded.diagnostic traces are performed, and polling is used instead of post/wait.

Oracle uses semaphores extensively, If you look for references to “commit” in the Oracle docs, you’ll find the word “post” everywhere when they talk about communication between the foreground processes and LGWR. Now, remember that a COMMIT has two options: first, IMMEDIATE or BATCH and second, WAIT or NOWAIT. It looks like this to me:

Immediate: FG process will post to LGWR, triggering I/O (default)
Batch: FG process will not post LGWR
Wait: LGWR will post FG process when I/O is complete (default)
NoWait: LGWR will not post FG process when I/O is complete


参考:https://blog.csdn.net/rgb_rgb/article/details/72804143 

 作者:Nathon-wang

原文链接:https://www.cnblogs.com/nathon-wang/p/10284687.html


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消