avialable,expired, obsolete的区别:
对于EXPIRED状态的产生,与crosscheck命令是密切相关的,RMAN通过crosscheck命令检查备份是否存在于备份介质上,
如果不存在,则状态由AVAILABLE改为EXPIRED。
物理上删除控制文件备份集,之后用crosscheck进行检查,该备份的状态由AVAILABLE改为EXPIRED,删除方式:
crosscheck backup of controlfile;
delete expired backup of controlfile;
对于数据文件备份集:
crosscheck backup
delete expired backup
delete expired archivelog all;删除过期日志
list expired backup 查询过期的备份
list expired archivelog all 查询过期的归档日志
对于obsolete状态,是针对MAN备份保留策略来说的,超过了这个保留策略的备份,会被标记为obsolete,
但其状态依旧为AVAILABLE,我们可以使用report obsolete来查看已废弃的备份。
例如这里,冗余数为1,有两个控制文件的备份,较早的一个备份,就会被标记为obsolete:
对于EXPIRED状态的产生,与crosscheck命令是密切相关的,RMAN通过crosscheck命令检查备份是否存在于备份介质上,
如果不存在,则状态由AVAILABLE改为EXPIRED。
物理上删除控制文件备份集,之后用crosscheck进行检查,该备份的状态由AVAILABLE改为EXPIRED,删除方式:
crosscheck backup of controlfile;
delete expired backup of controlfile;
对于数据文件备份集:
crosscheck backup
delete expired backup
对于归档日志:
crosscheck archivelog all;检查所有日志delete expired archivelog all;删除过期日志
list expired backup 查询过期的备份
list expired archivelog all 查询过期的归档日志
对于obsolete状态,是针对MAN备份保留策略来说的,超过了这个保留策略的备份,会被标记为obsolete,
但其状态依旧为AVAILABLE,我们可以使用report obsolete来查看已废弃的备份。
例如这里,冗余数为1,有两个控制文件的备份,较早的一个备份,就会被标记为obsolete:
delete noprompt obsolete backup :删除过期的备份集
crosscheck详解
在controlfile中记录着每一个archivelog以及备份集的相关信息,当在OS层删除了归档日志和备份集时,控制文件中依然有它们的记录,这时需要:
crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别。
delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。
如果单独执行crosscheck而没有执行delete那么备份还是失败的,原因是那些控制文件的信息和实际的信息还是不同。
crosscheck backupset
crosscheck backupset 是检查备份集和实际的文件
如果原先标记为Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck将把状态重新从Expired标记回Available。
当设置备份保存策略后,一个备份过期,report之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份delete obsolete