近期某客户因业务发展,需要将ORACLE数据库的PROCESS连接数,从3500改动到10000.经过前期沟通,计划在晚上进行RAC的2个节点轮流重启的方式来进行修改,尽可能的减少对业务的影响。
该平台为hpux 11.31环境的oracle 11.2.0.4版本,2节点RAC集群环境。
正常的配置参数后开始重启:
SQL> alter system set processes=10000 scope=spfile sid='hisdb1';
System altered.
SQL> alter system set processes=10000 scope=spfile sid='hisdb2';
System altered.
重启数据库报错,如下:
$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 9 20:18:51 2026
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup nomount
ORA-27154: post/wait create failed
ORA-27300: OS system dependent operation:semget failed with status: 28
ORA-27301: OS failure message: No space left on device
ORA-27302: failure occurred at: sskgpcreates
对该报错进行分析,是系统内核参数的限制,因此尝试修改内核参数,发现HPUX的这几个内核参数修改,需要重启HPUX系统才可以生效。因此将PROCESS修改为5000,先启用数据库。
kctune -h -B semmni=16384
kctune -h -B semmns=32768
* The automatic 'backup' configuration has been updated.
* Future operations will update the backup without prompting.
* The requested changes have been saved, and will take effect at
next boot.
Tunable Value Expression
semmni (now) 8192 8192
(next boot) 16384 16384
kctune -h -B semmns=32768
* The automatic 'backup' configuration has been updated.
* Future operations will update the backup without prompting.
* The requested changes have been saved, and will take effect at
next boot.
Tunable Value Expression
semmns (now) 16384 16384
(next boot) 32768 32768
后续经过分析,在HPUX上修改PROCESS参数,需要对应修改如下参数:
修改命令:
kctune -h -B semmni=16384
kctune -h -B semmns=32768
kctune -h -B nkthread=34768
kctune -h -B nproc=32768
kctune -h -B maxuprc=32000
参数值查看:
kctune|grep nproc
kctune|grep semmn
kctune|grep maxuprc
kctune|grep nkthread
再次申请停机维护窗口,将HPUX的5个参数修改后,数据库的PROCESS参数成功修改到10000.