Problem Description
---------------------------------------------------
Tue Sep 01 04:05:33 2020
skgxpvfynet: mtype: 61 process 417356 failed because of a resource problem in the OS. The OS has most likely run out of buffers (rval: 4)
Errors in file /u01/app/oracle/diag/rdbms/syntong/syntong1/trace/syntong1_w001_417356.trc (incident=96021):
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: /u01/app/oracle/diag/rdbms/syntong/syntong1/incident/incdir_96021/syntong1_w001_417356_i96021.trc
opidrv aborting process W001 ospid (417356) as a result of ORA-603
 
Error Codes
---------------------------------------------------
ORA-00603 ORA-27504 ORA-27300 ORA-27301 ORA-27302
 
根据MOS文档查询,发现匹配文档中的105错误:
 
STATUS 105 - ENOBUFS - No buffer space available
This error means that a socket cannot be created until resources are freed.

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

See: Oracle Linux: ORA-27301:OS Failure Message: No Buffer Space Available (Doc ID 2041723.1)

查看MTU:

MTU of loopback adapter is too high. We can use the command "netstat -in" see the current MTU size

Linux: #netstat -in

Kernel Interface table
   Iface   MTU   Met   RX-OK   RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
   eth0   1500    0    1371747  0      0      0     1858   0       0     0     BMRU
   lo     65536   0      46943  0      0      0    46943   0       0     0     LRU
   virbr0 1500    0          0  0      0      0       32   0       0     0     BMRU

文档提供的解决方案:

Doc ID 2041723.1:

CAUSE

This happens due to less space available for network buffer reservation.

SOLUTION

1. On servers with High Physical Memory, the parameter vm.min_free_kbytes should be set in the order of 0.4% of total Physical Memory. This helps in keeping a larger range of defragmented memory pages available for network buffers reducing the probability of a low-buffer-space conditions.

*** For example, on a server which is having 256GB RAM, the parameter vm.min_free_kbytes should be set to 1073742 ***

On NUMA Enabled Systems, the value of vm.min_free_kbytes should be multiplied by the number of NUMA nodes since the value is to be split across all the nodes.

 
On NUMA Enabled Systems, the value of vm.min_free_kbytes = n * 0.4% of total Physical Memory. Here 'n' is the number of NUMA nodes.

2. Additionally, the MTU value should be modified as below

#ifconfig lo mtu 16436

To make the change persistent over reboot add the following line in the file /etc/sysconfig/network-scripts/ifcfg-lo :

MTU=16436

Save the file and restart the network service to load the changes

#service network restart
Note : While making the changes in CRS nodes, if network is restarted while CRS is up, it can hung CRS. So cluster services should be stopped prior to the network restart.

vm.min_free_kbytes

该参数表示Linux VM最低保留多少的空闲内存空间,当可用的内存低于配置参数时,系统会进行cache内存的回收,来进行内存的释放。

单位是kb

以下是我整理的苏大文正解决方案步骤:

SOLUTION:
 
 一、前期准备

1、检查集群及数据库运行情况

#su - grid

#crs_stat -t

#su - oracle

#sqlplus / as sysdba

SQL>select INST_ID,INSTANCE_NUMBER,INSTANCE_NAME,STATUS,DATABASE_STATUS,INSTANCE_ROLE from gv$Instance;

2、检查数据库备份情况

SQL>

col INPUT_BYTES_DISPLAY for a10
col OUTPUT_BYTES_DISPLAY for a10
col TIME_TAKEN_DISPLAY for a10
set line222
 
select input_type,
       status,
       to_char(start_time,
               'yyyy-mm-dd hh24:mi:ss'),
       to_char(end_time,
               'yyyy-mm-dd hh24:mi:ss'),
       input_bytes_display,
       output_bytes_display,
       time_taken_display
  from v$rman_backup_job_details
 where start_time > date '2020-09-10'
 order by 3 desc;
 

