首页 > 代码库 > ORA-27100 shared memory realm already exists错误解决方法
ORA-27100 shared memory realm already exists错误解决方法
环境: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
参考文档:http://blog.itpub.net/8720638/viewspace-321778/