OCR备份不可手动添加,仅能通过ocrconfig -restore物理还原;backup00.ocr丢失会导致无有效备份可用,因自动备份仅存于Master Node的$GRID_HOME/crs/cdata/<cluster_name>/目录下且按时间滚动覆盖。
无法“手动添加”ocr备份文件——ocr备份不是可注册的资源,而是用于恢复的静态镜像;真正要做的,是确认备份存在、定位路径、再用 ocrconfig -restore 触发物理还原。
为什么找不到 backup00.ocr 就不能恢复?
OCR 自动备份默认只保留在 Master Node 的 $GRID_HOME/crs/cdata/<cluster_name> 下,文件名按时间滚动(如 backup00.ocr、backup01.ocr、week.ocr)。如果该节点宕过、或备份目录被清空、或 OCR 磁盘组损坏后未及时归档,backup00.ocr 很可能已丢失。此时 ocrconfig -showbackup 会返回空或报错 PROT-1: Failed to initialize ocrconfig,说明 OCR 根本不可读,连备份列表都拿不到。
- 不要试图把备份文件拷进某个目录就“生效”,OCR 恢复不依赖文件系统路径注册
-
ocrconfig -showbackup查不到 ≠ 备份物理不存在,可能只是 Master Node 切换或路径被改过 - 若所有自动备份都不可见,且没做过
ocrconfig -export逻辑备份,则只能走无备份重建流程(用rootcrs.pl -deconfig+root.sh)
如何准确定位并验证 OCR 备份文件?
先确认当前集群状态是否允许执行检查:必须至少有一个节点能启动到 exclusive 模式(crsctl start crs -excl -nocrs),否则 ocrconfig 命令全失效。验证步骤如下:
- 在疑似 Master Node 上运行:
ocrconfig -showbackup auto和ocrconfig -showbackup manual,注意输出中 “Device/File Name” 是否指向有效路径 - 检查实际文件是否存在:
ls -l $GRID_HOME/crs/cdata/<cluster_name>/backup*.ocr,留意修改时间是否连续(4小时一备) - 若备份目录被改过,查配置:
ocrconfig -backuploc,它会返回当前设置的备份根路径 - 手工备份文件通常带完整时间戳,例如
rac1_20260528_140000.ocr,可用file <backup_file>确认是否为合法 OCR 镜像(输出含 “Oracle Cluster Registry” 字样)
执行 restore 时最关键的三个参数条件
ocrconfig -restore 不是“添加”,而是覆盖写入 OCR 设备。它要求三者同时满足,缺一不可:
- OCR 设备(ASM diskgroup 或裸设备)必须已存在且可写:例如
+DG_SYS已 mount,且asmcmd lsdg显示 USABLE_FILE_MB > 0 - 目标 OCR 设备上不能有残留数据:若之前 OCR 磁盘组被 drop 过,需先用
dd if=/dev/zero of=<device> bs=1024 count=100清头部(尤其 voting disk 共存时) - 执行用户必须是
root,且命令必须在 exclusive 模式 CRS 下运行;否则报错CRS-4639: Could not contact Oracle High Availability Services或PROT-16: Internal Error
典型命令:ocrconfig -restore /u01/app/11.2.0/grid/cdata/rac-cluster/backup00.ocr
restore 后必做的两件事,否则集群起不来
还原成功不代表集群能自动拉起。OCR 是集群元数据源头,但资源注册(监听器、数据库实例、ASM 实例)不会自动回填:
- 执行
ocrcheck确认状态为 “OCR integrity check passed”,否则后续全部失败 - 必须手动重新注册关键资源:
srvctl add database -d <db_name> -o <oracle_home>、srvctl add listener,否则crsctl stat res -t中对应资源显示 OFFLINE 或 UNKNOWN - 特别注意:如果 OCR 原来在 ASM 中,而 restore 时 ASM 实例未启动,
ocrconfig -restore会静默失败——务必先用sqlplus / as sysasm确认select name, state from v$asm_diskgroup中 OCR 所在 DG 是 MOUNTED
最容易被忽略的是:OCR 恢复后,voting disk 位置可能和 OCR 不一致,需单独用 crsctl replace votedisk 校准,否则节点无法加入集群。

















