首页 > 代码库 > 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位机器ORACLESGA有个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/