前言:学习rman的时候也一直混淆OBSOLETE和EXPIRED两个参数,现在整理两个参数文件的区别和来历。
一、obsolete的参数需要跟数据库的备份策略联系
RETENTION POLICY:设置备份保存策略,即设置备份文件保留多长时间。RMAN会将超出时间的备份文件标识为废弃(obsolete)。RMAN跟踪备份的数据文件、控制文件、归档日志文件,并确定哪些需要保存,哪些需要标记为废弃,但RMAN不自动删除废弃的备份文件。
通过命令REPORT OBSOLETE显示当前哪些备份已经过了保存策略。
通过命令DELETE OBSOLETE删除废弃的文件。
备份策略的方式有以下两种:
1、根据窗口时间设置保留策略
RMAN>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
说明:我现在的时间是7月7日18:00,如果我设置了上述备份保留策略并进行备份,则系统会保障可以恢复到过去3天的任何时间点。(有网友认为7月4日18:00之前的备份会被标记为obsolete的说法不一定是正确的)
系统设置的恢复窗口是3天,但是为了保证可以还原到这三天的任何时间点,所以要保留7月1日18:00的全备,只有7月1日18:00之前的备份会被标识成obsolete;
2、根据备份的份数设置保留策略
RMAN>CONFIGURE RETENTION POLICY REDUNDANCY 3;
说明:进行了上述设置,当完成三次备份后,在做完第四次备份的时候,第一次备份结果将被标识为废弃。Oracle11G默认的备份保留策略是用该方法设置的,且REDUNDANCY为1。可以使用命令CONFIGURE RETENTION POLICY CLEAR恢复策略为默认值。还可以用命令CONFIGURE RETENTION POLICY TO NONE进行策略设置,此时REPORT OBSOLETE和DELETE OBSOLETE将不把任何备份文件视为废弃;备份失效的问题,也参考上面的说明(可以理解为保留3份完整的备份)
二、expired可以理解成失效(也有翻译成过时,这样会容易和上面的过期混淆)
expired官网解释如下:A backup whose status in the RMAN repository is EXPIRED, which means that the backup was not found. RMAN marks backups and copies as expired when you run a CROSSCHECK command and the files are absent or inaccessible.
其实就是一句话:当直接从操作系统去删除数据库的备份文件的时候,控制文件还保留着这些备份信息,当运行CROSSCHECK命令的时候,就会把这些备份标志成expired。
常用脚本:
RMAN> crosscheck backup ; 检查备份是否有效;
RMAN> Delete Expired backup; 删除失效的备份;
RMAN> delete expired archivelog all;删除失效的归档备份;
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
本文作者:JOHN
ORACLE技术博客:ORACLE 猎人笔记 数据库技术群:367875324 (请备注ORACLE管理 )
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++