使用 Diagwait 作为诊断工具,获取用于诊断 Oracle Clusterware 节点驱逐的更多信息 (文档 ID 1525761.1)

来源:互联网 发布:周生生淘宝 编辑:程序博客网 时间:2024/06/06 03:26
转到底部转到底部

文档内容

症状 更改 原因 解决方案 取消设置/删除 diagwait 参考

适用于:

Oracle Database - Enterprise Edition - 版本 10.1.0.5 到 11.1.0.7 [发行版 10.1 到 11.1]
UnitedLinux Itanium
Linux x86
HP-UX PA-RISC (64-bit)
IBM AIX on POWER Systems (64-bit)
Oracle Solaris on SPARC (64-bit)
HP-UX Itanium
Red Hat Enterprise Linux Advanced Server x86-64 (AMD Opteron Architecture)
Red Hat Enterprise Linux Advanced Server Itanium
Oracle Solaris on x86-64 (64-bit)
Linux x86-64

症状

 

出现以下情况时,Oracle Clusterware 会驱逐群集中的节点

  • 节点未通过网络心跳进行 ping 操作
  • 节点未 ping 表决磁盘
  • 节点被挂起/忙碌,因此无法执行任何一个之前的任务

在大多数情况下,当节点被驱逐时,会有信息写入日志,用于分析节点驱逐的原因。但是,在某些情况下可能缺少这一步,本文介绍的步骤适合以下这些情况:在 11gR2 (11.2.0.1) 之前的 Clusterware 版本中,没有足够的信息或没有信息可用于分析节点驱逐的原因。

从 11.2.0.1 开始,客户无需设置 diagwait,因为我们已经更改了体系结构。

更改

原因

节点被驱逐以及节点因 CPU(或 CPU 不足)而变得异常繁忙时,可能会造成操作系统没有时间将日志/跟踪信息刷新到文件系统中。一种有用的方法是设置 diagwait 属性,以延迟节点重新启动,给操作系统足够的时间写入跟踪信息。设置 diagwait 后,Clusterware 将在重新启动之前再等待 10 秒 (Diagwait - reboottime),以便在增加数据损坏的可能前提下,安全的搜集诊断数据。客户在修正操作系统调度问题后,可以按照下文介绍的步骤取消 diagwait的设置。

* -- 可在 Windows 上设置 Diagwait,但它不会如同在 Unix-Linux 平台上那样改变行为

 

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 
    #<CRS_HOME>/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 已经关闭)

参考


NOTE:726833.1 - Linux: Hangcheck-Timer Module Requirements for Oracle 9i, 10g, and 11gR1 RAC
0 0