您的位置:首页 > 数据库 > Oracle

windows 平台下修改oracle SGA造成数据库无法启动

2012-06-27 00:23 671 查看
平台:windows2003 32bit + oracle 9i 32bit

因为32位windows2003上,oracle最大SGA具有1.8G的限制,如果修改db_cache_size 和sga_max_size 为错误的参数,将导致数据库无法启动,在startup时显示ORA-27100: shared memory realm already exists错误。

如果没有对pfile进行备份,解决步骤如下:

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文件,将db_cache_size和sga_max_size修改为较小的值;

3、>startup pfile='E:\oracle\ora92\database\INIT**.ORA'

强制oracle从指定的pfile文件启动。

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

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

4、修改系统注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0

将ORA_MYDB_AUTOSTART值由TRUE为 false

5、重新通过指定pfile方式启动数据库,如果依然无法启动,备份好pfile文件不断调整SGA参数;

6、启动成功,别忘记重新创建spfile:

>create spfile from pfile='E:\oracle\ora92\database\INIT**.ORA'

因为oracle默认通过spfile启动;

7、修改系统注册表,让oracle随系统服务自动启动 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息