问题背景:

awr报告中出现log file sync等待时间过长

dbfile时间不长排查io问题

可以查看lgwr.trc是否有切换动作


11.2之后的隐藏参数 _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模式之间进行切换,polling模式可能会造成比较严重的log file sync

建议关闭此参数:

高负载下轮询切换影响性能


alter system set "_use_adaptive_log_file_sync"=FALSE;

立即生效


适合低负载

(1)Post/wait——以前的Oracle版本中的传统方案

LGWR显式地发布所有等待提交完成的进程。

post/wait方法的优点是,当重做被刷新到磁盘时,会话应该立即发现。

适合高负载

(2)Polling

前台进程休眠并轮询,以查看提交是否完成。

这个新方法的优点是使LGWR不必通知许多等待提交完成的进程,从而释放了LGWR的高CPU使用率。