必须先确认Voting Disk状态为ONLINE,再用crsctl replace votedisk在线迁移;目标磁盘组需已挂载、兼容性≥11.2.0.0.0、空间充足且对所有节点可见;命令仅支持指定磁盘组名,自动完成增删,成功后验证路径、OCR及votingdisk资源状态。

必须先确认 Voting Disk 当前状态,再用 crsctl replace votedisk 命令在线迁移;不能直接修改底层设备或卸载磁盘组,否则集群可能宕机。
确认当前 Voting Disk 位置和状态
在任意节点以 grid 用户执行:
crsctl query css votedisk
输出中 STATE 应为 ONLINE,Path 显示当前路径(如 +DATA 或 /dev/asm-diskb)。若显示 OFFLINE 或路径为空,说明 CSS 未正常启动,需先修复集群同步服务。
常见错误现象:CRS-4602: Failed to add voting file,通常因目标磁盘组未挂载、权限不足或 ASM 兼容性不匹配。
- 确保目标磁盘组已
mount(用sqlplus / as sysasm执行ALTER DISKGROUP <dg_name> MOUNT;</dg_name>) - 检查磁盘组
compatible.asm≥11.2.0.0.0(SELECT NAME, COMPATIBILITY FROM V$ASM_DISKGROUP) - 确认新磁盘路径对所有节点可见且属主为
grid:oinstall
使用 crsctl replace votedisk 迁移
该命令会自动完成“添加新投票盘 → 移除旧投票盘”的原子操作,无需停库或重启 CRS。但要求目标磁盘组至少有 3 块磁盘(NORMAL 冗余)或 1 块(EXTERNAL),且空间充足(每块投票盘约 28 MB)。
执行示例:
crsctl replace votedisk +NEWVOTE
成功后输出类似:
Successful addition of voting disk xxxxx. Successful deletion of voting disk yyyyy. Successfully replaced voting disk group with +NEWVOTE.
注意点:
- 不能指定具体 ASM 磁盘路径(如
+NEWVOTE/ASMDISK01),只能指定磁盘组名 - 11gR1 不支持此命令,必须用
crsctl delete css votedisk+crsctl add css votedisk组合,且删除首个路径时需加-force - 执行过程会触发 CSS 重平衡,期间
crsctl query css votedisk可能短暂显示部分路径为MISSING,属正常
验证迁移结果与后续检查
迁移完成后立即验证:
crsctl query css votedisk ocrcheck crsctl stat res -t | grep voting
关键确认项:
- 输出中所有
Path都指向新磁盘组(如+NEWVOTE),无残留旧路径 -
ocrcheck中 “Device/File Name” 不再包含旧投票盘设备 -
votingdisk资源状态为ONLINE,且分布在全部节点
容易被忽略的点:迁移后未更新 /etc/oracle/ocr.loc —— 该文件只管 OCR,不管 Voting Disk,所以无需改动;但若旧存储即将下线,务必确保新磁盘组所依赖的 udev 规则、multipath 别名、ASM 磁盘扫描配置(oracleasm scandisks)已在所有节点生效,否则节点重启后可能无法识别投票盘。











