我们上一讲讲到了RMAN能提供全库备份、表空间备份、数据文件备份、归档日志备份、控制文件及参数文件的备份。RMAN备份出来的文件称之为备份集,RMAN在备份的过程中,只备份已经使用过的数据块。RMAN将多个数据文件打包到一起,生成一个备份集。数据文件与备份集文件不再是一一对应的关系。关于备份集的概念,我们下一讲再详细介绍。本将我们说说RMAN的另一种备份方式--镜像copy。
镜像copy是单个数据文件、控制文件、归档日志的克隆。备份出来的备份文件与数据库文件一一对应。下图描述了备份集与镜像copy之间的区别
镜像copy可以使用RMAN的backup as copy命令生成,也可以使用操作系统命令生成。
使用backup as copy命令备份时,Oracle服务器会话验证数据文件中的数据块,并且会将此次备份操作记录到控制文件中。我们知道,如果使用操作系统命令进行热备,首先要在数据库中执行begin backup命令,执行该命令后,数据文件的头部将被冷冻,在备份期间,为了保证数据块的有效性,一旦数据块被修改,那么日志文件将记录下该数据块的原始镜像。如果使用RMAN的backup as copy命令进行备份,则无需执行begin backup。 因为rman在备份的过程中会检查数据块的一致性,直到数据块一致了,才将其copy到备份文件中。
镜像copy有如下特征:
镜像copy只能写到磁盘上,当备份大文件时,将花费很长时间。但是数据还原的时间将大大减少。因为数据文件已经在磁盘上,无需从其他介质中还原数据文件。
镜像copy中包含数据文件中的所有的块,无论该块是否被使用。
执行镜像copy
备份数据库
RMAN> backup as copy database; Starting backup at 2015/07/08 11:53:55 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=39 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00001 name=/u01/app/oracle/oradata/devdb/system01.dbf output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_system_bss7pnh2_.dbf tag=TAG20150708T115355 RECID=9 STAMP=884519670 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:35 channel ORA_DISK_1: starting datafile copy input datafile file number=00002 name=/u01/app/oracle/oradata/devdb/sysaux01.dbf output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_sysaux_bss7qqqg_.dbf tag=TAG20150708T115355 RECID=10 STAMP=884519692 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:25 channel ORA_DISK_1: starting datafile copy input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_example_bss7rk3f_.dbf tag=TAG20150708T115355 RECID=11 STAMP=884519708 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 channel ORA_DISK_1: starting datafile copy input datafile file number=00003 name=/u01/app/oracle/oradata/devdb/undotbs01.dbf output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_undotbs1_bss7s07q_.dbf tag=TAG20150708T115355 RECID=12 STAMP=884519715 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07 channel ORA_DISK_1: starting datafile copy input datafile file number=00006 name=/u01/app/oracle/oradata/devdb/idx01.dbf output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_idx_bss7s7gp_.dbf tag=TAG20150708T115355 RECID=13 STAMP=884519720 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile copy input datafile file number=00004 name=/u01/app/oracle/oradata/devdb/users01.dbf output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_users_bss7s8mb_.dbf tag=TAG20150708T115355 RECID=14 STAMP=884519720 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 2015/07/08 11:55:21 Starting Control File and SPFILE Autobackup at 2015/07/08 11:55:21 piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884519721_bss7sbdk_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2015/07/08 11:55:22
备份了数据库中所有的数据文件(包括undo,其实undo也是数据文件)。但是backup database as copy时,并不会备份控制文件和spfile。最后一段备份控制文件与参数文件是因为我们配置了控制文件自动备份功能。
备份表空间
RMAN> backup as copy tablespace EXAMPLE; Starting backup at 2015/07/08 12:26:58 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=1 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_example_bss9nmnv_.dbf tag=TAG20150708T122659 RECID=15 STAMP=884521632 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 Finished backup at 2015/07/08 12:27:14 Starting Control File and SPFILE Autobackup at 2015/07/08 12:27:14 piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884521634_bss9o37t_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2015/07/08 12:27:15
备份数据文件
RMAN> backup as copy datafile '/u01/app/oracle/oradata/devdb/example01.dbf'; Starting backup at 2015/07/08 12:28:59 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy input datafile file number=00005 name=/u01/app/oracle/oradata/devdb/example01.dbf output file name=/u01/app/oracle/fast_recovery_area/DEVDB/datafile/o1_mf_example_bss9rcv9_.dbf tag=TAG20150708T122859 RECID=16 STAMP=884521750 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15 Finished backup at 2015/07/08 12:29:14 Starting Control File and SPFILE Autobackup at 2015/07/08 12:29:15 piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884521755_bss9rv8v_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2015/07/08 12:29:16
备份控制文件
RMAN> backup as copy current controlfile; Starting backup at 2015/07/08 12:33:34 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile copy copying current control file output file name=/u01/app/oracle/fast_recovery_area/DEVDB/controlfile/o1_mf_TAG20150708T123334_bssb0yj4_.ctl tag=TAG20150708T123334 RECID=17 STAMP=884522014 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 2015/07/08 12:33:35 Starting Control File and SPFILE Autobackup at 2015/07/08 12:33:35 piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884522015_bssb0zrf_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2015/07/08 12:33:36
备份归档日志文件
RMAN> backup as copy archivelog all; Starting backup at 2015/07/08 12:34:54 current log archived using channel ORA_DISK_1 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=16 RECID=7 STAMP=884486041 output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_16_bssb3h9w_.arc RECID=15 STAMP=884522095 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=17 RECID=8 STAMP=884486144 output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_17_bssb3jdy_.arc RECID=16 STAMP=884522096 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=18 RECID=9 STAMP=884486148 output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_18_bssb3khz_.arc RECID=17 STAMP=884522097 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=19 RECID=10 STAMP=884486151 output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_19_bssb3ll4_.arc RECID=18 STAMP=884522098 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=20 RECID=11 STAMP=884486169 output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_20_bssb3mnx_.arc RECID=19 STAMP=884522099 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=21 RECID=12 STAMP=884486468 output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_21_bssb3nqm_.arc RECID=20 STAMP=884522100 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=22 RECID=13 STAMP=884486525 output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_22_bssb3otp_.arc RECID=21 STAMP=884522101 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting archived log copy input archived log thread=1 sequence=23 RECID=14 STAMP=884522094 output file name=/u01/app/oracle/fast_recovery_area/DEVDB/archivelog/2015_07_08/o1_mf_1_23_bssb3py8_.arc RECID=22 STAMP=884522103 channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01 Finished backup at 2015/07/08 12:35:03 Starting Control File and SPFILE Autobackup at 2015/07/08 12:35:04 piece handle=/u01/app/oracle/fast_recovery_area/DEVDB/autobackup/2015_07_08/o1_mf_s_884522104_bssb3r69_.bkp comment=NONE Finished Control File and SPFILE Autobackup at 2015/07/08 12:35:05