必须确认数据库处于归档模式,否则RMAN无法执行基于时间点恢复(PITR);需用ARCHIVE LOG LIST验证,若为非归档模式须执行SHUTDOWN IMMEDIATE→STARTUP MOUNT→ALTER DATABASE ARCHIVELOG→ALTER DATABASE OPEN,并确保归档日志完整覆盖目标时间点、SET UNTIL TIME在RUN块内且格式匹配NLS_DATE_FORMAT、按RESTORE→RECOVER→OPEN RESETLOGS顺序执行。

必须确认数据库处于归档模式,否则 RMAN 无法执行基于时间点的恢复(PITR)——这是所有后续操作的前提,跳过这步直接运行 SET UNTIL TIME 只会报 RMAN-06023 或 ORA-19698。
检查并确保归档模式已启用
归档模式不是可选项,而是 PITR 的硬性依赖。非归档库连最基础的 RECOVER DATABASE UNTIL TIME 都无法启动。
- 执行
ARCHIVE LOG LIST查看当前状态;若显示Database log mode: No Archive Mode,说明尚未启用 - 切换归档需四步不可省略:
SHUTDOWN IMMEDIATE→STARTUP MOUNT→ALTER DATABASE ARCHIVELOG→ALTER DATABASE OPEN - 确认
DB_RECOVERY_FILE_DEST已设置且空间充足,否则归档日志写入失败会导致后续恢复中断 - 归档日志链必须完整覆盖目标时间点——缺失任意一段 sequence,
RECOVER会卡住或报ORA-00283
SET UNTIL TIME 必须在 RUN 块内且格式严格匹配
SET UNTIL TIME 不是全局配置,它只对同个 RUN 块内的 RESTORE 和 RECOVER 生效;且时间字符串解析受 NLS_DATE_FORMAT 控制,不能凭经验写。
- 推荐统一用
TO_DATE()显式转换,例如:SET UNTIL TIME "TO_DATE('2026-08-25 09:12:30', 'YYYY-MM-DD HH24:MI:SS')"(注意外层双引号) - 避免直接写
'25-AUG-26 09:12:30',除非你已查过SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT'确认格式匹配 - 时间值以数据库服务器本地时区为准,不自动转换会话时区;跨时区操作建议改用
UNTIL SCN或UNTIL SEQUENCE -
SET UNTIL TIME必须放在RESTORE和RECOVER之前,且不能跨RUN块
执行顺序不可颠倒:RESTORE → RECOVER → OPEN RESETLOGS
三步缺一不可,漏掉任一环节都会导致数据库无法打开或数据不一致。
- 先确保数据库处于
MOUNT状态:SHUTDOWN IMMEDIATE;STARTUP MOUNT -
RESTORE DATABASE仅把备份中的数据文件拷回原位置,不应用任何日志 -
RECOVER DATABASE UNTIL TIME ...自动寻找并应用所需归档日志和联机日志,将数据前滚至指定时间点 - 最后必须执行
ALTER DATABASE OPEN RESETLOGS;否则报ORA-01113,且跳过RESETLOGS会破坏 SCN 连续性
恢复 PDB 或单表时容器上下文极易出错
在多租户环境中,RMAN 对容器有强约束,连错容器会导致命令静默失效或报错。
- 恢复整个 PDB 必须在
CDB$ROOT中执行RECOVER PLUGGABLE DATABASE pdb1 UNTIL TIME ...;在 PDB 内执行会报ORA-65086或RMAN-06026 - 恢复单张表也必须连接到
CDB$ROOT,使用RECOVER TABLE schema.table_name UNTIL TIME ... AUXILIARY DESTINATION '/path';未指定AUXILIARY DESTINATION会卡在辅助实例创建阶段 - 验证当前容器:
SELECT SYS_CONTEXT('USERENV', 'CON_NAME') FROM DUAL,返回值必须是CDB$ROOT - 目标 PDB 必须仍存在于
SHOW PDBS输出中,已被DROP PLUGGABLE DATABASE的 PDB 无法恢复
最容易被忽略的是归档日志链的完整性验证——它不像备份存在与否那样直观可见,但只要缺一个 sequence,RECOVER 就不会真正完成,而错误信息可能非常隐蔽。动手前务必跑一遍 LIST ARCHIVELOG ALL 并人工核对时间范围。











