OCR_config命令不存在,正确命令是ocrconfig;自动备份需检查showbackup输出、备份文件存在性及crsd日志;restore前须停集群、校验文件权限与完整性;还原后需ocrcheck、ocrdump及CSS查询三重验证。
OCR_ocrconfig 命令不存在,别白忙活了
linux 或 oracle rac 环境里压根没有 ocr_ocrconfig 这个命令。你搜到的、看到的、甚至文档里写的,大概率是把 ocrconfig 命令记混了,或者被错误命名的脚本误导了。oracle 官方只提供 ocrconfig —— 注意,前面没有 ocr_ 前缀,大小写也不对。敲 ocr_ocrconfig -showbackup 肯定报 command not found。
真正能操作 OCR 自动备份和还原的,只有 ocrconfig,而且必须由 root 用户执行(或通过 sudo),在集群所有节点上路径一致(通常是 /u01/app/19.0.0/grid/bin/ocrconfig 这类)。
怎么确认 OCR 自动备份是否真在运行
OCR 备份不是“默认开启”——它依赖 crsd 进程定时调用 ocrconfig -manualbackup(注意:这是手动触发,但 crsd 会按计划自动跑)。自动备份是否生效,得看两件事:
-
ocrconfig -showbackup能列出至少 3 个有效备份(时间戳不全是同一天,且状态为automatic) -
ls -l /u01/app/19.0.0/grid/cdata/<cluster_name>/</cluster_name>下存在backup*.ocr和对应backup*.ocrb文件(后者是备份元数据,缺一不可) - 查
crsd日志:grep "ocrconfig.*-manualbackup" /u01/app/19.0.0/grid/log/<node_name>/crsd/crsd.log | tail -5</node_name>,确认最近 24 小时内有成功执行记录
如果 ocrconfig -showbackup 报 PROT-602: Failed to retrieve backup information,说明 OCR 本身已损坏或磁盘不可读,先别急着还原,得先检查 ASM 磁盘组状态和 OCR 设备路径。
用 ocrconfig -restore 恢复 OCR 的硬性前提
ocrconfig -restore 不是万能回滚按钮。它只接受一个参数:.ocr 文件路径,而且该文件必须满足三个条件,缺一不可:
- 必须是
ocrconfig -export或自动备份生成的原始.ocr文件(不能是 tar 包、不能重命名、不能改后缀) - 文件所属用户必须是
root,权限为600(chmod 600 /path/to/backup.ocr,否则报PROT-1: Failed to open file) - 执行前集群必须完全停止:
crsctl stop crs -f(所有节点都要停),且 OCR 设备处于可写状态(比如裸设备没被挂载,ASM 磁盘组 online)
常见翻车点:有人把 backup_20240501_010000.ocr 解压后当源文件用,结果里面是 XML 结构,ocrconfig -restore 直接静默失败;还有人只在单节点执行 -restore,其他节点 OCR 仍损坏,集群起不来。
还原后验证 OCR 是否真正可用
执行完 ocrconfig -restore /path/to/backup.ocr 并重启集群后,不能只看 crsctl check crs 返回 HEALTHY 就算完事。OCR 数据是否完整,得交叉验证:
-
ocrcheck输出中Status必须是SUCCESS,且Version和之前一致(比如 19.0.0.0.0) -
ocrdump -stdout | head -20要能正常输出 OCR 树结构,而不是卡住或报OCI-21500 -
crsctl query css votedisk和crsctl query css ocr显示的设备路径,必须和ocrconfig -showbackup中记录的原始 OCR 位置一致
最容易被忽略的是:自动备份机制不会因还原而自动恢复。你得手动再跑一次 ocrconfig -manualbackup,并确认下一次计划备份(通常 4 小时间隔)是否如期触发——否则下次出事,又没备份可用。










