调整重做日志缓冲区的大小

调整重做日志缓冲区的大小

--调整LOG_BUFFER参数

--缺省值:512K128K * cpu_count的值,二个中较大的一个

 

v$session_wait视图指明在”log buffer space%”事件过程中,是否存在因会话向日志缓冲区中写入数据的速度大于LGWR写出数据的速度,而产生的任何对日志缓冲区空间的等待。

select sid,event,second_in_wait,state from v$session_wait where event=’log buffer space%’

 

重做缓冲区再分配的统计比例:(redo buffer allocation retries)

redo buffer allocation retries 的值应该接近0。此数值不应大于重做条目的1%。如果该数值持续递增,则进程不得不等待缓冲区的空间。

SELECT r.VALUE "Retries",e.VALUE "Entries", r.VALUE/e.VALUE*100 "Percentage"

FROM v$sysstat r,v$sysstat e

WHERE r.NAME = 'redo buffer allocation retries'

AND e.NAME = 'redo entries'

 

  等待可能是由于日志缓冲区太小、检查点操作或归档操作造成的。在这种情况下,可以:

--如果必要,通过更改初始化参数log_buffer的值来增加日志缓冲区的大小

--或者,改进检查点或归档进程

 

  重做日志缓冲工通常很小,适当增加其大小可以显著提高吞吐量。

--因为不会发生日志切换,所以”log buffer space%”事件的seconds_in_wait值表明了用于等待重做日志缓冲区空间所用的时间。

  这表明填充缓冲区的速度比LGWR写入更快,也可能表明在重做日志文件上发生了磁盘I/O

争用。

--v$sysstat视图中的 redo buffer allocation retries统计信息反映了用户进程等待重做日志缓冲区空间的次数,等待日志缓冲区空间的目的是为了新条目复制到日志缓冲区,从而覆盖其中已被写出到磁盘的条目。LGWR的写入速度通常很快,足以确保缓冲区的空间总可以写入新条目,即使在对重做日志的访问很频繁也是如此。

 

 

重做日志缓冲区优化原则

不应出现”log buffer space”等待

select sid, event, seconds_in_wait, state from v$session_wait

where event = ‘log buffer space’;

“redo buffer allocation retries”值应接近0,并且小于重作条目的1%

select name,value from v$sysstat

where name in (‘redo buffer allocation retries’,’redo entries’;

 

“log buffer space%”事件seconds_in_wait参数

v$session_wait中,如果”log buffer space%”事件的seconds_in_wait值表明在重做日志缓冲区中等待空间花费卫些时间,则可以考虑采取以下操作:

--如果日志缓冲区很小,则增加其大小

--将日志文件移动到更快的磁盘,如条带化磁盘。

select sid,event,second_in_wait,state

from v$session_wait

where event=’log buffer space%’;

 

 

研究LGWR释放缓冲区缓慢的可能原因:

--在重做日志文件中存在磁盘I/O争用。检查重做日志文件是否存储在单独的快速设备中。

a)v$system_event视图中,检查发生 “log file switch completion%”事件的次数,该次数为由于日志切换而等待次数。

select event,total_waits,time_waited,average_wait from v$system_event

where event like ‘log file switch completion%’;

a)       如果在LGWR再次需要文件之前DBWn仍未完成设置文件检查点,LGWR将不得不等待。

--alert.log文件中,检查”checkpoint not complete”消息。

--v$system_event视图中,检查发生”log filel switch (check%”事件的次数,该次数为因未完成检查点而引起的日志文件切换等待的次数。

select event, total_waits, time_waited, average_wait

from v$system_event

where event like ‘log file switch(check%’;

--检查检查点的频率,并为fast_start_mttr_target设置相应的值。

--检查重做日志组的大小和数量。

 

b)       归档程序不能向已归档的重做日志文件中写入数据,或者完成归档操作的速度不够快。因此,它将阻止LGWR写入。

--确认归档设备空间未满,并添加重做日志组。

--v$system_event视图中,检查发生”log file switch(arch%”事件的次数,该次数表明因归档问题而引起的日志文件切换等待的次数。

select event, total_waits,time_waited, average_wait

from v$system_event

where event like ‘log file switch(arch%’;

 

只要当前的ARCn进程数不足以处理工作量,LGWR进程就会启动新的ARCn进程。如果预计有繁重的归档工作量,例如,在批量加载数据期间,就可以用log_archive_max_processes初始化参数指定多归档程序进程的最大数量。此参数是动态参数,可以使用alter system语句进行更改。

你可能感兴趣的:(工作)