我们回过头来看看进行数据库备份时生成的文件。
RMAN> backup database; Starting backup at 2015/07/08 00:58:27 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbf input datafile file number=00002 name=/u01/app/oracle/oradata/devdb/sysaux01.dbf input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbf input datafile file number=00006 name=/u01/app/oracle/oradata/devdb/idx01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbf channel ORA_DISK_1: starting piece 1 at 2015/07/08 00:58:28 channel ORA_DISK_1: finished piece 1 at 2015/07/08 01:00:33 piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T005827_bsr19n9z_.bkp tag=TAG20150708T005827 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:02:05 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: starting piece 1 at 2015/07/08 01:00:34 channel ORA_DISK_1: finished piece 1 at 2015/07/08 01:00:35 piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncsnf_TAG20150708T005827_bsr1flnq_.bkp tag=TAG20150708T005827 comment=NONE channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 Finished backup at 2015/07/08 01:00:35
一共生成了两个文件
/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T005827_bsr19n9z_.bkp /u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_ncsnf_TAG20150708T005827_bsr1flnq_.bkp
第一个文件包含了6个dbf文件的备份,第二个文件包含了控制文件和spfile的备份。这两个文件RMAN称之为备份集。
备份集:是RMAN用来保存备份特有的格式,一个备份集可以包含一个或者多个物理文件。
备份集有三种:
数据文件:可以包含数据文件和控制文件,但不包含归档日志。
归档日志:仅包含归档日志,不能包含数据文件或控制文件。
备份集:在RMAN中可以对备份集做备份,也就是说备份集里面包含备份集。
备份集的特性
可以使用BACKUP 命令创建备份集。FILESPERSET 参数可以控制备份集中包含的数据文件个数。
备份集通常包含多个文件。
可以将备份集写入磁盘或磁带。
要从备份集中提取文件,必须使用还原操作。
数据文件备份集可以是增量备份或完全备份。
备份集不包含从未使用过的块。
我们试想一下,如果按照上面备份数据库一样,所有的数据文件都只生成一个备份集文件会有什么问题?当数据库非常大的时候,生成出来的一个文件也是巨大的。即便我们不考虑操作系统对文件大小是否有限制。那么大的一个文件在管理维护上也是非常困难的。
为此,Oracle引入了备份片的概念。如果你仔细留意上面备份信息,你会发现这样的字样。
piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/backupset/2015_07_08/o1_mf_nnndf_TAG20150708T005827_bsr19n9z_.bkp
piece即时备份片的意思。备份片在物理上将备份集拆分成一个或多个文件。我们看下图:
备份片的特性
备份片是备份集中的一个文件。
备份片可以包含来自多个数据文件的数据块。
可以使用参数MAXPIECESIZE来控制备份片的最大大小。