Redo Log Buffer 的大小由初始化参数 LOG_BUFFER 定义。
该参数的缺省值:Max(512 KB , 128 KB * CPU_COUNT)
通常这一缺省值是足够的,Redo Log Buffer 的写出操作是相当频繁的,所以过大的 Log Buffer 设置通常是没有必要的;
Log_buffer 参数的设置是否需要调整,可以从数据库的等待事件来判断:
select event#,name from v$event_name where name='log buffer space';
EVENT# NAME
---------- ----------------------------------------------------------------
196 log buffer space
当 Log Buffer Space 等待事件出现并且较为显著时,我们可以考虑增大 Log Buffer 以缩减竞争。
从 Oracle10g 开始,LOG_BUFFER 的分配算法有所改变,由于 Granule 的引入,LOG_BUFFER 的分配也需要以 Granule 为基础,
缺省的 SGA 中的 Fixed SGA Size 将和LOG_BUFFER 共享整数倍的 Granule:
select * from v$version where rownum <2;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
show parameter log_buffer
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_buffer integer 7053312
select * from v$sgainfo where name in ('Fixed SGA Size','Redo Buffers','Granule Size');
NAME BYTES RES
------------------------------ ---------- ---
Fixed SGA Size 1223488 No
Redo Buffers 7163904 No
Granule Size 4194304 No
select (1223488 +7163904)/4194304 from dual;
(1223488+7163904)/4194304
-------------------------
1.99971008
如果不是有明显的性能问题,一般缺省的设置是足够的。




