The Log_buffer parameter cannot be changed In 10g R2
According to Oracle10g R2 Reference Guide LOG_BUFFER parameter is not modifiable any more. This is correct.
Guide is also saying that the default value is: 512 KB or 128 KB * CPU_COUNT, whichever is greater
This information is wrong (and the same documentation error is present in 11g R1 Reference Guide) .
According to Metalink note 351857.1 “The Log_buffer Cannot be Changed In 10g R2”, they changed the way how log buffer is allocated. Oracle 10g R2 combines fixed SGA and redo log buffer. Free space that is left after fixed sized SGA is allocated in the memory granule, Oracle dedicates to LOG_BUFFER.
This is why on all our systems log_buffer is around 14MB (our granule is 16MB, according to _ksmg_granule_size parameter, and fixed size SGA is around 2MB).
SQL> show release release 1002000300 SQL> show sga Total System Global Area 9697230848 bytes Fixed Size 2070776 bytes Variable Size 1291847432 bytes Database Buffers 8388608000 bytes Redo Buffers 14704640 bytes
I think this is a good move by Oracle. A lot of awkward “rules of thumb” for LOG_BUFFER sizing are now obsolete.
….and a bit different redo buffer size in 11gR1
With the same granule as in 10gR2 and with the similar fixed size SGA, the redo log buffer is substantially lower (9MB vs. 14MB). It seems that Oracle changed in some way the rule for buffer log allocation in 11g and/or the number of CPU is still important part of equation, the 10gR2 example instance has 8 CPU’s versus 4 CPU’s on 11g R1 instance.