探索ORACLE之RMAN_05增量备份
作者:吴伟龙
在前几次的博文中我提到了数据库的一致性备份和非一致性备份,它们都属于完全备份,对数据的备份,每次备份是备份所有块,在今天我们就来谈谈增量备份,通过增量备份可以有效的节省存储空间及备份的所需的时间。
1、什么是增量备份?
什么是增量备份,增量备份分为两种,分别为差异增量(Differential Backup)备份与累计增量(CumulativeBackup)备份。使用RMAN建立备份集的时,默认是备份数据文件的所有数据块,这种备份也称之为完全备份,而增量备份只备份上次备份以来变化的数据块。可以通过RMAN的增量备份来实现数据文件,表空间,数据库的备份,同时使备份文件达到最小。
注意:在Oracle10g之前,差异增量备份和累积增量备份都包括0、1、2、3、4、5共五个备份级别,但在Oracle 10g中只有0、1两个级别,其中0级相当于完全备份。
2、差异增量备份:
差异增量备份级别1备份最近一次增量备份(差异增量备份和累计增量备份)变化的数据块。如果要进行级别1差异增量备份,RMAN备份在执行最后一个级别1的增量备份后所变化的数据块;如果之前没有执行过级别1的备份,就备份自执行级别0以后变化的数据块;如果也没有执行过级别0的备份,Rman就复制自文件创建以来变化的所有数据块,否则执行一个级别0的备份。差异增量备份见(图一)所示。
周日执行一个级别为0的增量备份,周一和周六执行级别为1的差异增量备份,即指备份自上一个备份以来变化的数据块。
(图一)
3、累积增量备份:
累计增量备份是指备份自最近的级别0备份以来所变化的数据块。累积增量备份能减少恢复时间。累计增量备份的示意图如(图二)所示。
(图二)
图二中,周日对数据库执行了级别为0的备份。周一到周六执行级别为1的累积增量备份。从图中的箭头可以看出,累计增量备份是备份级0以来的数据块被修改的数据。累计增量备份增加了备份时间,但是因为恢复的时候,需要从更少的备份集中恢复数据,所以累计增量备份将比差异增量备份更节省时间。
2、如何创建增量备份
在Oracle 9i中,只要是增量备份,都需要对比数据库中的所有数据块。这个过程很费时间,而且由于增量备份形成多个不通的备份集,使得恢复变得更加不可靠速度也更慢。一般情况下不是很使用,但是对大型的数据仓库系统还是非常不错的,OLTP系统一般没有必要在9i数据库上选择增量备份。
但是到了Oracle 10g的时候增量备份有了很大的改进。实现了增量备份成真正意义上的备份。通过特有的增量日志,使得RMAN没有必要去比较数据块中的每个数据块。但代价是会增加磁盘的I/O。另外,Oracle 10g通过备份的合并,使增量备份的结果可以合并在一起,而减少恢复时间。增量备份都需要一个基础,0集备份,0级备份就是所有增量的基础。0级增量备份与全备的不同就是0级备份可以做为其它增量备份的基础备份而全备不可以。如下是0级增量,1级累计增量,1级差异增量的区别。
0级备份:
RMAN> backup incremental level 0 database;
Starting backup at 24-MAY-12
using target database control file instead ofrecovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=139 devtype=DISK
channel ORA_DISK_1: starting incremental level 0datafile backupset
channel ORA_DISK_1: specifying datafile(s) inbackupset
input datafile fno=00001name=/DBData/WWL/system01.dbf
input datafile fno=00003name=/DBData/WWL/sysaux01.dbf
input datafile fno=00002name=/DBData/WWL/undotbs01.dbf
input datafile fno=00004name=/DBData/WWL/users01.dbf
channel ORA_DISK_1: starting piece 1 at 24-MAY-12
channel ORA_DISK_1: finished piece 1 at 24-MAY-12
piece handle=/DBBak/bak_WWL_05_24_0knbqjh0_1_1tag=TAG20120524T214400 comment=NONE
channel ORA_DISK_1: backup set complete, elapsedtime: 00:00:56
Finished backup at 24-MAY-12
Starting Control File and SPFILE Autobackup at24-MAY-12
piecehandle=/DBSoft/product/10.2.0/db_1/dbs/c-5520179-20120524-00 comment=NONE
Finished Control File and SPFILE Autobackup at 24-MAY-12
1级累计增量备份
RMAN> backup incremental level 1 cumulativedatabase;
Starting backup at 24-MAY-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1datafile backupset
channel ORA_DISK_1: specifying datafile(s) inbackupset
input datafile fno=00001name=/DBData/WWL/system01.dbf
input datafile fno=00003name=/DBData/WWL/sysaux01.dbf
input datafile fno=00002name=/DBData/WWL/undotbs01.dbf
input datafile fno=00004name=/DBData/WWL/users01.dbf
channel ORA_DISK_1: starting piece 1 at 24-MAY-12
channel ORA_DISK_1: finished piece 1 at 24-MAY-12
piece handle=/DBBak/bak_WWL_05_24_0mnbqkvs_1_1tag=TAG20120524T220859 comment=NONE
channel ORA_DISK_1: backup set complete, elapsedtime: 00:00:35
Finished backup at 24-MAY-12
Starting Control File and SPFILE Autobackup at24-MAY-12
piecehandle=/DBSoft/product/10.2.0/db_1/dbs/c-5520179-20120524-01 comment=NONE
Finished Control File and SPFILE Autobackup at24-MAY-12
RMAN>
1级差异增量备份:
RMAN> backup incremental level 1 database;
Starting backup at 24-MAY-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental level 1datafile backupset
channel ORA_DISK_1: specifying datafile(s) inbackupset
input datafile fno=00001name=/DBData/WWL/system01.dbf
input datafile fno=00003 name=/DBData/WWL/sysaux01.dbf
input datafile fno=00002name=/DBData/WWL/undotbs01.dbf
input datafile fno=00004name=/DBData/WWL/users01.dbf
channel ORA_DISK_1: starting piece 1 at 24-MAY-12
channel ORA_DISK_1: finished piece 1 at 24-MAY-12
piece handle=/DBBak/bak_WWL_05_24_0onbqls2_1_1tag=TAG20120524T222401 comment=NONE
channel ORA_DISK_1: backup set complete, elapsedtime: 00:00:35
Finished backup at 24-MAY-12
Starting Control File and SPFILE Autobackup at24-MAY-12
piece handle=/DBSoft/product/10.2.0/db_1/dbs/c-5520179-20120524-02comment=NONE
Finished Control File and SPFILE Autobackup at24-MAY-12
RMAN>