OCR无法跨版本直接迁移,必须在19c GI中重建并导入关键配置;因19c采用UCR架构且OCR元数据格式与11g不兼容,强行导入会报ORA-15032或CRS-4257等硬性错误。
ocr不能跨版本直接迁移,必须在新19c gi环境中重建并导入——这是升级中唯一不可绕过的硬性步骤。
为什么OCR无法“原样迁移”到19c GI
19c Grid Infrastructure的OCR元数据格式与11g不兼容,强行复制ocrconfig -export导出的文件到19c环境会导致ocrconfig -import失败,报错类似ORA-15032: not all alterations performed或CRS-4257: OCR backup is incompatible with current version。这不是权限或路径问题,是底层结构变更导致的硬性拒绝。
- 11g OCR使用旧版ASM元数据块布局,19c GI已重构为统一集群注册(UCR)架构
- 19c默认启用
ocrconfig -manualbackup生成的备份带版本签名,无法被11g工具识别,反之亦然 - 即使你用
ocrdump导出文本,再用ocrconfig -import尝试注入,也会因资源依赖顺序错误而卡在ora.crsd启动阶段
正确做法:在19c GI中新建OCR + 从11g导出关键配置后手动还原
OCR迁移的本质不是“搬数据”,而是“重建+补配置”。必须分两步走:
- 先在目标节点安装19c GI时,用
gridSetup.sh创建全新的OCR磁盘组(如+OCR),确保compatible.asm = '19.0.0'且compatible.rdbms = '11.2.0.4'(后者允许11g DB软件临时挂载) - 从11g RAC源环境执行:
ocrconfig -export /tmp/ocr_11g.exp -s online,仅用于提取自定义资源、网络配置、VIP绑定等非核心元数据(注意:不包含集群心跳、ASM实例状态等动态内容) - 升级完成后,在19c GI下用
srvctl add database、srvctl add instance等命令重新注册数据库资源;再用crsctl stat res -t确认ora.OCR.dg和ora.asm状态为ONLINE
最容易被忽略的三个细节
OCR重建后若跳过这些检查,集群可能看似正常,但会在后续ADG切换或节点重启时突然崩溃:
-
ocrcheck输出中的VERSION字段必须显示19.0.0.0.0,而非沿用11g的11.2.0.4.0——哪怕只差一个小数点,crsctl start cluster都可能静默失败 - 11g中通过
crsctl set css votedisk设置的投票盘,必须在19c GI中用crsctl replace votedisk +VOTE重新指定,否则多节点场景下出现脑裂风险极高 - 所有自定义
srvctl添加的资源(如监听器别名、SCAN IP映射)需在19c GI中重新运行srvctl config验证,旧11g配置不会自动继承
OCR不是数据库文件,没有“一致性备份点”的概念;所谓安全迁移,就是接受它必须重做,并把配置还原控制在最小必要集范围内。


















