ocrconfig -restore 报 PROT-35 错误表明 OCR 位置不可访问,主因是 ASM 磁盘组未挂载、ASM 实例未启动或 CRS 进程干扰独占访问,需先停集群、独占启动 ASM/CSS,再验证备份有效性并正确恢复。
ocrconfig -restore 报 PROT-35 错误,说明 OCR 位置不可访问
直接运行 ocrconfig -restore 失败,常见于 ocr 磁盘组未挂载、asm 实例未启动,或 crs 守护进程仍在运行干扰独占访问。此时 prot-35: the configured ocr locations are not accessible 是典型信号,不是备份文件坏了,而是环境没准备好。
- 必须先确认 ASM 磁盘组(如
+OCR_DG)已在线且可读写:用asmcmd lsdg查状态,STATE应为MOUNTED - 所有节点执行
crsctl stop crs -f彻底终止集群栈,避免残留进程锁住 OCR 设备 - 仅在**一个幸存节点**上以独占模式启动:运行
crsctl start crs -excl -nocrs—— 注意是-nocrs,只启 ASM 和 CSS,不启 CRS 资源管理器 - 此时
ocrconfig -showbackup才能正常返回可用备份路径;若仍报错,说明 ASM 没起来或磁盘组损坏
恢复前必须验证备份有效性,别信“最新时间戳”
自动备份(backup00.ocr)可能因 OCR 写入失败而截断,手工备份(ocrconfig -manualbackup)才最可靠。但即使备份文件存在,也得确认它真能用。
- 用
strings /path/to/backup00.ocr | head -20看开头是否有ORACLE CLUSTER REGISTRY标识,无则为空或损坏 - 对比备份时间与故障发生时间:如果 OCR 在损坏前几小时就停止更新,
backup00.ocr可能已过期 - 优先尝试手工备份(路径含
manual或olr),它们由管理员主动触发,完整性更高 - 恢复命令必须带完整绝对路径:
ocrconfig -restore /u01/app/12.1.0/grid/cdata/rac-cluster/backup00.ocr,不能省略目录
恢复后 ocrcheck 仍报 PROT-602?可能是缓存没刷新或未重启集群
ocrconfig -restore 成功只表示文件写入磁盘,不代表集群已加载新内容。此时 ocrcheck 仍会读旧缓存或拒绝访问,属于预期行为。
- 执行完
-restore后,必须在**同一节点**运行ocrcheck验证 —— 若仍失败,大概率是没退出-excl模式 - 验证通过后,先停掉独占模式:
crsctl stop crs(此时仍是-excl下的 stop) - 再在所有节点正常启动:
crsctl start crs—— 这一步才真正让所有节点重新加载 OCR 并选举 OCR Master - 启动后等 2–3 分钟再查状态,用
crsctl check crs和ocrcheck双重确认,避免误判
没有有效备份时,别硬试 ocrconfig -restore
当 ocrconfig -showbackup 返回空,或所有备份文件 strings 检查都无有效头信息,说明 OCR 历史已不可逆丢失。此时强行 -restore 只会写入无效数据,导致集群更难恢复。
- 立即转向重建路径:用
crsctl start crs -excl -nocrs启 ASM → 手动重建 OCR 磁盘组 →ocrconfig -repair ocr +NEW_OCR_DG - 重建前务必导出当前 OLR(本地注册表):
ocrconfig -local -export /tmp/olr_export.exp,它含节点级配置,比 OCR 更易抢救 - OCR 重建后,需重新添加 voting disk:
crsctl replace votedisk +NEW_VOTE_DG,否则集群无法完成 Quorum 检查 - 整个过程必须严格按节点顺序操作,任意节点跳步都会导致 CSSD 启动失败
-restore 成功就万事大吉。真实环境中,90% 的二次故障源于没清干净旧进程、没等 CSSD 完全重同步、或误把 OLR 备份当 OCR 用。动手前多看一眼 ps -ef | grep cssd 和 asmcmd lsdg 输出,比反复重试 ocrconfig 有用得多。











