数据库
首页 > 数据库> > 【DB笔试面试272】在Oracle中,什么是Adaptive Log File Sync?

【DB笔试面试272】在Oracle中,什么是Adaptive Log File Sync?

作者:互联网

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=


Q          题目如下所示:

 在Oracle中,什么是Adaptive Log File Sync?


     
A          答案如下所示:          



  当前台进程提交事务(COMMIT)后,LGWR需要执行日志写出操作,而前台进程因此进入log file sync 等待。

在Oracle 11g之前的版本中,LGWR执行写入操作完成后,会通知前台进程,这也就是Post/Wait模式;在Oracle 11gR2中,为了优化这个过程,前台进程通知LGWR写之后,可以通过定时获取的方式来查询写出进度,这被称为Polling模式。在Oracle 11.2.0.3中,这个特性被默认开启,通过隐含参数“_use_adaptive_log_file_sync”来控制(默认值为true),这个参数的含义是:数据库可以在自适应的在Post/Wait和Polling模式间选择和切换,正是由于这个原因,带来了很多Bug,反而使得log file sync的等待异常的高。因此,如果在Oracle 11.2.0.3版本中观察到这样的特征,那么就极有可能与此特性的Bug有关。

在Post/Wait和Polling机制之间的切换,Oracle会记录到LGWR进程的trace当中,如下所示:

Log file sync switching to polling

……

Log file sync switching to post/wait

若遇到此问题,则通常将隐含参数“_use_adaptive_log_file_sync”设置为false,回归到以前的Post/Wait模式,这将会有助于问题的解决。关闭Polling模式的命令为:

alter system set "_use_adaptive_log_file_sync"=false sid='*';

 

标签:Log,DB,sync,Sync,file,Oracle,Wait,Polling,log
来源: https://blog.51cto.com/lhrbest/2708289