retention policy仅决定delete obsolete的判断逻辑,不自动清理备份;必须配合crosscheck、report obsolete及归档完整性验证后手动执行delete obsolete,否则fra易满致ora-19809;recovery window与redundancy互斥,须依rpo需求择一配置。
配了 retention policy 不等于自动删旧备份,必须手动触发 delete obsolete,且前提得先跑 crosscheck 和确认归档完整——否则策略形同虚设,fra 很快爆满报 ora-19809。
RETENTION POLICY 该选 RECOVERY WINDOW 还是 REDUNDANCY
二者互斥,不能共存,生效的只有最后一个执行的 CONFIGURE RETENTION POLICY 命令。
-
RECOVERY WINDOW OF 7 DAYS:适合有明确 RPO 要求的场景,比如“必须能恢复到任意过去 7 天内的时间点”。RMAN 会反推所需最小备份集(含全备 + 增量 + 归档日志链),不是简单保留最近 7 天的文件 -
REDUNDANCY 2:适合空间敏感、恢复时间点无硬性要求的环境(如开发库)。它按每个数据文件单独计数——只要该文件有 2 份有效全备(含对应归档/增量),最老那份就会被标为OBSOLETE - 查当前生效策略用
SHOW RETENTION POLICY,不是SHOW ALL
配完 retention policy 为什么 DELETE OBSOLETE 不删文件
配置只改控制文件里的策略项,不触发任何物理清理动作。真正让 DELETE OBSOLETE 生效,必须补全这三步:
-
CROSSCHECK BACKUP:同步控制文件记录和磁盘真实状态。如果备份片已被手动删掉或 NFS 挂载异常,控制文件还记着它,DELETE OBSOLETE就不会动它,也不报错 -
REPORT OBSOLETE:列出所有被当前策略判定为可删且物理存在的备份。务必先看结果,再人工核对——比如确认最老全备是否仍在恢复链中 - 确保归档日志完整。若
RECOVERY WINDOW下中间归档被DELETE ARCHIVELOG清过,RMAN 会静默降级,REPORT OBSOLETE显示的过期备份比预期少,且不报错
19c 升级后必须重配的关键项
从 11g 升上来的 19c 实例,几个关键配置不会继承,必须手动补全,否则策略完全失效:
-
CONTROLFILE AUTOBACKUP FORMAT必须显式指定路径。19c 默认开启自动备份,但若未设FORMAT,会 fallback 到闪回区($ORACLE_BASE/fast_recovery_area),而新库的 FRA 往往未初始化或权限不对,导致控制文件备份静默失败 -
BACKUP OPTIMIZATION默认关闭。如果你依赖它跳过重复归档备份,升级后需手动开:CONFIGURE BACKUP OPTIMIZATION ON,并确认V$BLOCK_CHANGE_TRACKING.STATUS = 'ENABLED'且 BCT 文件已重建(11g 的 BCT 文件 19c 不兼容) -
ARCHIVELOG DELETION POLICY必须重新绑定到新归档目标。若升级后只保留本地归档(如LOCATION=+DG_ARCH),不显式配置策略,DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'可能报错或漏删
RMAN 加密备份不是开 TDE 就自动生效
TDE 加密的是数据文件(.dbf),而 RMAN 备份集(.bkp)默认仍是明文,除非你显式启用 RMAN 层加密:
-
CONFIGURE ENCRYPTION FOR DATABASE ON必须配合 walletOPEN状态。执行SELECT * FROM V$ENCRYPTION_WALLET后,必须看到STATUS = 'OPEN',否则所有 backup 都是未加密的,且 RMAN 不报错、不警告 -
SET ENCRYPTION ON IDENTIFIED BY只对紧随其后的BACKUP命令生效,是会话级口令加密,密码严格区分大小写和空格,恢复时必须一字不差 - 加密算法选
AES256要小心:Oracle 12.1 或某些旧补丁集可能不识别,备份时报ORA-19913;19c 加密的备份在 21c 上 restore 可能失败,报ORA-28374: typed master key not found
最易被忽略的一点:RMAN 备份策略的有效性高度依赖归档日志完整性与控制文件自动备份的可靠性——这两者一旦出问题,RECOVERY WINDOW 策略会静默退化,REPORT OBSOLETE 结果不可信,而你很难第一时间发现。











