决ORA--27100 shared memory realm already exists报错
OS环境:windows PC
数据库版本:oracle 10.0.2.1
这是一次小打小闹的报错,原因是帮同事改他自己玩的测试库sga,原sga_max_size大小为600M,我修改为2G,重启时报错。
ORA-27100 shared memory realm already exists
通过查询官方文档,解释该原因是因为windows pc 32位机最大支持分配oracle内存为1.7G,所以导致报错,这是一次缺少经验的教训。
解决案例:
1:SQL> show parameter sga
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 568M
sga_target big integer 568M
2:SQL> alter system set sga_max_size=2048m scope=spfile; -将SGA设置为2G
SQL> alter system set sga_target=2048m scope=spfile;
3:SQL> shutdown immediate -重启数据库报错
SQL> startup
ORA-27100 shared memory realm already exists
OSD-00029: ????????????
O/S-Error: (OS 8) ??????????????????????????????
4:SQL> create pfile from spfile; -使用spfile生成pfile,修改参数文件内的以下两个参数,
将参数调小。
*.sga_max_size=600000000
*.sga_target=600000000
5:SQL> startup pfile='E:/oracle/product/10.2.0/db_1/database/INITorcl.ORA' -这时候启动
依然报错,这是因为windows机器需要重启后台服务,否则无法生效(郁闷)
ORA-27100 shared memory realm already exists
OSD-00029: ????????????
O/S-Error: (OS 8) ??????????????????????????????
7:找到管理/服务/OracleServiceORCL 重启
8:SQL> startup pfile='E:/oracle/product/10.2.0/db_1/database/INITorcl.ORA'
ORACLE 例程已经启动。
Total System Global Area 603979776 bytes
Fixed Size 1250428 bytes
Variable Size 163580804 bytes
Database Buffers 432013312 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
9:SQL> create spfile from pfile; -根据启动的pfile生成spfile,下次启动时候则主动读取spfile
参数文件
SQL> startup force
SQL> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string E:/ORACLE/PRODUCT/10.2.0/DB_1/
DATABASE/SPFILEORCL.ORA
SQL> show parameter sga;
NAME TYPE VALUE
----------------------------------- ----------- ------------------------------
lock_sga boolean FALSE
pre_page_sga boolean FALSE
sga_max_size big integer 576M
sga_target big integer 576M