RMAN增量备份 概念
增量备份只备份自特定的先前备份之后变化的数据块。
每个数据块上都包含一个SCN,SCN可以标识最近一次对于Block的变更。在增量备份的过程中,RMAN读取每一个数据块的SCN之前的备份SCN相比较,从而判断出Block是否发生了变化,然后据此进行备份。但是需要注意的是,在大型数据库中,RMAN的扫描时间可能会极其漫长,所以如何采用增量备份仍然需要慎重,在Oracle 10g中,为了改变这一状况,Oracle引入了Block ChangeTracking 新特性来解决这一问题。
增量备份分为两类:差异增量备份和累积增量备份。
(1)差异增量备份。 差异增量备份(Differential Incremental Backups)备份上一次更高级别备份或同级备份以来所有变化的数据块,差异增量是默认增量备份方式。
Level 0和Level 1级差异增量备份的示意,可以看到每次Level 1 级增量备份只备份上级(0 级)或同级(1 级)备份以来变化的数据块。 (2)累积增量备份。 累积增量备份(Cumulative IncrementalBackups)备份自上次更高级别备份以来所有变化的数据块。通过0级备份和1级累积增量备份来进行说明。可以看到1级增量备份包含了上次高一级别备份(0级)以来所有变化的数据块。 总结:对于差异增量备份,每次备份的数据量相对要小,但是 恢复是必须依次恢复每个备份集,恢复要相对复杂,恢复时间较长;对于累积增量备份,恢复时需要恢复的备份集数量相对要少,恢复速度较快。为了加快增量备份的恢复,在Oracle 10g中,Oracle还引入了增量备份合并(Incremental MergeBackup)的功能。
模拟测试
配置备份路径
configure channel 1 device type disk format '+SSDDG2';
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
0级增量备份
backup incremental level=0 database;
1级备份
create table eygle1 as select * from dba_objects;
create table eygle2 as select * from dba_objects;
现在Oracle将备份变化的数据块
backup incremental level=1 database;
Block Chage Tracking
Block Chage Tracking是Oracle10g的一个新特性,Block Change Tracking进程记录自从上一次备份以来发生变化的数据块,并把这些信息记录在跟踪文件中。RMAN 使用这个文件判断增量备份中需要备份的变更数据。这极大地促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。在Oracle 10g之前Oracle就支持增量备份,但是增量备份需要扫描整个数据文件以确认哪些 Block自上一次备份以来发生了改变,在大型数据库中,这个扫描时间可能会极其漫长,现在BlockChange Tracking特性则改变了这一行为。但是同样,改进的代价是更多的资源消耗,如何采用仍然取决于我们的平衡原理。
启用跟踪可以使用如下命令:
alter database enable block change tracking usingfile '/root/eygle_block_track.log';
查询当前配置
select filename,status,bytes from v$block_change_tracking;
关闭跟踪
alter database disable block change tracking;
|