ocrconfig -manualbackup在12c中已废弃,仅做无一致性保障的物理拷贝,恢复时大概率失败;应改用ocrconfig -export进行逻辑备份。
ocr自动备份失效后,ocrconfig -manualbackup 命令本身不会报错,但生成的备份文件极大概率不可用于恢复——因为12c中该命令不触发完整一致性快照,仅做浅层拷贝。
为什么 ocrconfig -manualbackup 在12c里基本没用
Oracle 12c(含GI 12.1/12.2)已废弃 -manualbackup 的实际恢复能力。它只是把当前OCR设备上的原始块复制出来,不校验、不冻结、不保证事务一致性。真实场景中,你执行完看到“成功”,但用 ocrconfig -restore 时大概率遇到 PROT-33 或 OCR integrity check failed。
- 自动备份(每4小时)由CRS daemon在静默状态下完成,会先冻结OCR写入、校验CRC、再落盘,路径在
$GRID_HOME/cdata// -
-manualbackup不依赖CRS状态,但也不等待OCR静默——只要OCR正在被读写(比如节点刚上线、资源正注册),备份就是脏的 - 12c文档明确标注该选项为“deprecated”,MOS Note 1595067.1 直接建议停用
真正能用的手动备份方式:改用 ocrconfig -export
导出是逻辑备份,生成可读文本文件,内容经OCR内部API序列化,天然规避物理一致性问题。虽然不能替代自动备份做灾难恢复(因不含votedisk),但对配置误操作回滚、节点变更前留档足够可靠。
- 必须用
root用户执行,否则报PROT-20: Insufficient permission to proceed - 导出前确保所有节点CRS在线,否则可能漏掉部分动态注册键值(如刚添加的服务)
- 示例:
ocrconfig -export /tmp/ocr_export_$(date +%Y%m%d_%H%M).xml - 导出文件可用
ocrdump -stdout -xml验证结构完整性,但别用文本编辑器直接改——OCR键名大小写敏感且含隐藏控制字符
发现自动备份失效后,第一件事不是手动备份,而是查 ocrconfig -showbackup
自动备份失效通常不是磁盘满或权限问题,而是CRS服务异常导致守护进程没跑起来。先确认现状,再决定动作:
- 运行
ocrconfig -showbackup,如果输出为空或只有老备份(比如全是2026年3月的),说明自动备份链已断 - 检查
$GRID_HOME/log/,重点搜/client/ocrconfig_*.log CRS-4605(backup failed)或ORA-15032(ASM访问失败) - 验证OCR设备本身是否可读:
dd if=—— 若报 I/O error,备份再全也没用of=/dev/null bs=4096 count=100 - 不要立刻停CRS去修OCR设备;先用
crsctl query css votedisk确认votedisk是否同步健康,避免双点故障
最易被忽略的一点:12c中OCR和votedisk共用同一套自动备份机制,ocrconfig -showbackup 显示的每个文件其实都包含两者镜像。但-export只导OCR,-restore也只恢复OCR——votedisk损坏必须靠整盘级恢复,别指望导出文件能救回来。











