ITPub博客

首页 > 大数据 > 数据挖掘 > 技术分享 | Oracle RAC 心跳机制解析

技术分享 | Oracle RAC 心跳机制解析

原创 数据挖掘 作者:aaza00001 时间:2025-07-16 04:53:53 0 删除 编辑

一、心跳机制概述

Oracle RAC集群通过多维度心跳机制确保集群高可用性,主要包括三种心跳类型:

  • 网络心跳:节点间连通性检测
  • 磁盘心跳:脑裂保护与仲裁机制
  • 本地心跳:进程自检与节点健康监控

二、核心心跳机制详解

2.1 网络心跳

功能特性

  • 每秒通过ocssd.bin进程发送心跳包
  • 检测节点间网络连通性
  • 触发集群重新配置的主要依据

核心进程

进程名称 功能描述
clssnmSendingThread 每秒向集群其他节点发送心跳包
clssnmPollingThread 分析接收的心跳信息,触发集群重配置
clssnmRcfgMgrThread 执行集群重新配置操作
clssnmClusterListener 接收并分发远程节点消息

工作流程

A[节点1发送线程] --> B[节点2派遣线程]

2.2 磁盘心跳

防脑裂机制

  • 每秒向所有表决盘写入心跳信息
  • 使用VF(Voting File)同步集群成员状态
  • 当网络分区发生时,通过磁盘心跳仲裁存活节点

关键进程

  • clssnmvDiskPingThread:负责VF心跳写入与kill block检测
  • clssnmvDiskPingMonitorThread:监控磁盘心跳健康状态
  • clssnmvKillBlockThread:处理kill block指令

仲裁流程

sequenceDiagram

节点A->>表决盘: 写入心跳+成员列表

2.3 本地心跳

自检机制

  • 同步发送网络心跳与本地状态信息
  • 监控ocssd.bin进程健康状态
  • 触发节点自愈重启的关键机制

关联进程

  • cssdagent:本地进程状态监控
  • cssdmonitor:节点健康状态采集

三、集群重配置机制

3.1 触发条件

触发类型 检测机制 典型日志特征
网络心跳丢失 连续misscount阈值超限 “eviction started for node”
磁盘心跳异常 表决盘访问超时 “CSSD aborting from thread”
本地心跳失效 进程状态检测失败 “clsnproc\_needreboot”

3.2 重配置流程

  1. 重配置发起:RM节点广播重配置请求
  2. 状态收集:各节点上报当前状态
  3. 脑裂检测:结合网络/磁盘心跳进行仲裁
  4. 节点驱逐:写入poison package指令
  5. 拓扑更新:生成新的成员列表
  6. 资源解冻:完成DRM(Dynamic Resource Mastering)


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

请登录后发表评论 登录
全部评论

注册时间:2025-07-16

  • 博文量
    12
  • 访问量
    12363