3、备份节点一/etc/sysctl.conf文件

#cp /etc/sysctl.conf /home/oracle/pst

 

二、配置调整

集群环境需要先关闭CRS集群服务,修改网络配置会Hang住CRS;修改系统参数需要重启数据库;

顺序关闭 数据库,集群 (共三套库:syntong1,carddb1,urpdb1)

1、关闭数据库:
#su - grid
#srvctl stop instance -d syntong -i syntong1
#srvctl stop instance -d syntong -i syntong2
#srvctl stop instance -d carddb -i carddb1
#srvctl stop instance -d carddb -i carddb2
#srvctl stop instance -d urpdb -i urpdb1
#srvctl stop instance -d urpdb -i urpdb2
#which crsctl
 
2、关闭集群:
#su - root
#cd /u01/app/grid/product/11.2.0/db_1/bin/crsctl
#crsctl stop cluster -all
 

节点一:(由于节点一报错ora-2700*,因此修改节点一)

3、修改网络配置:

修改配置文件

#vi /etc/sysconfig/network-scripts/ifcfg-lo

MTU=16436

重启网络服务

# systemctl restart network

 

4、修改系统参数:

设定 vm.min_free_kbytes 参数为物理内存的0.4%

本机内存大小为131357180 Kb,则配置参数大小为131357180*0.4%≈525429

#vi /etc/sysctl.conf

vm.min_free_kbytes = 525429

生效

#sysctl -p

顺序开启 集群,数据库 (共三套库:syntong1,carddb1,urpdb1)

5、开启集群:
#su - root
#cd /u01/app/grid/product/11.2.0/db_1/bin/crsctl
#crsctl start cluster -all
 
6、开启数据库:
#su - grid
#srvctl start instance -d syntong -i syntong1
#srvctl start instance -d syntong -i syntong2
#srvctl start instance -d carddb -i carddb1
#srvctl start instance -d carddb -i carddb2
#srvctl start instance -d urpdb -i urpdb1
#srvctl start instance -d urpdb -i urpdb2

检查集群及数据库运行情况

#su - grid

#crs_stat -t

#su - oracle

#sqlplus / as sysdba

SQL>select INST_ID,INSTANCE_NUMBER,INSTANCE_NAME,STATUS,DATABASE_STATUS,INSTANCE_ROLE from gv$Instance;

三、后续观察
查看是否继续出现ORA-2700*错误:
#su - oracle
#adrci
adrci>show problem
adrci>show incident
#cd $ORACLE_BASE/diag/rdbms/syntong/syntong1/trace
#tail -f alert_syntong1.log
 
 

