增量備份,是指在完整備份的基礎上,每次隻是備份自上次備份以來被修改過的資料塊。增量備份政策不能用于映像備份,因為映像備份總是對于所有的資料檔案。增量備份可以是資料庫、資料檔案和表空間三個級别。
一、增量備份的種類
第一、累積增量備份
累積增量備份是指自累積備份自上次完整資料庫備份或上一次LEVEL 0差異增量備份以來所修改過的資料塊.

第二、差異增量備份
差異增量備份有分為level 0和level1兩種。
其中,level 0是指在上一次完整備份或level 0級别的差異增量備份的基礎上進行的第一次差異備份,期間會掃描所有的資料塊,判斷自上次完整備份後有哪些資料塊被更新過,然後,對這些資料塊進行備份。
而level 1是指自上一次level 0或level 1差異備份之後,有哪些資料塊被更新過,然後備份這些資料塊。如果沒有進行過level 0 的備份則會先進行level 0的備份。期間,如果沒有啟動塊修改跟蹤特性(Block Change Tracking)的話,将會有進行對所有資料塊的掃描。為此,為了提高性能,自10g以來增加了Block Change Tracking檔案,來儲存自上次level 0或level 1以來更新的所有資料塊記錄。
檢視是否啟動了Block Change Tracking:
SQL> select status from v$block_change_tracking;
STATUS
----------
DISABLED
啟動Block Change Tracking:
SQL> alter database enable block change tracking using file 'rman_inc.trk';
Database altered.
關閉Block Change Tracking:
SQL> alter database disable block change tracking using file 'rman_inc.trk';
Database altered.
檢視Block Change Tracking檔案的位置與大小:
SQL> select * from v$block_change_tracking;
STATUS FILENAME BYTES
---------- -------------------------------------------------- ----------
ENABLED D:\APP\ASUS\PRODUCT\11.2.0\DBHOME_1\DATABASE\RMAN_ 11599872
INC.TRK
三、增量備份原理
1、查找更新過的資料塊
首先需要知道的是,每個資料塊都有一個block scn,該scn記錄的是該資料塊最近一次被修改的時間。然後跟最近的一次備份對應的備份時間SCN進行比較,如果block scn大于或等于scn說明該資料塊被修改過,需要進行備份。如果已經開啟了block change tracking功能而且已經進行過LEVEL 0級别的備份,則這些block就會被記錄在block change tracking檔案中。以便下一次LEVEL 1的時候使用。
2、增量備份原理
每次LEVEL 1備份後,都會參照前一次增量備份LEVEL 1或LEVEL 0的備份資料的SCN,也就是incremental start scn 。對于目前所有的資料塊,如果資料塊的block scn比incremental start scn大或等于其的資料塊都會是本次LEVEL 1備份的對象,然後就備份這些資料塊。
3、利用增量備份進行恢複的原理
介紹前需要了解兩點:
第一,每個資料檔案都有一個checkpoint_change#,可以通過v$datafile_checkpoint_change#來檢視。該資料檔案中的所有資料塊的block scn都必須小于或等于該checkpoint_change#.
第二,每個備份集,包括增量備份集、全量備份集,其中的資料都是資料檔案在某個時間點中的資料塊,也就是其中的所有資料塊的block scn都是一樣的。在這裡稱其為backup_change#。
原理:恢複的時候,相當于複制這些備份集中的資料塊到對應的資料檔案中,覆寫原有資料塊,同時修改資料塊頭的checkpoint_change#以及控制檔案中的對應資料檔案記錄的checkpoint_change#。
應用:該備份可以用來修複nologging操作可能帶來的非一緻性風險。因為增量備份是應用所有修改的資料塊,nologging的資料塊是新的,也就是修改過的,也是增量備份的對象。是以,進行完nologging操作的批量插入操作之後,通常需要進行一次增量備份。
增量備份的優勢:
第一,如果恢複的時候,有兩條路選擇:一是,通過備份的歸檔日志檔案進行前滾的方式修複;一是,通過複制應用增量備份的資料來恢複。那麼增量備份因為方式簡單,而使得比redo修複更有效率;
第二,由于映像檔案是可以直接使用,不像備份檔案那樣需要先進行還原操作。為此,如果如果可以的話,可以用映像檔案跟增量備份檔案結合,減少還原資料量,進而提高還原恢複的效率。