標籤:
環境: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 sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on 星期日 5月 25 14:40:15 2014Copyright (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.ZHS16GBKH:\oracle\product\10.2.0\db_1\BIN>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.1.0 - Production on Sun Apr 25 15:00:45 2014Copyright (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 bytesFixed Size 1250428 bytesVariable Size 234883972 bytesDatabase Buffers 369098752 bytesRedo Buffers 7135232 bytesSQL>
於是確認是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參數上有限制。
32bit的windows 2008,Oracle執行個體啟動報錯ORA-00064