恢复数据文件须用目标实例名启动至NOMOUNT,ORACLE_SID决定RMAN识别控制文件、归档路径及备份元数据;错误设置会导致RMAN-06026或ORA-19504;需srvctl启动并校验ASM路径与归档配置。

恢复数据文件时不能随意选实例,必须用目标实例名启动到 NOMOUNT
RAC 恢复不是“哪个节点连上就能干”,ORACLE_SID 决定 RMAN 能否识别控制文件、归档路径和备份元数据。常见错误是直接在节点2上执行 startup nomount,但 ORACLE_SID 还是节点1的(比如 racdb1),结果 RESTORE DATABASE 找不到归档,报 RMAN-06026: some targets not found 或 ORA-19504: failed to create file。
- 先确认你要恢复的目标实例名(如
racdb1),再用export ORACLE_SID=racdb1切换环境变量 - 用
srvctl start instance -d racdb -i racdb1 -o nomount启动,不要用sqlplus / as sysdba手动startup nomount—— 后者不触发集群注册,RMAN 无法感知 ASM 归档位置 - 验证:连接 RMAN 后执行
show all,检查CONFIGURE CHANNEL是否自动识别了 +FRA 和 +DATA 磁盘组;若显示本地路径(如/u01/.../arch),说明实例环境没对
RMAN RESTORE DATABASE 默认只还原当前实例能访问的数据文件
即使所有数据文件都在 ASM 共享磁盘组,RMAN 仍依赖当前实例的控制文件快照来决定还原范围。如果控制文件是旧备份(比如只包含节点1的文件头信息),它可能漏掉节点2写入的新数据文件(如 +DATA/racdb/DATAFILE/users.345.123456789)。
- 务必用刚还原的控制文件挂载后,立刻执行
catalog start with '+FRA/racdb/ARCHIVELOG/'(路径要精确到归档所在磁盘组子目录) - 运行
list backup of database确认 RMAN 列出的所有数据文件备份都带完整 ASM 路径(如+DATA/...),而非/tmp/...这类临时路径 - 如果发现部分数据文件缺失,别急着
crosscheck,先查v$datafile(需已 mount)是否包含该文件 —— 若控制文件里没有记录,RMAN 根本不会尝试还原它
跨节点恢复时,RECOVER 阶段会自动扫描所有归档位置
RECOVER DATABASE 不需要指定实例,但前提是归档日志分散在多个 ASM 路径(如 +FRA 和 +DATA)时,RMAN 必须能同时访问它们。否则会卡在 “applying archive log” 并报 ORA-19624 或跳过部分日志。
- 确保所有归档路径都在
log_archive_dest_1、log_archive_dest_2等参数中显式配置,且这些路径在目标实例的参数文件里存在(哪怕只是占位) - 若原 RAC 使用
log_archive_dest_1='LOCATION=+FRA'和log_archive_dest_2='LOCATION=+DATA',单实例恢复时不能删掉log_archive_dest_2,否则 RMAN 不会扫描 +DATA 下的归档 - 遇到日志找不到,用
ASMCMD进入对应磁盘组手动ls -l,确认归档文件真实存在 —— 常见坑是权限问题:oracle用户对 +DATA 组有读权限,但对 +FRA 组没读权限
OPEN RESETLOGS 后其他节点不能自动拉起,必须手动 srvctl 启动
单节点完成 OPEN RESETLOGS 后,集群资源不会自动同步状态。此时若直接在另一节点执行 srvctl start instance,会报 ORA-01102: cannot mount database in EXCLUSIVE mode,因为第一个节点已独占控制文件。
- 必须先在已打开的节点执行
srvctl stop database -d racdb,再用srvctl start database -d racdb全局拉起所有实例 - 检查每个实例状态:
srvctl status instance -d racdb -i racdb1和srvctl status instance -d racdb -i racdb2 - 特别注意 FRA 路径一致性:两个节点的
db_recovery_file_dest必须指向同一 ASM 磁盘组(如+FRA),否则节点2启动后可能因无法写入 FRA 而 hang 在 MOUNT 阶段
catalog 步骤和归档路径的完整性校验——这两步不跑完,RECOVER 表面成功,但很可能漏应用关键日志。



















