年初在RAC环境上做了一备份策略,window of 7 days。
周日0级备份
周一、二、四、五、六2级备份。
周三1级备份。
运行一直良好,list backup;可以看到两个0级备份。
所以十月份的时候,另一个单实例环境也要做备份策略,就想都没有想把这个策略给放上去了。
结果发现,一个月后空间就不够了。经检查发现,竟然保存了4周的备份。旧的备份没有删除,但是list backup;却又看不到两周以前的旧备份,RMAN看不到自然也就不会删除了。那为什么RAC环境的正常呢?难道两个环境的控制文件保存的备份记录时间不一样,单实例环境保存的时间短?旧的备份信息被覆盖,RMAN看不到就没有删除?但是经检查两个环境的control_file_record_keey_time都是一样的为7。这就奇怪了。
但是从LIST BACKUP;看不到结果,而备份文件又确实存在,基本可以推断控制文件中的信息被覆盖了。于是用以下查询控制文件中有关备份的信息:
select TYPE,RECORDS_TOTAL,RECORDS_USED from v$controlfile_record_section;
RAC:
BACKUP SET 1227 1227 BACKUP PIECE 1000 1000 |
单实例:
BACKUP SET 409 409 BACKUP PIECE 200 200 |
这就更让我怀疑是备份信息被覆盖了。但是这还是需要证实,所以现在确定这样的思路:1、如果真的是覆盖,那么下一次备份,就会覆盖一些信息,所以现在记录下来list backup;的信息,到下一次备份后对比一下结果。
2、如果真的是备份信息被覆盖了,那解决的方法也很简单,根据控制文件分配空间不回收的特点,在备份周期内多做几次备份,将控制文件中保存备份信息的空间“扩大”,不过,这还是个初步想法,正在实验。
另外:
通过对备份日志的观察发现,20120101会删除掉20111225的0级备份的一个备份片。一开始对此很不理解,后来看了下日志,发出这个备份片生成只需要4S,而其它的备份片却需要十几分钟,于是就想,是不是这部分信息对于恢复到7天前已经不需要了。那这样也就很合理了:ORACLE会根据备份策略尽量删除不需要的备份文件。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23065269/viewspace-714550/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/23065269/viewspace-714550/