oracle账号密码策略ORA-27100sharedmemoryrealmalreadyexists错误解决方法

环境:win 2003 + oraoracle账号cle 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

此条目发表在oracle metalink账号分类目录,贴了标签。将固定链接加入收藏夹。