32bit的windows 2008,Oracle实例启动报错ORA-00064

环境:windows 2008 32bit,oracle db 10.2.0.1 32bit 单机,32GB的物理内存

问题:实例启动报错:ORA-00064: object is too large to allocate on this O/S (1,4004280)

现象如下:

H:\oracle\product\10.2.0\db_1\BIN>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 5月 25 14:40:15 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

已连接到空闲例程。
SQL> startup nomount;
ORA-00064: object is too large to allocate on this O/S (1,4004280)
SQL> 


问题分析:
instance 无法进入nomount状态,肯定是某些初始化参数有问题,于是检查alert日志中初始化参数的修改记录,发现如下命令:

alter system set processes=2000 scope=spfile;

于是尝试建立pfile:

H:\oracle\product\10.2.0\db_1\BIN>set nls_lang=american_america.ZHS16GBK

H:\oracle\product\10.2.0\db_1\BIN>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Sun Apr 25 15:00:45 2014

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> create pfile='H:\pfile20140525.ora' from SPFILE='H:\oracle\product\10.2.0\db_1\dbs\spfileorcl.ora';

File created.

修改H:\pfile20140525.ora 中的processes为1500,以该pfile启动:

SQL> startup nomount pfile='H:\pfile20140525.ora';
ORACLE instance started.

Total System Global Area  612368384 bytes
Fixed Size                  1250428 bytes
Variable Size             234883972 bytes
Database Buffers          369098752 bytes
Redo Buffers                7135232 bytes
SQL> 

于是确认是processes设置过大导致的问题。后续的修改spfile中processes为1500不再描述。

总结:

1.本案例引出一个问题:
32bit windows 平台下, Oracle db 初始化参数processes最大能设置为多大?这个问题我从mos尚未找到答案。

  ORA-00064: Object Is Too Large To Allocate On This O/S (Doc ID 1232463.1) 文章说,可以用ulimit -a命令查看限制,不过windows平台无此命令。

2.从本案例看来,32bit的os,不仅仅是对oracle 在sga大小上的有限制,也是对oracle 在processes参数上有限制。


 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。