本单位新增一台服务器,内存配置为16G,在安装ORACLE 9i数据库以后,想重新设置一下SGA。在测试过程中我们发现,当将SGA的最大大小的设置过大时会损坏数据库的SPFILE文件造成数据库不能启动,经过网上查找资料发现对于32位机器ORACLE的SGA有个1.7G的限制,如果由于不小心将SGA_MAX_SIZE的值设置的超过1.7G,则在ORACLE数据库启动过程中会报ORA-27100 shared memory realm already exists错误。
C:/Documents and Settings/Administrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 9月 8 12:33:23 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn sys/computer as sysdba
已连接到空闲例程。
SQL> startup
ORA-27102: out of memory
OSD-00029: Message 29 not found; product=RDBMS; facility=SOSD
O/S-Error: (OS 8) 4f4"?U<d2;Wc#,N^7(4&@m4KC|An!#
/*将${ORACLE_HOME}/admin/allview/pfile/init.ora.4162007215332文件(这是数据库的pfile参数文件,8i前使用,可以手工编辑)拷贝到${ORACLE_HOME}/database目录下,更名为init.ora。*/
SQL> startup pfile=E:/oracle/ora92/database/init.ora
ORACLE 例程已经启动。
Total System Global Area 136911732 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 2240512 bytes
数据库装载完毕。
数据库已经打开。
SQL> create spfile from pfile='E:/oracle/ora92/database/init.ora';
文件已创建。
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 136911732 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 2240512 bytes
数据库装载完毕。
数据库已经打开。
SQL> exit
从Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production中断开
修改总结如下:
修改pfile:
###########################################
# Pools
###########################################
sga_max_size=187436800
C:/Documents and Settings/Administrator>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Production on 星期三 9月 8 17:13:28 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn sys/yzfc@yzfc as sysdba
已连接。
SQL> create spfile from pfile='C:/oracle/admin/YZFC/pfile/init.ora.103020091708
;
create spfile from pfile='C:/oracle/admin/YZFC/pfile/init.ora.103020091708'
*
ERROR 位于第 1 行:
ORA-32002: 无法创建已由例程使用的 SPFILE
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> create spfile from pfile='C:/oracle/admin/YZFC/pfile/init.ora.103020091708
;
文件已创建。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 194058944 bytes
Fixed Size 453312 bytes
Variable Size 167772160 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
SQL>