实验环境
搭建平台:VMware Workstation
OS:RHEL 6.10
Grid&DB:Oracle 11.2.0.4
问题描述一个实例将另一个实例从 RAC 数据库踢出时,被踢出的实例的alert日志出现了“ORA-29740:evicted by member ”错误导致了实例崩溃。出现这个问题的原因一般可能是集群中的通信错误、向控制文件发送“心跳”失败或者其它原因等。 此时需要检查所有实例的 lmon 的trace文件,这对确定实例驱逐的原因代码而言非常重要。查找包含“kjxgrrcfgchk:Initiating reconfig”的那一行。举一个由于“通信故障”导致 ora-29740错误的例子,如“kjxgrrcfgchk:Initiating reconfig, reason 3”。这里的“reason 3”表示实例被踢出是由于原因 3(“通信故障”) 导致的。导致通信故障的可能原因如下: 1)网络问题 2)资源耗尽(CPU、I/O 等) 3)严重的数据库争用 4)Oracle bug 解决办法这里提供几种方案来排查:1) 检查网络,比如 UDP 错误或 IP 数据包丢失或故障错误 2) 检查网络配置,确保所有节点上的所有网络配置均设置正确。例如,所有节点上 MTU 的大小必须相同,并且如果使用巨帧,交换机也能够支持大小为 9000 的 MTU 3) 检查服务器是否存在 CPU 负载问题或可用内存不足 4) 检查数据库在实例被踢出之前是否正处于挂起状态或存在严重的性能问题 5) 检查 CHM (Cluster Health Monitor) 输出,查看服务器是否存在 CPU 或内存负载问题、网络问题或者 lmd 或 lms 进程出现死循环 6) 使用 OSWatcher 来进行监控
