ORA-27100sharedmemoryrealmalreadyexists错误解决方法
环境: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