sga_max_size设置过大导致ORALCE无法启动ORA-27100解决办法

 服务器环境:32位WINDOWS SERVER 2003旗舰版、16G内存、ORACLE10.1.0.2

    由于系统内存16G,于是将ORACLE的SGA_MAX_SIZE设置为2G,结果重启数据库时报错:ORA-27100shared memory realm already exists原来是32位操作系统对SGA_MAX_SIZE大小有1.7G限制,超过限制就会报错。

    解决办法:

    

1、>create pfile from spfile;

   通过当前spfile创建pfile.

   注意:pfile:文本文件,可以编辑,可以通过spfile创建;

        spfile:二进制文件,只有通过create spfile from pfile方式创建,无法编辑。

  NT平台下,默认的spfile位于$ORACLE_HOME\database,名称通常为SPFILE+$ORACLE_SID.ORA;

        pfile默认生成路径同上,名称通常为INIT+$ORACLE_SID.ORA;

2、手工修改创建的pfile文件,将sga_max_size修改为较小的值,不要超过1.7G(注:pfile中是字节);
3、>startup pfile='pfile的绝对路径' 强制oracle从指定的pfile文件启动。

 因为windows平台下,oracle服务强制跟随系统服务启动,这种情况下即使shutdown,oracle并没有完全关闭。而如果服务不开启,则无法通过sqlplus /nolog ;conn /as sysdba启动。

所以启动数据库依然提示ORA-27100: shared memory realm already exists

 

   ORA- 27100往往是你在不正确的更改了ORACLE实例参数后,并将其永久保存到SPFILE后,重启ORACLE服务时,ORACLE会以这个不正确的 SPFILE来启动实例,虽然可能不会成功装载和打开数据库,但启动WINDOWS的服务:OracleServiceSID肯定会启动ORACLE实例,也就是说会分配SHAREMEMORY REALM(尽管ORACLE数据库没有启动),这时,你连接ORACLE,肯定是不成功的。当你试图用SQLPLUS登进去,发布STARUP 时,ORA-27100就出来了。而当你发布SHUTDOWN时,因为ORACLE没有正确的启动,所以也不能成功关闭。
解决办法:关闭ORACLE服务,删除数据库的spfile文件,用新的正确的pfile启动后,再生成新的spfile;

4、startup pfile=''

   createspfile from pfile=''  (数据库启动默认SPFILE启动)

   shutdownimmediate;

   startup;(此处调用SPFILE)数据库OPEN 成功!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值