4.3.7 了解归档备份
默认情况下,RMAN保存备份和归档日志文件不仅是为了满足配置的保留策略,也是为了提供一种机制,以便将数据库还原到备份时间与当前时间之间的任一个时间点。RMAN结合使用完全备份、增量备份和归档重做日志文件。
某些情况下,为了达到归档或合乎法规的目的,可能需要某个时间点的数据库快照。对于默认RMAN配置而言,这会增加两个新问题:第一,快照很可能不在保留策略以内,而你不希望年度数据库快照在本周结束时彻底消失!第二,如果不准备将数据库还原到快照时间和当前时间之间的一个时间点,不希望RMAN维护一年、两年或更多年的归档重做日志文件。
RMAN通过支持归档备份满足数据库快照需求。如果为某个备份加上归档备份标签,RMAN就不会按照已经配置的保留策略将其视为过时备份。相反,在经过指定的时间长度后才将归档备份标记为过时。或者,可以指定RMAN无限制地保存归档备份。
提示:
可以使用归档备份,将一个数据库副本迁移到另一个系统上,从而在不影响原始数据库的保留策略的前提下达到测试的目的。一旦在测试系统上创建了数据库,就可以删除归档备份。
1.执行归档备份
归档备份的一个局限性在于不能使用闪回恢复区来存储归档备份。如果配置了闪回恢复区,就必须使用FORMAT参数为备份指定备用的磁盘位置。另外,磁带设备可能是长期存储归档备份的最佳选项。
下例使用KEEP UNTIL子句创建要保留一年的归档备份:
RMAN> backup as compressed backupset 2> database format '/u02/oradata/rman/archback/%U' 3> tag save1yr 4> keep until time 'sysdate+365' 5> ; Starting backup at 25-FEB-14 starting full resync of recovery catalog full resync complete current log archived using channel ORA_DISK_1 backup will be obsolete on date 25-FEB-15 archived logs required to recover from this backup will be backed up . . . channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02 using channel ORA_DISK_1 using channel ORA_DISK_2 using channel ORA_DISK_3 using channel ORA_DISK_4 backup will be obsolete on date 25-FEB-15 archived logs required to recover from this backup will be backed up channel ORA_DISK_1: starting compressed full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set channel ORA_DISK_1: starting piece 1 at 25-FEB-14 channel ORA_DISK_1: finished piece 1 at 25-FEB-14 piece handle=/u02/oradata/rman/archback/2bp1gfdd_1_1 tag=SAVE1YR comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 25-FEB-14 RMAN>
由于已经为RPT12C数据库定义了闪回恢复区,因此使用FORMAT子句指定归档备份的存储位置。另请注意,RMAN备份任何归档日志,在未来的恢复场景中需要通过这些归档日志使用备份。
另外,可以执行同样的备份,但是无限期地保留它:
RMAN> backup as compressed backupset 2> database format '/u02/oradata/rman/archback/%U' 3> tag saveforever 4> keep forever; . . . using channel ORA_DISK_1 backup will never be obsolete archived logs required to recover from this backup will be backed up . . .
2.管理归档备份
某些情况下,可能要更改备份的状态。例如,可能要更改归档备份的保留期限,将归档备份更改为独立备份,或者将一致备份更改为归档备份。可以使用CHANGE命令完成此任务。虽然CHANGE命令还有其他许多用途(例如更改备份的可用性以及更改数据库中的故障排除优先级),但此处仅介绍CHANGE命令与归档备份相关的方面。
本例将前面使用SAVEFOREVER标记创建的备份更改到现有保留策略以内:
RMAN> change backup tag 'saveforever' nokeep; starting full resync of recovery catalog full resync complete using channel ORA_DISK_1 keep attributes for the backup are deleted backupset key=3321 RECID=26 STAMP=654037077 keep attributes for the backup are deleted backupset key=3344 RECID=27 STAMP=654037106 keep attributes for the backup are deleted backupset key=3345 RECID=28 STAMP=654037128 keep attributes for the backup are deleted backupset key=3346 RECID=29 STAMP=654037151 RMAN>
根据保留策略以及数据库中其他更早或更新的备份,可以在下次启动RMAN时删除备份。如果已经配置好的保留策略需要此备份来满足保留策略的需要,可以将此备份保留更长的时间。
还可以使用CHANGE命令更改属于某种类型的所有备份。例如,如果要从数据库的所有映像副本删除归档标记,可以使用NOKEEP参数:
change copy of database nokeep;