天天看點

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      

📢 注意: 需要資料庫

停機

進行操作!