OCP认证考试指南(1ZO-063) Oracle Database 12c高级管理
上QQ阅读APP看书,第一时间看更新

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;