ORA-12549: TNS:operating system resource quota exceeded.
今天早上,应用的人说新装的那台数据库连接报错,用PL/SQL Developer连接报:
ORA-12537:TNS:连接关闭。
开始处理:
以oracle身份登陆系统,报:
/etc/profile[50]: 0403-030 The fork function failed. Too many processes already exist.
执行sqlplus登陆数据库又报:
ORA-12549: TNS:operating system resource quota exceeded.
这个类错误还是第一次遇见,不过看起来不算是有难度的问题,然后开始查询数据库告警日志alert.log,有很多类似的错误:
Tue May 10 21:00:37 2011
Process startup failed, error stack:
Tue May 10 21:00:37 2011
Errors in file /hiuset_bas/oracle/app/admin/bcs/bdump/bcs_psp0_290828.trc:
ORA-27300: OS system dependent operation:fork failed with status: 11
ORA-27301: OS failure message: Resource temporarily unavailable
ORA-27302: failure occurred at: skgpspawn5
ORA-27303: additional information: skgpspawn5
Tue May 10 21:00:38 2011
Process m001 died, see its trace file
Tue May 10 21:00:38 2011
ksvcreate: Process(m001) creation failed
由以上信息大致可以了解到连接数据库失败的原因为系统资源匮乏或达到了某些限制条件阀值。
根据metalink ID 392006.1和ID 948152.1的描述,可以确定是OS参数maxuproc的问题。
以root身份执行smitty,依次选择:
System Environments
Change / Show Characteristics of Operating System
Maximum number of PROCESSES allowed per user[128]
128是OS参数maxuproc的值,意思是在OS中,每个OS用户所允许的最大进程数。128应该是OS的缺省值,显然不能满足需求的,根据AIX的安装手册中的建议值,将其调整为了16384。
root@:/>lsattr -Elsys0 | grep maxuproc
maxuproc16384Maximum number of PROCESSES allowed per userTrue
调整之后,到目前为止快一天的时间,没有再出现过该错误。
--- END ---