如何分析RAC心跳超时_MISSCNT与DISKTIMEOUT参数深度解析

张开发
2026/4/21 8:18:42 15 分钟阅读
如何分析RAC心跳超时_MISSCNT与DISKTIMEOUT参数深度解析
ORA-29740 表明CSS因连续misscnt次未收到心跳而驱逐节点misscnt默认30≈30秒中断容忍非延迟容忍而是丢包次数disktimeout控制表决盘I/O超时默认200ms与misscnt独立作用。ORA-29740 是心跳超时的直接信号只要集群节点被踢出evicted日志里大概率出现 ora-29740: cluster member death detected这基本锁定是心跳链路出了问题。不是磁盘故障也不是网络分区误判而是 csscluster synchronization services在连续 misscnt 次未收到对端心跳后主动触发驱逐。这个值不是“容忍延迟”而是“允许丢包次数”——每次心跳周期默认 1 秒算一次机会丢满 misscnt 次就动手。misscnt 默认是 30对应理论最大容忍中断时长 ≈ 30 秒但实际远小于此因为心跳不是严格按秒准时发出调高 misscnt 不等于“更稳”反而会延长故障发现时间导致脑裂风险上升调低虽能更快响应但可能把瞬时网络抖动误判为节点死亡尤其在高负载或共享存储延迟波动时修改需重启 CSSDcrsctl stop crs crsctl start crs不能热生效DISKTIMEOUT 决定投票盘失效判定时机disktimeout 控制的是 CSS 读取表决盘voting disk的等待上限单位毫秒。它不参与节点间心跳判断只影响“我还能不能继续当集群一员”的资格审查。一旦连续多次读表决盘超时次数由内部逻辑控制不暴露给用户CSS 就会认为自己已与集群失联主动退出。默认值通常是 200ms适用于低延迟 SAN 或本地 NVMe若用 NFS 或高延迟 ASM 磁盘可能频繁触发 CRS-4639: Could not contact Oracle High Availability Services该参数和 misscnt 没有数学换算关系二者独立作用一个管“听不见邻居”一个管“摸不到票箱”调整前必须确认底层存储 I/O 稳定性否则只是掩盖问题——比如把 disktimeout 改成 500ms却无法解决存储队列积压最终仍会失败修改方式通过 crsctl set css disktimeout ms无需重启但新值仅对后续 I/O 生效查当前值别只信文档默认值可能已被覆盖Oracle 安装或补丁升级后misscnt 和 disktimeout 可能被隐式重置或继承自 profile。不能假设“没改过就是默认值”。最可靠的方式是现场查 Mokker AI AI产品图添加背景

更多文章