某用户遇到RAC数据库的一个节点,应用程序无法连接上数据库的问题。排查发现是数据库监听程序异常,无法建立连接。经一系列排查,发现为数据库安装时的一些参数设置不够合理,在系统长时间运行后,出现了些问题。

[grid@rac-a ~]$ uptime --节点1启动时间长
 11:55:12 up 263 days,  2:38,  2 users,  load average: 1.53, 1.73, 1.85

[oracle@rac-b ~]$ uptime
 11:55:37 up 95 days, 18:55,  1 user,  load average: 1.99, 2.07, 1.99

一、节点1的报错信息:
7-FEB-2022 11:13:06 * (CONNECT_DATA=(SERVICE_NAME=orcl)(CID=(PROGRAM=D:\20211229\AAAexe)(HOST=**挂号)(USER=Administrator))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.111.12)(PORT=1486)) * establish * orcl * 0
17-FEB-2022 11:13:07 * (CONNECT_DATA=(SERVICE_NAME=orcl)(CID=(PROGRAM=Python)(HOST=NUC.local)(USER=hby))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.5.66)(PORT=57609)) * establish * orcl * 12518
TNS-12518: TNS:listener could not hand off client connection
 TNS-12536: TNS:operation would block
  TNS-12560: TNS:protocol adapter error
   TNS-00506: Operation would block
    Linux Error: 11: Resource temporarily unavailable
    
二、问题分析:
参考ORACLE文档UNIX: TNS-12518,TNS-12536 When Listener Load Increases (Doc ID 1920559.1),经核对需要修改增大相应的内核参数。

三、问题处理:   
目前在RAC数据库节点1主机上进行了如下操作(未重启主机及集群、数据库)

1.系统内核参数修改:/etc/sysctl.conf
kernel.shmmax = 4398046511104
kernel.shmall = 1073741824
kernel.sem = 1010 128000 1010 256
fs.aio-max-nr = 3145728