AnyBackup 7.0 Oracle ADG 数据库主库定时备份报错,RMAN-08137: WARNING: archived log not deleted, needed for stan
关键字
Oracle ADG,归档日志
适用产品
- AnyBackup 7.0
问题描述
Oracle ADG 主库定时备份报错,执行输出如下:
RMAN-08137: WARNING: archived log not deleted, needed for standby or upstream capture process

问题影响
Oracle 的归档日志清理失败。
问题原因
Oracle 参数 log_archive_dest_state_x 设置为 DEFER,但是 Oracle 认为只要设置了 log_archive_dest_n 就会认为备库存在,只是暂时不可用而已,因此不会删除归档。可以通过设置隐含参数(动态参数)来规避这个问题,默认值是 true,该参数将认为延迟存档目的地完全不可用,并且不再为这些目的地保存归档日志。
解决方案
为了解决该问题,需要再 Oracle 环境调整参数,请按照以下步骤执行:(涉及到生产环境,协调 DBA 处理,Oracle 对归档日志的设置,并不会影响到数据库的其他业务)
第一步:登录到 Oracle 生产机,进入对应实例的 SQL 命令行。
su - oracle
sqlplus / as sysdba

第二步:输入以下命令
alter system set "_deferred_log_dest_is_valid" = FALSE scope=both;
第三步:再次发起备份即可自动清理归档日志
更多信息
_deferred_log_dest_is_valid 是一个 Oracle 数据库中的隐藏参数,用于确定延迟日志目的地是否有效。如果该参数设置为 TRUE,则表示延迟日志目的地有效,否则表示无效。
以下是查询该参数的代码:
SELECT name, value FROM v$parameter WHERE name = '_deferred_log_dest_is_valid';