環境:win 2003 + oracle 10g
win 2003服務器物理內存4G
oracle10g SGA 1504M
事故背景:
調整SGA大小,因為OS的內存只有4G,建議SGA的大小不要超過60%,我調整為2G
SQL> alter systemset sga_max_size=2000m scope=spfile;
重啟數據庫報錯ORA-27100 shared memory realm already exists
分析原因:對於32位機器ORACLE的SGA有個1.7G的限制
解決方案:
Spfile 是二進制文件不可以直接編輯,可以通過重新建立pfile文件
SQL> create pfile=’D:\oracle\ora92\database\pfileSID.ora’from spfile=’D:\oracle\ora92\database\spfileSID.ora’
SQL> Shutdown immediate
pfileSID.ora,修改參數文件內的以下兩個參數,
將參數調小。
*.sga_max_size=600000000
*.sga_target=600000000
找到管理/服務/OracleServiceORCL 重啟
SQL>Startup pfile=’D:\oracle\ora92\database\pfileSID.ora’
ORACLE 例程已經啟動。
Total System Global Area 603979776 bytes
Fixed Size 1250428 bytes
Variable Size 163580804 bytes
Database Buffers 432013312 bytes
Redo Buffers 7135232 bytes
數據庫裝載完畢。
數據庫已經打開。
SQL>Create spfile=’D:\oracle\ora92\database\spfileSID.ora’ From pfile=’D:\oracle\ora92\database\pfileSID.ora’
SQL> startup force
SQL> show parameter spfile
SQL> show parameter sga;
今天按照網上的方法。怎麼修改初始化參數 一直報錯。反反復復,花費將近1個鐘頭,後來該正確了,數據庫才起來,所以,以後在做類似修改,一定要記得備份
涉及系統參數修改操作,一定做備份,
cp initsid.ora initsid.ora.bak
cp spfilesid.ora spfilesid.ora.bak 以防萬一,一旦修改的有問題,趕緊恢復,縮短宕機時間。
反復修改起不來的配置
sga_max_size=547483648
sga_target_size=547483648
pag_aggregate_target=149946368 ,可能PGA+shared pool +db cache +large pool > sga 所以起不來
正確配置:
sga_max_size=1524M
sga_target_size=1524M
pag_aggregate_target=50M