Voting Disk丢失后能否在线操作取决于剩余数量是否≥⌊N/2⌋+1:3块剩2块可在线修复,2块剩1块则集群已不可用,必须停CRS重建;有dd备份时需全节点停CRS、验证设备未占用、用conv=notrunc还原并cmp校验;OCR完好时须用crsctl start crs -excl -nocrs进独占模式,建NORMAL/HIGH冗余磁盘组后执行crsctl replace votedisk,恢复后须多节点验证路径与日志。

Voting Disk丢失后集群还能不能在线操作?
取决于剩余 Voting Disk 数量是否满足法定多数:必须 ≥ ⌊N/2⌋+1(N为原始总数)。比如 3 块坏 1 块,剩 2 块 → 可在线修复;2 块坏 1 块,剩 1 块 → CSS 已降级,集群实际已不可用,必须停 CRS 后重建。
- 先查状态:
crsctl query css votedisk,确认哪些是ONLINE、哪些是OFFLINE或完全无输出 - 若输出含
No such file or directory,说明底层设备已不可访问,不是临时掉线 - 别信
OFFLINE状态就代表还能抢修——CSS 可能已进入“redundancy loss”但尚未驱逐节点,窗口极短,需立刻验证
有 dd 备份时怎么安全还原?
dd 镜像能直接还原,但前提是备份时 Voting Disk 未被修改,且目标设备路径、大小、权限与原始一致。还原错一个字节,CRS 启动就可能卡在 CSS 层或触发脑裂。
- 所有节点先强制停 CRS:
crsctl stop crs -f(每个节点都执行,缺一不可) - 确认设备没被占用:
fuser -v /dev/raw/raw2或lsof /dev/raw/raw2输出应为空 - 还原命令必须带
conv=notrunc:dd if=/backup/votingdisk.bak of=/dev/raw/raw2 bs=4096 conv=notrunc - 还原后立即校验:
cmp /backup/votingdisk.bak /dev/raw/raw2—— 无输出才表示字节级一致
没备份但 OCR 完好,怎么重建 Voting Disk?
OCR 没坏,Voting Disk 全丢,唯一可行路径是进独占维护模式:ASM 能起来,CSS 跳过投票检查,给你操作窗口。缺 -excl 或 -nocrs 任一参数都失败。
- 仅在单节点执行:
crsctl start crs -excl -nocrs - 用
sqlplus / as sysasm创建新磁盘组,冗余必须是NORMAL或HIGH(EXTERNAL会报CRS-4602) - 磁盘组名最好与原 OCR 所在组一致,否则
ocrconfig -restore可能找不到目标位置 - 替换命令只用
crsctl replace votedisk +NEW_DG,不要用已弃用的crsctl add css votedisk
为什么 crsctl replace votedisk 报 CRS-4602?
这错误几乎不来自命令本身,而是底层存储或权限卡点。看到这个报错,先别改命令,去查三件事:
-
SELECT name,state FROM v$asm_diskgroup—— 输出必须是MOUNTED,DISMOUNTED或UNKNOWN都不行 - 执行用户是不是
root?grid用户是否在asmadmin组里? - OS 层设备是否被锁:
lsof /dev/sdb1或udevadm info --name=/dev/sdb1查是否有规则干扰
恢复完成后,别只看命令行输出 “Successful”。必须在每个节点分别跑 crsctl query css votedisk,确认路径和状态一致;再完整启停一次 CRS,观察 $GRID_HOME/log/`hostname`/cssd/ocssd.log 里有没有 voting file read successful —— 这才是真成功。


















