ORACLE 10G 新特性(INCREMENTALLY UPDATED BACKUPS)學習

gaopengtttt發表於2009-02-08

原創 轉載請註明出處

    10g中新增很多新特性 當然RMAN 也得到了增強,INCREMENTALLY UPDATED BACKUPS就是其中之一。

     此特性有別於傳統的增量備份,主要是為了節省恢復時間,他透過合併COPY和增量BACKUPSET來節約時間,舉個例子:周1早上 全備(全備為COPY備份) 周2早上 增量 周2晚上 洗白

如果沒合併恢復時間為:
周1早上-(使用增量)--周2早上--(使用歸檔和日誌檔案)---當前狀態

如果合併了恢復時間為:
周1早上-(省去)--周2早上--(使用歸檔和日誌檔案)---當前狀態
周2早上--(使用歸檔和日誌檔案)---當前狀態 只需要這段時間

周1早上-(省去)--周2早 這段時間省去。

官方的說明為:

In Oracle Database 10g, you can use RMAN to apply incremental backups to data file image copies. With this recovery method, you use RMAN to recover a copy of a data file; that is, you roll forward (recover) the image copy to the specified point in time by applying the incremental backups to the image copy. The image copy is updated with all changes up through the SCN at which the incremental backup was taken. RMAN uses the resulting updated data file in media recovery just as it would use a full image copy taken at that SCN, without the overhead of performing a full image copy of the database every day. The benefits of applying incremental backups to data file image copies are that you reduce the time required for media recovery (using archive logs) because you only need to apply archive logs since the last incremental backup. Also, you do not need to perform. a full image copy after incremental restoration
If the recovery process fails during the application of the incremental backup file, you simply restart the recovery process. RMAN automatically determines the required incremental backup files to apply, from before the image data file copy until the time at which you want to stop the recovery process. If there is more than one version of an image copy recorded in the RMAN catalog, RMAN automatically uses the latest version of the image copy. RMAN reports an error if it cannot merge an incremental with an image copy.
Note: The RECOVER COPY OF DATAFILE RMAN command is the same as the RECOVER DATAFILECOPY RMAN command.
下面試驗證明:
1、COPY全備份 

RMAN> BACKUP AS COPY DATABASE;

啟動 backup 於 08-2月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00001 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSTEM01.DBF
輸出檔名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\DATAFILE\O1_MF_SYS
RXPJLB8_.DBF 標記 = TAG20090208T211145 recid = 9 時間戳 = 678316351
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:56
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00003 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSAUX01.DBF
輸出檔名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\DATAFILE\O1_MF_SYS
RXPLB0H_.DBF 標記 = TAG20090208T211145 recid = 10 時間戳 = 678316387
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:35
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00002 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\UNDOTBS01.DBF
輸出檔名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\DATAFILE\O1_MF_UND
_4RXPMFGN_.DBF 標記 = TAG20090208T211145 recid = 11 時間戳 = 678316402
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:07
通道 ORA_DISK_1: 啟動資料檔案副本
輸入資料檔案 fno=00004 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\USERS01.DBF
輸出檔名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\DATAFILE\O1_MF_USE
XPMNPG_.DBF 標記 = TAG20090208T211145 recid = 12 時間戳 = 678316405
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:03
通道 ORA_DISK_1: 啟動資料檔案副本
複製當前控制檔案
輸出檔名 = D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\CONTROLFILE\O1_MF_
090208T211145_4RXPMR0Z_.CTL 標記 = TAG20090208T211145 recid = 13 時間戳 = 6
409
通道 ORA_DISK_1: 資料檔案複製完畢, 經過時間: 00:00:04
通道 ORA_DISK_1: 啟動全部資料檔案備份集
通道 ORA_DISK_1: 正在指定備份集中的資料檔案
在備份集中包含當前的 SPFILE
通道 ORA_DISK_1: 正在啟動段 1 於 08-2月 -09
通道 ORA_DISK_1: 已完成段 1 於 08-2月 -09
段控制程式碼=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP\BACKUPSET\2009_02_08\O1_
SNF_TAG20090208T211145_4RXPMWB8_.BKP 標記=TAG20090208T211145 註釋=NONE
通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:02
完成 backup 於 08-2月 -09

2、增量BACKUPSET備份

RMAN>  run
2> {
3> allocate channel c1 type disk;
4> backup incremental level 1 database format='f:\%d_%T_%s1.bak';
5> sql' alter system switch logfile';
6> release channel c1 ;
7> }

釋放的通道: ORA_DISK_1
分配的通道: c1
通道 c1: sid=157 devtype=DISK

