rman duplicate 搭建物理备库必须满足主库归档模式与强制日志启用、备库nomount实例及正确参数配置;核心命令须含nofilenamecheck、noredo和dorecover,缺一即失败。

能,但前提是主库已开归档、强制日志,且备库环境准备到位;否则 RMAN 会卡在连接后几秒内报错退出,根本进不了复制阶段。
主库必须满足的两个硬性条件
Active Duplicate 不是“连上就能跑”,它依赖主库实时提供数据块和归档流。缺一不可:
-
ARCHIVELOG模式:执行ARCHIVE LOG LIST,输出中必须含Database log mode: Archive Mode -
FORCE LOGGING:执行SELECT force_logging FROM v$database,结果必须为YES;若否,需ALTER DATABASE FORCE LOGGING - 常见错误
RMAN-05541: no archived logs found多半是因为刚启归档但还没切出第一个归档,可手动触发ALTER SYSTEM ARCHIVE LOG CURRENT补一个
备库端启动 nomount 实例的关键点
目标端不需要 DBCA 建库,但必须有一个空实例处于 NOMOUNT 状态,且参数文件(pfile)里这几项不能错:
-
db_name可与主库相同,但db_unique_name必须不同(如主库是ORCL,备库就得设成ORCLDG) -
control_files路径必须真实存在、Oracle 用户有写权限,且不能复用主库路径 -
db_file_name_convert和log_file_name_convert是路径映射核心,例如:'/u01/oradata/ORCL/', '/u01/oradata/ORCLDG/';漏配或写反会直接报ORA-01180 - 密码文件
orapw<sid></sid>必须从主库scp过来,内容一致,否则RMAN-04006认证失败
RMAN DUPLICATE 命令中不可省略的开关
对 DataGuard 备库场景,以下三个参数不是“建议加”,而是不加就失败:
-
NOFILENAMECHECK:绕过源/目标文件路径校验。主备目录结构天然不同,不加会卡在RMAN-05501或RMAN-06136 -
NOREDO:禁用在线日志传输。主库online redo log是滚动覆盖的,RMAN 无法可靠抓取;不加必报RMAN-06136: ORA-19505 -
DORECOVER:显式要求 RMAN 在复制完成后自动应用归档日志。不加则备库停留在“只复制完数据文件”的中间态,无法启动 MRP
执行后最易被忽略的同步确认步骤
DUPLICATE 命令成功返回 ≠ DataGuard 就通了。接下来必须人工验证三件事:
- 在备库查
V$ARCHIVE_GAP,确认无日志缺口;若为空,不代表没问题,还要看下一步 - 查
V$MANAGED_STANDBY,重点看PROCESS = 'MRP0'的STATUS是否为APPLYING_LOG;若为WAIT_FOR_LOG,大概率是FAL_SERVER/FAL_CLIENT没配对,或主库监听没注册备库服务名 - 检查主库
LOG_ARCHIVE_DEST_2是否指向备库 TNS 别名,且VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)已启用
真正卡住人的从来不是命令本身,而是主备两端参数文件里那几行路径映射和 FAL 配置——它们不出错时默默工作,一错就是 RMAN 直接退出,连日志都来不及写全。