苏大文正节点一 ORA-00603 ORA-27504 ORA-27300 ORA-27301 ORA-27302 BUG的更多相关文章

  1. 确成硅化+恒力+苏大文正节点2 oracle ora-4030 错误pga version:11204

    Errors in file /u01/app/oracle/oracle/diag/rdbms/orcl/orcl/trace/orcl_j000_61543.trc (incident=18009 ...

  2. 深入理解DOM节点类型第七篇——文档节点DOCUMENT

    × 目录 [1]特征 [2]快捷访问 [3]文档写入 前面的话 文档节点document,隶属于表示浏览器的window对象,它表示网页页面,又被称为根节点.本文将详细介绍文档节点document的内 ...

  3. 解决持久化数据太大,单个节点的硬盘无法存储的问题;解决运算量太大,单个节点的内存、CPU无法处理的问题

    需要学习的技术很多,要自学新知识也不是一件容易的事,选择一个自己比较感兴趣的会是一个比较好的开端,于是,打算学一学分布式系统. 带着问题,有目的的学习,先了解整体架构,在深入感兴趣的细节,这是我的计划 ...

  4. jQuery文档节点处理,克隆,each循环,动画效果,插件

    文档节点处理 //创建一个标签对象 $("<p>") //内部插入 $("").append(content|fn) ----->$(&quo ...

  5. java中XML操作:xml与string互转、读取XML文档节点及对XML节点增删改查

    一.XML和String互转: 使用dom4j程式变得很简单 //字符串转XML String xmlStr = \"......\"; Document document = D ...

  6. solr schema.xml文档节点配置

    首先,讲解一下/usr/local/solr/collection1/conf/schema.xml的配置,此文档功能类似于配置索引数据库. Field:类似于数据库字段的属性(此文统一使用用“字段” ...

  7. Java获取XML节点总结之读取XML文档节点

    dom4j是Java的XML API,用来读写XML文件的.目前有很多场景中使用dom4j来读写xml的.要使用dom4j开发,需要下载导入dom4j相应的jar文件.官网下载:http://www. ...

  8. javascript文档节点

    创建文本节点 document.createTextNode() 创建新文本节点,该方法接收一个参数,即要插入节点中的文本信息. <script> //创建一个div节点 var elem ...

  9. LAXCUS大数据操作系统节点挂掉后的处理

    昨天回公司加班跑一个LAXCUS大数据应用,JVM直接挂了,没有留下任何异常信息,查看代码,也没有内存泄漏的问题.百思不得姐,只好去求教LAXCUS大数据操作系统的技术客服,客服查看了故障节点配置.日 ...

随机推荐

  1. 为什么 java.util.Stack不被官方所推荐使用!

    Java 为什么不推荐使用 Stack 呢? 因为 Stack 是 JDK 1.0 的产物.它继承自 Vector,Vector 都不被推荐使用了,你说 Stack 还会被推荐吗? 当初 JDK1.0 ...

  2. 【翻译】Promises/A+规范

    目录 介绍 译文 1. 术语(Terminology) 2. 要求(Requirements) 2.1 Promise状态 2.2 then方法 2.3 Promise解析程序 3. 注释 3.1 p ...

  3. Docker入门教程-Linux环境安装Nginx及入门使用

    介绍 Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服 ...

  4. Linux查看系统硬件信息命令汇总

    对工作中,经常用的查看系统硬件命令的一个简单总结 1.查看磁盘类型(是否SSD盘)cat /sys/block/sda/queue/rotational注意:命令中的sba是你的磁盘名称,可以通过df ...

  5. 操作系统-I/O(6)I/O与系统调用

    所有高级语言的运行时(runtime)都提供了执行I/O功能的机制. 例如,C语言中提供了包含像printf()和scanf()等这样的标准I/O库函数, C++语言中提供了如 <<和&g ...

  6. CentOS 6.x/7.x上安装git

    yum安装 # yum info git # yum install -y git 可以通过下面的命令来检查是否安装了git环境 git --version 参考:如何在CentOS 6.x/7.x上 ...

  7. python连接mysql中报错1064修改方法

    Python是编程语言,MySQL是数据库,它们是两种不同的技术:要想使Python操作MySQL数据库需要使用驱动.这里选用PyMySQL驱动.下载地址: https://pypi.python.o ...

  8. ORB-SLAM: A Versatile and Accurate Monocular SLAM System 笔记(一)

    ORB-SLAM: A Versatile and Accurate Monocular SLAM System Abstract 这篇文章提出了 ORB-SLAM,一个基于特征的单目SLAM系统,这 ...

  9. webpack 打包的具体步骤

    webpack打包的方法: 方法一 创建一个src文件夹(存放自己的代码),dist文件夹(打包到此文件夹) 2编写自己的代码,在src文件夹中创建一个主模块main.js和若干个js文件,将模块js ...

  10. Number(),parseInt()和parseFloat

    一.Number() 1.如果是传进去数字值,只进行传入和传出,前置为  0x  的数字 和 前置  为0且不包含数字8,9的数字  ,会被转为十进制,对于其他的数字来说通常没有变化. 2.如果传进去 ...