环境信息
Oracle版本:Oracle 12.1.0.2 Standard Edition
Oracle架构:Standard with RAC
Oracle硬件:128GB
Oracle配置:SGA 80GB / PGA 24GB
问题描述
敏感信息已经处理
Oracle RAC数据库节点02出现偶发性无法访问,系统日志反馈信息如下:
Listener报警日志:
07-MAR-2022 19:01:44 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=test)(CID=(PROGRAM=)(HOST=test)(USER=test))(INSTANCE_NAME=ORCL2)) * (ADDRESS=(PROTOCOL=tcp)(HOST=xxx.xxx.xxx.xxx)(PORT=61274)) * establish * test* 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 32: Broken pipe
Alert log报警日志:(3/7 19:00 ~ 20:00之间持续出现)
Mon Mar 07 19:01:32 2022
skgxpvfynet: mtype: 61 process 120307 failed because of a resource problem in the OS. The OS has most likely run out of buffers (rval: 4)
Errors in file /opt/app/oracle/diag/rdbms/trace/ORCL2/test/ORCL2_ora_120307.trc (incident=1560174):
ORA-00603: ORACLE server session terminated by fatal error
ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:sendmsg failed with status: 105
ORA-27301: OS failure message: No buffer space available
ORA-27302: failure occurred at: sskgxpsnd2
Incident details in: /opt/app/oracle/diag/rdbms/test/ORCL2/incident/incdir_1560174/ORCL2_ora_120307_i1560174.trc
19:00 开始,节点02 将会执行RMAN备份任务。
原因分析
依据[Linux Error: 32: Broken pipe]可能的原因如下:
Cause:
The error 32 indicates the communication has been broken while the listener is trying to hand off the client connection to the server process or dispatcher process.
Action:
1. One of reason would be processes parameter being low, and can be verified by the v$resource_limit view.
=> 设定值是5000,实际运用远没有达到的。
2. In Shared Server mode, check the 'lsnrctl services' output and see if the dispatcher has refused any connections, if so, then consider increasing the number of dispatchers.
=> 设定是专用模式,而不是共享模式。
3. Check the alert log for any possible errors.
=> AlertLog存在ORA-27301错误。
4. Memory resource is also another cause for this issue. Check the swap, memory usage of the OS.
=> 不排除此项的可能性,毕竟节点二比节点一的任务多。
依据[ORA-27301: OS failure message: No buffer space available]可能的原因如下:
解决方案
在节点二变更相关的优化参数,将内存释放一些出来的。
参考资料
Oracle Linux: ORA-27301:OS Failure Message: No Buffer Space Available (Doc ID 2041723.1)