ORA-00064: object is too large to allocate on this O/S (1,4004280)
NOMOUNT 狀態,推測初始化參數有誤。alert log 發現曾執行:
ALTER SYSTEM SET PROCESSES = 2000 SCOPE = SPFILE;
PROCESSES 為 1500:
CREATE PFILE='H:\pfile20140525.ora' FROM SPFILE='H:\oracle\product\10.2.0\db_1\dbs\spfileorcl.ora'; -- 編輯 PFILE,將 processes=1500 STARTUP NOMOUNT PFILE='H:\pfile20140525.ora';
PROCESSES 設定過大導致。32 位元作業系統對單一行程的虛擬記憶體空間有限制 (通常 2 GB 用戶空間)。PROCESSES 參數決定資料庫可同時支援的作業程序數,每個程序需分配 PGA、堆疊等記憶體結構。當 PROCESSES 設定過高,啟動時嘗試預分配的記憶體總量超過 32 位元程序的位址空間上限,導致 ORA-00064。
SYS 登入,建立 PFILE 备份現有 SPFILE。PROCESSES 降至合理值 (如 1500,視實際併發需求而定)。MOUNT 或 OPEN 狀態。ALTER SYSTEM SET PROCESSES = 1500 SCOPE = SPFILE;
PROCESSES 只是另一受限面向。ulimit -a 查看限制,但 Windows 無此指令,需參考作業系統文件或實測調整。