ADAPTIVE LOG FILE SYNC 引发的高Log File Sync警示
转载连接:http://www.eygle.com/archives/2017/03/adaptive_log_file_sync.html
关于 Log File Sync 等待的优化,在Oracle数据库中一直是常见问题,LOG FILE的写出性能一旦出现波动,该等待就可能十分突出。
在Oracle 11.2.0.3 版本中,Oracle 将隐含参数 _use_adaptive_log_file_sync 的初始值设置为 TRUE,由此带来了不少 Log File Sync 等待异常的状况,这个问题虽然由来已久,可是仍然有不少Oracle的用户并不知情。因此我写下这个条目,但愿让更多的朋友能够看到。
当前台进程提交事务(commit)后,LGWR须要执行日志写出操做,而前台进程所以进入 Log File Sync 等待周期。
在之前版本中,LGWR 执行写入操做完成后,会通知前台进程,这也就是 Post/Wait 模式;
在11gR2 中,为了优化这个过程,前台进程通知LGWR写以后,能够经过定时获取的方式来查询写出进度,这被称为 Poll 的模式,在11.2.0.3中,这个特性被默认开启。
这个参数的含义是:数据库能够在自适应的在 post/wait 和 polling 模式间选择和切换。
_use_adaptive_log_file_sync , Adaptively switch between post/wait and polling
这是因为这个缘由,带来了不少Bug,反而使得 Log File Sync 的等待异常的高,若是你在 11.2.0.3 版本中观察到这样的表征,那就极有可能与此有关。
若是是这样,将 _use_adaptive_log_file_sync 参数设置为 False,回归之前的模式,将会有助于问题的解决。
MOS上的这些文档,能够供您参考:
Document 1462942.1 Adaptive Switching Between Log Write Methods can Cause 'log file sync' Waits
Document 13707904.8 Bug 13707904 - LGWR sometimes uses polling, sometimes post/wait
Document 13074706.8 Bug 13074706 - Long "log file sync" waits in RAC not correlated with slow writeshtml