ITPub博客

首页 > 数据库 > Oracle > 【ASK_ORACLE】Oracle RAC报错“ipc send timeout”的原因以及解决办法

【ASK_ORACLE】Oracle RAC报错“ipc send timeout”的原因以及解决办法

原创 Oracle 作者:Attack_on_Jager 时间:2021-09-01 11:33:25 0 删除 编辑

实验环境

搭建平台:VMware Workstation

OS:RHEL 6.10

Grid&DB:Oracle 11.2.0.4


问题描述

实例被踢出时,查看alert日志发现了许多的“IPC send timeout” (IPC 发送超时)错误。原因如下:

在RAC环境中,数据库的进程(比如 lmon、lmd 和 lms )会不断地和其他实例的进程通信。lmd0 进程负责管理 enqueue,而 lms 进程负责管理数据块资源并传输数据块以支持 Cache Fusion。如果这些进程中的一个或多个受阻、死循环或异常繁忙,都可能导致“IPC send timeout”错误。

lmon、lms 和 lmd 进程报告“IPC send timeout”错误的另一个原因是网络问题或服务器资源(CPU 和内存)问题。这些进程可能无法获得 CPU 运行调度或这些进程发送的网络数据包丢失。涉及 lmon、lmd 和 lms 进程的通信问题导致实例被踢出。

因此此报错通常伴随数据库性能问题!

alert日志的报错信息如下:

......

IPC Send timeout detected.Sender: ospid 1587
Receiver: inst 6 binc 738274875 ospid 29098
......


如果某实例被踢出,除了alert日志中的“IPC Send timeout detected”的报错还可能涉及到如 ora-29740 和脑裂“Waiting for clusterware split-brain resolution”。


解决办法

这里提供几种方案来排查(解决方法和ora-29740的解决方案一致,详见 http://blog.itpub.net/69992972/viewspace-2789808/):

1) 检查网络,比如 UDP 错误或 IP 数据包丢失或故障错误
2) 检查网络配置,确保所有节点上的所有网络配置均设置正确。例如,所有节点上 MTU 的大小必须相同,并且如果使用巨帧,交换机也能够支持大小为 9000 的 MTU
3) 检查服务器是否存在 CPU 负载问题或可用内存不足
4) 检查数据库在实例被踢出之前是否正处于挂起状态或存在严重的性能问题
5) 检查 CHM (Cluster Health Monitor) 输出,查看服务器是否存在 CPU 或内存负载问题、网络问题或者 lmd 或 lms 进程出现死循环
6) 使用 OSWatcher 来进行监控


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69992972/viewspace-2789814/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
在某银行任职DBA,拥有多年数据库运维经验,擅长Oracle,MySQL。尤其擅长Oracle的SQL优化,数据库性能调优,数据库备份、恢复与迁移。拥有的认证:OCM 12c,OCM 11g,MySQL OCP,RHCE,阿里云ACP,巨杉SCDP,软考系统集成工程师认证,Oracle Iaas OCA,OBCA,TDSQL认证,TBase认证

注册时间:2021-01-11

  • 博文量
    102
  • 访问量
    260143