營運工程師在一台IBM P750(AIX6.1)上部署了一套Oracle(未建庫),讓我把商用的某庫同其做一個DG容災。我按正常步驟部署了DG。
1.在備庫開始日誌恢複
alter database recover managed standby database using current logfile disconnect;
2.查看備庫是否正常接收日誌
select process,client_process,sequence#,status from v$managed_standby;
--正常接收日誌
3.查看備庫是否正常應用日誌
select THREAD#,SEQUENCE#,ARCHIVED,APPLIED,DELETED,STATUS from v$archived_log order by 1,2;
--正常應用日誌
但是我在備庫的alert日誌裡發現有如下報錯
Mon Mar 24 14:11:14 2014
Process startup failed, error stack:
Errors in file /apps/oracle/diag/rdbms/primary/egap/trace/egap_psp0_18481392.trc:
ORA-27300: OS system dependent operation:fork failed with status: 2
ORA-27301: OS failure message: No such file or directory
ORA-27302: failure occurred at: skgpspawn5
Process PR0S died, see its trace file
後來發現是參數maxuproc不足導致,該參數預設只有128,該參數決定了每個作業系統使用者允許串連的最大進程數,該參數不足時alert日誌中會報如上錯誤。
正常在裝rac時這些參數我們都會提前檢查,並設為oracle要求的值(要求值為16384),這裡可能是營運根本沒有檢查該參數
檢查該參數
lsattr -E -l sys0 -a maxuproc
root@egisbdb1:/#lsattr -E -l sys0 -a maxuproc
maxuproc 128 Maximum number of PROCESSES allowed per user True
修改該參數
chdev -l sys0 -a maxuproc=16384
修改後alert日誌中不再報該錯誤