啟動 backup 於 08-2月 -09
通道 c1: 啟動增量級別 1 資料檔案備份集
通道 c1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00001 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSTEM01.DBF
輸入資料檔案 fno=00003 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSAUX01.DBF
輸入資料檔案 fno=00002 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\UNDOTBS01.DBF
輸入資料檔案 fno=00004 name=D:\ORACLE10G\PRODUCT\ORADATA\PP\USERS01.DBF
通道 c1: 正在啟動段 1 於 08-2月 -09
通道 c1: 已完成段 1 於 08-2月 -09
段控制程式碼=F:\PP_20090208_191.BAK 標記=TAG20090208T211441 註釋=NONE
通道 c1: 備份集已完成, 經過時間:00:00:45
通道 c1: 啟動增量級別 1 資料檔案備份集
通道 c1: 正在指定備份集中的資料檔案
備份集中包括當前控制檔案
在備份集中包含當前的 SPFILE
通道 c1: 正在啟動段 1 於 08-2月 -09
通道 c1: 已完成段 1 於 08-2月 -09
段控制程式碼=F:\PP_20090208_201.BAK 標記=TAG20090208T211441 註釋=NONE
通道 c1: 備份集已完成, 經過時間:00:00:06
完成 backup 於 08-2月 -09

sql 語句:  alter system switch logfile

釋放的通道: c1

3、合併過程(重點)

RMAN> recover copy of database;

啟動 recover 於 08-2月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=157 devtype=DISK
通道 ORA_DISK_1: 正在開始恢復增量資料檔案備份集
通道 ORA_DISK_1: 指定要恢復的資料檔案副本
恢復資料檔案副本 fno=00001 名稱=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP
FILE\O1_MF_SYSTEM_4RXPJLB8_.DBF
恢復資料檔案副本 fno=00002 名稱=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP
FILE\O1_MF_UNDOTBS1_4RXPMFGN_.DBF
恢復資料檔案副本 fno=00003 名稱=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP
FILE\O1_MF_SYSAUX_4RXPLB0H_.DBF
恢復資料檔案副本 fno=00004 名稱=D:\ORACLE10G\PRODUCT\FLASH_RECOVERY_AREA\PP
FILE\O1_MF_USERS_4RXPMNPG_.DBF
通道 ORA_DISK_1: 正在讀取備份段 F:\PP_20090208_191.BAK
通道 ORA_DISK_1: 已恢復備份段 1
段控制程式碼 = F:\PP_20090208_191.BAK 標記 = TAG20090208T211441
通道 ORA_DISK_1: 恢復完成, 用時: 00:00:07
完成 recover 於 08-2月 -09

4、使用備份檔案,重置檔案

RMAN> restore database;

啟動 restore 於 08-2月 -09
使用通道 ORA_DISK_1

通道 ORA_DISK_1: 正在恢復資料檔案00001
輸入資料檔案副本 recid=17 stamp=678316568 檔名=D:\ORACLE10G\PRODUCT\FLASH_R
VERY_AREA\PP\DATAFILE\O1_MF_SYSTEM_4RXPJLB8_.DBF
資料檔案 00001 的恢復目標: D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSTEM01.DBF
通道 ORA_DISK_1: 已複製資料檔案 00001 的資料檔案副本
輸出檔名=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSTEM01.DBF recid=18 stamp=678316

通道 ORA_DISK_1: 正在恢復資料檔案00002
輸入資料檔案副本 recid=15 stamp=678316566 檔名=D:\ORACLE10G\PRODUCT\FLASH_R
VERY_AREA\PP\DATAFILE\O1_MF_UNDOTBS1_4RXPMFGN_.DBF
資料檔案 00002 的恢復目標: D:\ORACLE10G\PRODUCT\ORADATA\PP\UNDOTBS01.DBF
通道 ORA_DISK_1: 已複製資料檔案 00002 的資料檔案副本
輸出檔名=D:\ORACLE10G\PRODUCT\ORADATA\PP\UNDOTBS01.DBF recid=19 stamp=67831
2
通道 ORA_DISK_1: 正在恢復資料檔案00003
輸入資料檔案副本 recid=16 stamp=678316567 檔名=D:\ORACLE10G\PRODUCT\FLASH_R
VERY_AREA\PP\DATAFILE\O1_MF_SYSAUX_4RXPLB0H_.DBF
資料檔案 00003 的恢復目標: D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSAUX01.DBF
通道 ORA_DISK_1: 已複製資料檔案 00003 的資料檔案副本
輸出檔名=D:\ORACLE10G\PRODUCT\ORADATA\PP\SYSAUX01.DBF recid=20 stamp=678316

通道 ORA_DISK_1: 正在恢復資料檔案00004
輸入資料檔案副本 recid=14 stamp=678316566 檔名=D:\ORACLE10G\PRODUCT\FLASH_R
VERY_AREA\PP\DATAFILE\O1_MF_USERS_4RXPMNPG_.DBF
資料檔案 00004 的恢復目標: D:\ORACLE10G\PRODUCT\ORADATA\PP\USERS01.DBF
通道 ORA_DISK_1: 已複製資料檔案 00004 的資料檔案副本
輸出檔名=D:\ORACLE10G\PRODUCT\ORADATA\PP\USERS01.DBF recid=21 stamp=6783169
完成 restore 於 08-2月 -09

5、恢復

RMAN> recover database;

啟動 recover 於 08-2月 -09
使用通道 ORA_DISK_1

正在開始介質的恢復
介質恢復完成, 用時: 00:00:03

完成 recover 於 08-2月 -09

可以看出恢復過程並沒有使用到我們的增量備份。

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-545606/,如需轉載,請註明出處,否則將追究法律責任。

相關文章