天天看点

Alert 日志报错:ORA-2730x OS Failure Message: No Buffer Space Available

前言

今天巡检遇到数据库报错 ORA-2730x 错误,数据库版本为Oracle 11204 (x86_64),错误日志如下:

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

※ 关键词: ORA-2730x、status: 105、sskgxpsnd2。

一、问题分析

1、错误代码解释

通过

Oracle oerr

工具查看相关提示信息:

Alert 日志报错:ORA-2730x OS Failure Message: No Buffer Space Available

可以发现:

ORA-2730x

显示是OS系统层面的错误。

2、查询 MOS 文档

通过查询MOS文档,发现该错误相符合的文档:

  • Troubleshooting ORA-27300 ORA-27301 ORA-27302 Errors (Doc ID 579365.1)
  • Oracle Linux: ORA-27301:OS Failure Message: No Buffer Space Available ( Doc ID 2041723.1 )
  • ORA-27301: OS Failure Message: No Buffer Space Available / ORA-27302: failure occurred at: sskgxpsnd2 Source Script ( Doc ID 2322410.1 )
Alert 日志报错:ORA-2730x OS Failure Message: No Buffer Space Available

根据文档提示: 这是因为可用于网络缓冲区预留的空间较少,可通过修改

vm.min_free_kbytes

参数和

MTU

来修复。

二、解决方案

官方 MOS 文档提供了详细的解决方案:

Alert 日志报错:ORA-2730x OS Failure Message: No Buffer Space Available

完整操作步骤:

1、关闭数据库和集群

srvctl stop database -d orcl      

2、修改MTU参数

ifconfig lo mtu 16384      

或者:

以下命令修改可以使server重启后也生效

cat <<EOF>>/etc/sysconfig/network-scripts/ifcfg-lo
MTU=16384
EOF      

3、重启网络使其生效,对于

crs

运行的server,需要关闭

crs

,重启网络。或请在维护时间窗口,设置 2 里的参数后,重启服务器。

service network restart      

4、修改系统参数

vm.min_free_kbytes

##设定 vm.min_free_kbytes 参数为物理内存的0.4%
##本机内存大小为131357180 Kb,则配置参数大小为131357180*0.4%≈525429
cat <<EOF>>/etc/sysctl.conf
/etc/sysctl.conf
EOF
##生效
sysctl -p      

5、重启主机

reboot      

📢 注意: 需要数据库

停机

进行操作!