运行RMAN的CONFIGURE命令来启用和禁用备份优化。备份优化在某些情况下如果等同的文件或文件的等同的版本已经备份后跳过文件备份。
1.备份优化概述
当启用备份优化时,如果等同的文件已经备份到指定的设备类型,BACKUP命令跳过备份文件。
下表描述了RMAN用来确认文件是否与已经备份的文件等同的标准。
文件类型 | 确认等同文件的标准 |
---|---|
数据文件 | 数据文件必须与备份中的数据文件有相同的DBID,检查点SCN,创建SCN,RESETLOGS SCN和时间。数据文件必须正常脱机(offline-normal),只读,或正常关闭。 |
归档日志 | 相同的DBID,线程,序号,RESETLOGS SCN和时间。 |
备份集 | 相同的DBID,备份集记录ID和时间戳。 |
如果RMAN确认一个文件等同和它已经做过备份,那么它是一个被跳过的候选者。RMAN必须进一步检查来确认是否跳过文件,然而,保留策略和备份双路复用特性是用来决定RMAN在指定的设备类型上是否有足够的备份的算法的要素。
如以上条件满足时,RMAN使用备份优化:
1) 命令CONFIGURE BACKUP OPTIMIZATION ON已经运行来启用备份优化
2) 运行BACKUP DATABASE,BACKUP ARCHIVELOG和ALL或LIKE选项,或BACKUP BACKUPSET ALL,BACKUP RECOVERY AREA,BACKUP RECOVERY FILES或BACKUP DATAFILECOPY。
注:当TO DESTINATION与BACKUP RECOVERY AREA或BACKUP RECOVERY FILE一起使用时,RMAN只跳过备份TO DESTINATION位置上有等同备份的文件。
3)只分配了一种通道类型,不在相同的BACKUP命令上混合磁盘和SBT通道。
注:在备份undo优化中,RMAN排除已提交事务的undo更改(恢复备份时不需要)。可以启用和禁用备份优化,但备份undo优化是内置的行为。
例如,假设已经配置备份优化。这些命令备份数据库,所有归档日志和所有备份集到磁带。
BACKUP DEVICE TYPE sbt DATABASE PLUS ARCHIVELOG;
BACKUP DEVICE TYPE sbt BACKUPSET ALL;
如果自从上次备份以来没有备份过的文件做过更改,那么RMAN不会再次备份文件。如果因为文件已经备份过,RMAN跳过命令指定的所有文件,RMAN也会提示错误。
可以在任何时候通过指定BACKUP命令的FORCE选项来撤销优化。例如,可以运行:
BACKUP DATABASE FORCE;
BACKUP ARCHIVELOG ALL FORCE;
2.SBT备份的保留策略的备份优化效果
当备份到SBT设备时,备份优化不是总会应用的。
基于恢复窗口和冗余度保留策略的正常备份优化例外的行为描述在以下部分。
注:如果使用介质管理器和它自己的内部过期策略,谨慎地启用备份优化。定期运行CROSSCHECK命令来与介质管理器同步RMAN恢复目录。否则,RMAN由于优化跳过备份,却没有意识到介质管理器已经丢弃存储在磁带上的备份。
2.1. SBT备份的恢复窗口保留策略的备份优化
假设启用备份优化和恢复窗口备份保留策略已生效。在这种情况中,当执行SBT备份时,RMAN总是备份它们的最近的备份已经比恢复窗口更旧的数据文件。
例如,假设以下场景:
1) 今天是2月21日
2) 恢复窗口是7天
3) 最近的表空间tools的磁带备份是1月3日
4) 表空间tools是只读
在2月21日,当执行命令来备份表空间tools到磁带时,RMAN备份它即使它在1月3日的备份之后没有更改(因为它是只读的)。RMAN备份它是因为表空间的备份在7天的恢复窗口期内不存在。
这个行为让介质管理把旧的磁带置为过期。否则,介质管理器被无限期地强制保留1月3日的表空间tools的备份。在2月21日对表空间tools做一个最近的备份,RMAN让介质管理器把包含1月3日备份的磁带置为过期。
2.2. SBT备份的冗余度保留策略的备份优化
假设配置了冗余度保留策略。在这种情况中,当存在r+1个文件的备份时(r是命令CONFIGURE RETENTION POLICY TO REDUNDANCY r中的冗余度),RMAN只跳过备份脱机或只读数据文件到SBT。
例如,假设启用了备份优化和设置以下保留策略:
CONFIGURE DEFAULT DEVICE TYPE TO sbt;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
使用这些配置,RMAN只跳过备份三份等同的已经备份过的文件。假设从来没有备份过users表空间,它是可读写的,在一周的过程中执行以下表中的操作。
天 | 操作 | 结果 | 冗余备份 |
---|---|---|---|
星期一 | 正常脱机users表空间 | ||
星期二 | BACKUP DATABASE | 备份表空间users | |
星期三 | BACKUP DATABASE | 备份表空间users | |
星期四 | BACKUP DATABASE | 备份表空间users | 星期二的备份 |
星期五 | BACKUP DATABASE | 表空间users不备份 | 星期二的备份 |
星期六 | BACKUP DATABASE | 表空间users不备份 | 星期二的备份 |
星期日 | DELETE OBSOLETE | 星期二的备份被删除 | |
星期一 | BACKUP DATABASE | 备份表空间users | 星期三的备份 |
在星期二,星期三和星期四备份脱机的users表空间来满足必须存在3份备份的条件(比冗余度设置多1)。星期五和星期六的备份因为备份优化不会备份表空间users。星期二的备份从星期四开始是过期的。
在星期天,删除所有过期的备份,它会移除星期二的users表空间的备份。星期二的备份过期是因为保留策略的设置。在星期一的整个数据库的备份会备份users表空间来满足3份备份必须存在的条件(比冗余度设置多1)。这样,可以随着时间回收磁带。
3.配置备份优化
缺省情况下,备份优化配置为OFF。可以使用SHOW BACKUP OPTIMIZATION命令来查看备份优化当前的设置。
查看当前的备份优化配置:
SHOW BACKUP OPTIMIZATION;
RMAN configuration parameters for database with db_unique_name PROD1 are:
CONFIGURE BACKUP OPTIMIZATION OFF;
启用备份优化:
CONFIGURE BACKUP OPTIMIZATION ON;
来源:《Oracle Database Backup and Recovery User’s Guide,19c》