oracle 10g on windows 2003 32bit sga限制問題

wengtf發表於2011-12-06

 

如果OS 是32bit 的,Oracle 資料庫 也只能安裝32bit 的,這樣了就SGA也受到限制,最大不能超過1.7G

看著那大把的記憶體,但資料庫用不上,怪可惜的。。通過下面的方法可以解開記憶體的限制/


- 在作業系統配置AWE,修改boot.ini檔案

右擊"我的電腦",選擇"屬性"--&gt高階選項卡,找到“啟動與故障恢復”,單擊“設定”,然後單擊“編輯”,

加/PAE選項,修改後的檔案如下:
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(2)WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(2)WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /pae

- 通過修改登錄檔,變成oracle可以使用的記憶體,
“開始”- “執行” -“regedit"
HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_oracle_home1,
新增新的strings:AWE_WINDOW_MEMORY ,這個值是準備分配給資料庫用的最大記憶體數(以BYTE為單位),例如你想分配3G,那這個值就是
3*1024*1024*1024
- 通過下面方法,修改引數讓ORACLE DB能使用上剛分配出來的MEM

Sqlplus "/ as sysdba" R
SQLPLUS>create pfile from spfile;
SQLPLUS>Shutdown immediate
SQLPLUS>exit

- 修改ORACLE pfile
註釋掉如下的引數:
sga_max_size
sga_target
DB_CACHE_SIZE
增加如下引數
修改或者新增以下引數
*.db_block_buffers=20000  #2G 為例
*.SHARED_POOL_SIZE=400000000 # 400M 為例
*.log_buffer=73000000 # 70M
*.use_indirect_data_buffers=true

sqlplus "/as sysdba"
sql>create spfile from pfile
sql>startup

- 通過以上的方法就可以讓記憶體大大超過1.7GB了

但通過以上的方法修改後,可能在某些平臺上會出現BUG,建議到METALINK檢視相關NOTE

參考Notes:
Oracle Database and the Windows NT memory architecture, Technical Bulletin
Doc ID: 46001.1
Oracle Database Server and the Operating System Memory Limitations
Doc ID: 269495.1

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

相關文章