SQL> show parameter control_file_record_keep_time

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
SQL>
这说明缺省情况下,控制文件中对于备份相关的信息的保留的时间长度为7天。但是经过测试,可以发现,如果不是必须被覆盖掉,也可能保留超过7天的备份信息。


RMAN> show all
2> ;

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
....

RMAN> configure retention policy to recovery window of 60 days;

new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 60 DAYS;
new RMAN configuration parameters are successfully stored

RMAN> show all;

RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 60 DAYS;
....

RETENTION POLICY 是指RMAN备份保留策略。
CONFIGURE RETENTION POLICY TO REDUNDANCY 1;表示备份的冗余度为1,就是保留最近的一份的备份(可以做数据库恢复所需要的一次备份,比如是全备)。
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 60 DAYS;表示备份的可恢复天数在60天以内的恢复所要的备份都保留。
定义了保留策略后可以用crosscheck backup;和delete obsolete;来删除不需要的备份。

如果用catalog,就只要关心RETENTION POLICY就可以了,不用管control_file_record_keep_time 。
如果用controlfile,那control_file_record_keep_time 也会影响controlfile中的保留备份的纪录。所以用controlfile时最好把control_file_record_keep_time 设置成大于CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 60 DAYS;设置的天数。
 
      控制文件是重用的,控制文件中只保留control_file_record_keep_time 定义天数的备份信息,超过参数设置的备份信息就看不到了。CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF DAYS 用于设置多长时间以内的备份是有效的,按你的例子,如果1月8日查询备份的时候,会看到1月1日的备份是过期的。
 
db_recovery_file_dest_size
 
show parameter recov
alter system set db_recovery_file_dest_size=65G scope=both;
再修改下冗余策略,释放部分磁盘空间: