DataGuard的配置中,有时我们需要利用RMAN自动从FRA删除已经应用到备库的归档日志。当数据库满足下列条件时,FRA下的归档日志将被自动删除。
1) 11g之前,如果不使用mandatory ARCHIVELOG目标,数据库(主库和备库)必须更改下面的参数并重新启动:
SQL> alter system set "_log_deletion_policy"='ALL' scope=spfile;
2) 在RMAN中配置下列参数(主库和备库):
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON STANDBY;
警告:对于10g,如果设置了APPLIED ON STANDBY, 即使FRA 中的文件没有备份也会被清除。
11g: 从11g 开始,我们对归档日志删除策略的配置进行了增强,包含了 APPLIED ON [ALL] STANDBY [BACKED UP n TIMES TO DEVICE TYPE ] 选项。该选项确认归档日志已经被应用,并且在主库进行过备份后才可以被清除。
3) 归档日志必须已应用到备库。运行下面的查询列出所有已应用到备库的归档日志:
select a.thread#, a.sequence#, a.applied
from v$archived_log a, v$database d
where a.activation# = d.activation#
and a.applied='YES'
/
4) FRA有空间压力
当归档日志从FRA自动删除,你会看到数据库的alert.log报出以下信息:
Deleted Oracle managed file /opt/app/oracle/FRA/ORA102/archivelog/2014_09_12/o1_mf_1_151_6y71q675_.arc
Deleted Oracle managed file /opt/app/oracle/FRA/ORA102/archivelog/2014_09_12/o1_mf_1_151_6y87pzg4_.arc
--------------------------------------推荐阅读 --------------------------------------
--------------------------------------分割线 --------------------------------------