运维工程师在一台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日志中不再报该错误