ocrconfig -export 是唯一可靠的ocr逻辑备份方式,因其生成平台无关二进制快照,支持精确还原且不依赖ocr设备状态;而wallet信息独立于ocr,须单独备份加密文件及路径配置。
ocr 必须用 ocrconfig -export 导出,wallet 信息不能靠 ocr 备份覆盖,得单独处理 —— 这两者根本不在一个配置体系里,混着操作会漏关键凭据。
为什么 ocrconfig -export 是唯一可靠的 OCR 逻辑备份方式
OCR 存储的是集群拓扑、资源依赖、ASM 磁盘组映射等结构化配置,不是文件系统快照。物理备份(如 dd)虽可用,但无法跨版本恢复、不支持增量、且恢复时必须停整个 CRS;而 ocrconfig -export 生成的是平台无关的二进制快照,能被 ocrconfig -import 精确还原,且不依赖当前 OCR 设备状态。
- 必须以
root用户执行,普通用户或grid用户会报PROT-4: Failed to retrieve data from the cluster registry - 命令路径必须是
$ORA_CRS_HOME/bin/ocrconfig(10g/11g)或$ORACLE_HOME/bin/ocrconfig(12c+),用错路径会静默失败或读取本地 OLR 而非集群 OCR - 导出文件不可编辑、不可 diff,别试图用
vi或strings查看内容 —— 它不是文本,强行解析可能损坏校验头 - 建议加时间戳命名:
ocrconfig -export /backup/ocr_$(date +\%Y\%m\%d_\%H\%M).bak
ocrcheck 和 cluvfy comp ocr 必须在导出前跑一遍
导出前 OCR 若已损坏,-export 可能成功返回但实际内容不全,后续 -import 会直接导致集群无法启动。所以每次导出前必须确认 OCR 的逻辑完整性。
-
ocrcheck只验证设备可访问性和基础校验和,不检查键值对层级逻辑一致性 -
cluvfy comp ocr -n all才真正扫描 SYSTEM/DATABASE/CRS 三棵子树,识别“健忘”(node-specific config 残留)、键冲突、非法路径等深层问题 - 若
cluvfy报Data integrity check for OCR passed再导出,才真正有恢复价值 - 注意:10g 中该命令叫
cluvfy,11g+ 才统一为runcluvfy,路径在$ORA_CRS_HOME/bin/
Wallet 信息完全独立于 OCR,必须单独备份
OCR 里不存任何密码、证书或 TDE Wallet 文件。Wallet 通常位于 $ORACLE_HOME/admin/$ORACLE_SID/wallet/ 或 ASM 中的 +DATA/WALLETS/,且由数据库实例自己管理。OCR 只记录 Wallet 路径(如 ENCRYPTION_WALLET_LOCATION 参数值),不托管其内容。
- 手动打包 Wallet 目录前,先确认数据库已关闭或 Wallet 已关闭:
ALTER SYSTEM SET ENCRYPTION WALLET CLOSE; - Wallet 文件含敏感密钥,备份介质需加密,避免明文传输:
tar -czf wallet_$(hostname)_$(date +%s).tar.gz -C $ORACLE_HOME/admin/$ORACLE_SID/ wallet/ - 若使用 Auto Login Wallet(
cwallet.sso),必须连同ewallet.p12和cwallet.sso一起备份,缺一不可 - 切勿依赖 RMAN 备份 Wallet —— RMAN 不备份外部文件,除非显式用
BACKUP AS COPY加路径
自动备份策略里最容易被忽略的三个点
Oracle 默认每天凌晨 2 点做 OCR 物理备份,但这个机制有硬伤,很多 DBA 以为“开了就等于安全”,结果恢复时才发现没用。
- 默认备份只保留最近 3 个(
auto类型),且都放在$ORA_CRS_HOME/cdata/$CLUSTER_NAME/下 —— 如果整个 CRS_HOME 损坏,这些备份跟着消失 - 自动备份不包含 Wallet,也不触发
cluvfy校验,坏了也照常写入,误以为“有备份”反而更危险 -
ocrconfig -showbackup auto显示的路径可能是软链,真实位置在 ASM 或裸设备上,ls -l看不到内容,要用asmcmd ls或od -x验证是否为空
OCR 导出文件和 Wallet 压缩包必须分开存放、分开校验、分开传输。哪怕只漏一个 Wallet,RAC 启动后数据库实例可能能起来,但所有加密列查询都会报 ORA-28365: wallet is not open —— 这种故障不会阻断 CRS,但会让业务彻底不可用。











