症状:
出现以下情况时,Oracle Clusterware 会驱逐群集中的节点
节点未通过网络心跳进行 ping 操作
节点未 ping 表决磁盘
节点被挂起/忙碌,因此无法执行任何一个之前的任务
在大多数情况下,当节点被驱逐时,会有信息写入日志,用于分析节点驱逐的原因。但是,在某些情况下可能缺少这一步,本文介绍的步骤适合以下这些情况:在 11gR2 (11.2.0.1) 之前的 Clusterware 版本中,没有足够的信息或没有信息可用于分析节点驱逐的原因。
原因:
节点被驱逐以及节点因 CPU(或 CPU 不足)而变得异常繁忙时,可能会造成操作系统没有时间将日志/跟踪信息刷新到文件系统中。一种有用的方法是设置 diagwait 属性,以延迟节点重新启动,给操作系统足够的时间写入跟踪信息。设置 diagwait 后,Clusterware 将在重新启动之前再等待 10 秒 (Diagwait - reboottime),以便在不增加数据损坏的可能前提下,安全的搜集诊断数据。客户在修正操作系统调度问题后,可以按照下文介绍的步骤取消 diagwait的设置。
Diagwait 属性在 10.2.0.3 被推出,已经包含 10.2.0.4 & 11.1.0.6 以及更高的版本中。 大多数平台的 10.1.0.5 版本也已经包含。 这意味着您可以在 10.1.0.5 (及更高), 10.2.0.3 (及更高) 和 11.1.0.6 (及更高) 版本中设置 diagwait。 如果 crsctl set/get css diagwait 命令返回 "unrecognized parameter diagwait specified" 这说明Clusterware 版本不能实施 diagwait。 请您在设置diagwait前打上对应的 patchset。
解决方案:
更改 diagwait 时务必关闭所有节点上的 clusterware 软件。下面是设置 diagwait 的分步说明。
1,以root用户的身份执行
#crsctl stop crs
#/bin/oprocd stop,
2,执行以下命令,确保关闭所有节点上的 Clusterware 软件
#ps -ef |egrep "crsd.bin|ocssd.bin|evmd.bin|oprocd"
这步应该不会返回任何进程。如果在 clusterware 运行时继续执行下一步骤,可能会损坏 OCR。在关闭群集所有节点上的 clusterware 软件前,不要继续操作。
3,在群集的一个节点上,通过root用户发出以下命令,可将“diagwait”参数的值改为 13 秒:
#crsctl set css diagwait 13 -force
4,执行以下命令,检查是否已成功设置 diagwait。该命令应返回 13。如果未设置 diagwait,将返回消息“Configuration parameter diagwait is not defined”。
#crsctl get css diagwait
5,在集群所有的节点上执行以下命令,重新启动Clusterware 软件:
#crsctl start crs
6,在所有节点执行以下命令,验证Clusterware 是否正常运行:
#crsctl check crs
取消设置/删除 diagwait
客户在修正操作系统调度问题前,不应取消diagwait设置,因为这样可能会导致出现节点驱逐的情况。Diagwait 会将节点驱逐(和重新配置)延迟 diagwait (13) 秒,这种配置不会影响大多数客户。如果需要移除 diagwait,则应按照上述步骤操作,其中步骤 3 需用以下命令替代
#crsctl unset css diagwait -force
(注意:在取消设置 diagwait 时,必须使用 -force 选项,因为执行取消设置操作时 Clusterware 已经关闭)
参考:(文档 ID 1525761.1)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25373498/viewspace-1616555/
,如需转载,请注明出处,否则将追究法律责任。