Redo Log Buffer的大小設定

edwardking888發表於2010-04-13

Redo Log Buffer的大小由初始化引數LOG_BUFFER定義,該引數的預設值為Max(512KB,128KB*CPU_COUNT)。通常這一預設值是足夠的,從上篇日誌可以知道,Redo Log Buffer的寫出操作是相當頻繁的,所以過大的Log Buffer設定通常是沒有必要的;如果預設值不能滿足要求,一般來說3MB是一個較為合理的調整開端。

log_buffer引數的設定是否需要調整,可以從資料庫的等待事件來判斷:

sys@NEI> select event#,name from v$event_name where name='log buffer space';
    EVENT# NAME
---------- ------------------------------
       108 log buffer space

當Log Buffer Space等待事件出現並且較為顯著時,可以考慮增大Log Buffer以縮減競爭。

從Oracle 10g開始,LOG_BUFFER的分配演算法有所改變,由於Granule的引入,LOG_BUFFER的分配也需要以Granule為基礎,預設的SGA中的Fixed SGA Size將和LOG_BUFFER共享整數倍的Granule

sys@NEI> select * from v$version where rownum<2;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
sys@NEI> show parameter log_buffer
NAME                                 TYPE                                     VALUE
------------------------------------ ---------------------------------------- ------------------------------
log_buffer                           integer                                  7053312
sys@NEI> select * from v$sgainfo                                      
  2  where name in ('Fixed SGA Size','Redo Buffers','Granule Size');
NAME                                BYTES RES
------------------------------ ---------- ---
Fixed SGA Size                    1220820 No
Redo Buffers                      7163904 No
Granule Size                      4194304 No
sys@NEI> select (1220820+7163904)/4194304 from dual;
(1220820+7163904)/4194304
-------------------------
               1.99907398

如果不是有明顯的效能問題,一般預設的設定是足夠的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8183550/viewspace-659579/,如需轉載,請註明出處,否則將追究法律責任。

相關文章