AIX用户最大进程数参数maxuproc设置不合理导致应用连接不上数据库
告警如下:
此告警时间段为15-OCT-2015 08:14:41到17-OCT-2015 17:56:17
15-OCT-2015 08:14:41 * (CONNECT_DATA=(SID=xsdb)(CID=(PROGRAM=)(HOST=__jdbc__)(USER=))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.80.214)(PORT=3400)) * establish * xsdb * 12500
TNS-12500: TNS:listener failed to start a dedicated server process
TNS-12540: TNS:internal limit restriction exceeded
TNS-12560: TNS:protocol adapter error
TNS-00510: Internal limit restriction exceeded
IBM/AIX RISC System/6000 Error: 11: Resource temporarily unavailable
**
原因分析:
** 1. 客户反应当时业务量集中,当前数据库sga分配约为5G,pga_aggregate_target约为2133852160=2G
查询数据库process限制:**
RESOURCE_NAME CURRENT_UTILIZATION MAX_UTILIZATION INITIAL_ALLOCATION LIMIT_VALUE
---------------------- ------------------- --------------- -------------------- -----------
processes 37 130 300 300
sessions 33 180 335 335
发现process最大为130。没有超出300的最大值,说明不是process设置的问题。
2. 再去查找系统对每个用户最大进程数的限制:
lsattr -E -l sys0| grep maxuproc
发现默认为128,修改为一个更大的值:
chdev -l sys0 -a maxuproc=256
在修改这个参数为更大的值后,在数据库最大process也达到了130后,监听也没有报错。