必须先确认是Voting Disk失联而非CSSD崩溃或私网中断;crsctl query css votedisk报CRS-4602或返回空即为典型失联信号,需依次检查集群通信、私网连通性、ASM磁盘组状态及多路径设备可达性,再决定是否替换。

必须先确认是 Voting Disk 失联,而不是 CSSD 崩溃或私网中断——否则所有恢复动作都是徒劳。
crsctl query css votedisk 报 CRS-4602 或返回空结果
这是最典型的失联信号。但别急着换盘,先排除外围:用 crsctl check cluster -all 看各节点是否能互相通信;用 ping -I 实测私网直连;再查 asmcmd lsdg,确认 Voting Disk 所在磁盘组(比如 +OCR)状态不是 MOUNTED 或 DISMOUNTED。如果磁盘组本身不可见或 STATE=CONNECTING,问题在 ASM 层,不是 Voting Disk 本身。
voting disk 路径底层设备不可达(如 /dev/mapper/mpathb 丢失)
常见于多路径配置失效、SAN 链路抖动或存储侧 LUN 隐藏。执行以下检查:
- 在每个节点运行
multipath -ll | grep mpathb,确认设备存在且状态为active ready running - 检查
/etc/multipath.conf中对应 WWID 是否匹配/usr/lib/udev/scsi_id -g -u -d /dev/sdX输出 - 若设备名变更(如从
mpathb变成mpathc),crsctl replace votedisk必须指向新名,旧路径会静默失败 - 替换前务必停集群:
crsctl stop crs -f(每节点都执行),否则命令直接拒绝
ocrconfig -replace votedisk 失败或不生效
ocrconfig -replace votedisk 不是“热操作”,它依赖 OCR 元数据一致性。失败常见原因:
- 没在独占模式下执行:必须先
crsctl start crs -excl -nocrs,只启动 CSS 和 ASM,再运行命令 - 路径写错:必须是绝对路径,且属主为
grid,权限为-rw-r-----;ls -l /dev/mapper/mpathb应显示brw-rw---- 1 grid asmadmin - 误加
-local参数:该参数只对 OLR 有效,加了会无提示跳过 - 目标磁盘未被 ASM 识别:先用
sqlplus / as sysasm执行select path from v$asm_disk where header_status='MEMBER';确认设备已加入 ASM
只剩一个 voting disk 可写,但集群仍卡在 STARTING 状态
这说明仲裁机制已瘫痪,CSSD 进入无限等待。此时不能靠重启解决:
- 立即检查
$GRID_HOME/log/,搜索/cssd/ocssd.log clssnmCheckDskInfo和IO timeout,确认是否因 I/O 延迟超限触发驱逐 - 若日志中反复出现
misscount reached,说明私网+磁盘心跳双失效,需同步排查网络和存储链路 - 不要强行
crsctl start crs:可能触发脑裂。正确做法是全停集群 → 单节点独占启动 →ocrconfig -replace votedisk→ 验证votedisk状态 → 再逐个启动其他节点
真正难的不是命令怎么敲,而是判断「此刻该不该动 voting disk」——很多所谓“修复”其实是把原本还能抢救的 CSSD 进程彻底推入不可逆状态。每次操作前,先看 ocssd.log 最后 20 行有没有 reconfiguration 或 eviction 关键字,有就说明节点已被标记驱逐,得按驱逐后恢复流程走,不是简单换盘能解决的。











