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 t