我們上一講講到了RMAN能提供全庫備份、表空間備份、數(shù)據(jù)文件備份、歸檔日志備份、控制文件及參數(shù)文件的備份。RMAN備份出來的文件稱之為備份集,RMAN在備份的過程中,只備份已經(jīng)使用過的數(shù)據(jù)塊。RMAN將多個數(shù)據(jù)文件打包到一起,生成一個備份集。數(shù)據(jù)文件與備份集文件不再是一一對應的關系。關于備份集的概念,我們下一講再詳細介紹。本將我們說說RMAN的另一種備份方式--鏡像copy。
成都創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供廣南網(wǎng)站建設、廣南做網(wǎng)站、廣南網(wǎng)站設計、廣南網(wǎng)站制作等企業(yè)網(wǎng)站建設、網(wǎng)頁設計與制作、廣南企業(yè)網(wǎng)站模板建站服務,十余年廣南做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡服務。
鏡像copy是單個數(shù)據(jù)文件、控制文件、歸檔日志的克隆。備份出來的備份文件與數(shù)據(jù)庫文件一一對應。下圖描述了備份集與鏡像copy之間的區(qū)別
鏡像copy可以使用RMAN的backup as copy命令生成,也可以使用操作系統(tǒng)命令生成。
使用backup as copy命令備份時,Oracle服務器會話驗證數(shù)據(jù)文件中的數(shù)據(jù)塊,并且會將此次備份操作記錄到控制文件中。我們知道,如果使用操作系統(tǒng)命令進行熱備,首先要在數(shù)據(jù)庫中執(zhí)行begin backup命令,執(zhí)行該命令后,數(shù)據(jù)文件的頭部將被冷凍,在備份期間,為了保證數(shù)據(jù)塊的有效性,一旦數(shù)據(jù)塊被修改,那么日志文件將記錄下該數(shù)據(jù)塊的原始鏡像。如果使用RMAN的backup as copy命令進行備份,則無需執(zhí)行begin backup。 因為rman在備份的過程中會檢查數(shù)據(jù)塊的一致性,直到數(shù)據(jù)塊一致了,才將其copy到備份文件中。
鏡像copy有如下特征:
鏡像copy只能寫到磁盤上,當備份大文件時,將花費很長時間。但是數(shù)據(jù)還原的時間將大大減少。因為數(shù)據(jù)文件已經(jīng)在磁盤上,無需從其他介質(zhì)中還原數(shù)據(jù)文件。
鏡像copy中包含數(shù)據(jù)文件中的所有的塊,無論該塊是否被使用。
執(zhí)行鏡像copy
備份數(shù)據(jù)庫
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_bss7pnh3_.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
備份了數(shù)據(jù)庫中所有的數(shù)據(jù)文件(包括undo,其實undo也是數(shù)據(jù)文件)。但是backup database as copy時,并不會備份控制文件和spfile。最后一段備份控制文件與參數(shù)文件是因為我們配置了控制文件自動備份功能。
備份表空間
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
備份數(shù)據(jù)文件
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