ocr损坏但有自动备份时,先停所有节点crs,再单节点执行ocrconfig -restore恢复,默认每4小时备份于$oracle_home/cdata//下,恢复后用ocrcheck验证并逐节点启crs。
ocr 和 voting disk 一旦损坏,crsctl start crs 会直接失败,集群无法启动——这不是“服务异常”,而是“大脑+心脏停跳”。手动恢复可行,但必须严格区分场景:有备份走 ocrconfig -restore,无备份只能重建;voting disk 损坏数量决定是否还能在线操作。
OCR 损坏但有自动备份时怎么恢复?
Oracle 默认每 4 小时在 Master Node 自动备份一次,存于 $ORACLE_HOME/cdata/<cluster_name>/</cluster_name> 下,文件名如 backup00.ocr。只要这个目录没被一并删除,就优先走这条路。
- 先确认当前 OCR 配置路径:
ocrcheck -config,再列出可用备份:ocrconfig -showbackup - 必须先停掉所有节点的 Clusterware:
crsctl stop crs -f(不能只停一个) - 仅在**一个节点**上执行恢复命令,例如:
ocrconfig -restore /u01/app/19.0.0/grid/cdata/rac-cluster/backup00.ocr - 恢复后用
ocrcheck验证状态,再逐节点启 CRS:crsctl start crs - 注意:
ocrconfig -manualbackup在 11.2.0.3+ 版本中已被标记为无效(PROT-25错误),别依赖它
Voting Disk 损坏一块还能在线修复吗?
能,但前提是剩余 Voting Disk 数量 ≥ ⌊N/2⌋+1。比如 3 块中坏 1 块(剩 2),2 块中坏 1 块(剩 1)——后者不满足多数,集群已宕机,无法在线操作。
- 查当前状态:
crsctl query css votedisk,确认哪些设备 ONLINE、哪些 OFFLINE - 若只剩 1 块且是 2 节点集群,CSS 已降级为不可用,必须停 CRS 后重建或替换
- 若满足多数(如 3 块剩 2),可在线迁移:
crsctl replace votedisk +NEW_DG,新磁盘组必须是 NORMAL 或 HIGH 冗余(EXTERNAL 不行) - 执行后自动同步所有节点,无需重启 CRS,但需立即验证:
crsctl query css votedisk确认新路径已生效 - 切勿用
dd if=/dev/zero直接清空设备——这会导致节点被 CSS 立即驱逐
OCR 和 Voting Disk 全挂了且无备份怎么办?
没有备份 ≠ 没救,但代价是丢失所有运行时配置:VIP 绑定、SCAN Listener 状态、资源依赖关系等。恢复后需手动重注册数据库、监听器、ASM 实例等。
- 所有节点执行:
crsctl stop crs -f,确保 CRS 完全停止 - 用
dd备份现存 Voting Disk(哪怕已损坏):dd if=/dev/mapper/asm-vote1 of=/tmp/vote.bak bs=4k,留作最后兜底 - 在单节点上执行重建:
ocrconfig -overwrite(清空旧 OCR 元数据),再用crsctl add css votedisk <new_device></new_device>添加新 Voting Disk - 重建后必须运行
root.sh(位于$GRID_HOME/root.sh),否则资源注册不完整 - 后续要逐个添加数据库、ASM、监听器:
srvctl add database、srvctl add asm、srvctl add listener
最易被忽略的点:OCR 自动备份只在 Master Node 生成,如果该节点本身已宕机或磁盘损坏,ocrconfig -showbackup 可能返回空——此时别浪费时间找备份,直接按“全挂无备份”流程处理。另外,任何恢复操作前,务必确认新 ASM 磁盘组的冗余模式(NORMAL/HIGH)与 Voting Disk 强制要求一致,否则 crsctl replace votedisk 会静默失败。











