1. 程式人生 > >Oracle 12 Rman增量備份

Oracle 12 Rman增量備份

增量備份

增量備份主要作用是僅複製自上次備份以來已更改的資料塊。您可以使用RMAN建立資料檔案,表空間或整個資料庫的增量備份。

將增量備份作為策略的一部分的主要原因是:

  • 用於基於增量更新備份的策略,其中這些增量備份用於定期前滾資料庫的映像副本;

  • 減少每日備份所需的時間;

  • 通過網路備份時節省網路頻寬;

  • 能夠恢復使用NOLOGGING選項建立的物件的更改。例如,直接插入不會建立重做日誌並且無法使用介質恢復重現其更改的資料條目。但是,它們會更改資料塊,因此會通過增量備份進行還原;

  • 能夠將物理備用資料庫與主資料庫同步

    您可以使用RMAN 

BACKUP INCREMENTAL FROM SCN命令在主資料庫上建立備份,該備份從備用資料庫的當前SCN開始,備庫可用改備份前滾資料庫。

  • 少非歸檔資料庫的備份大小。您可以進行增量備份,而不是每次都進行完整的資料庫備份。

    與完全備份一樣,如果您處於ARCHIVELOG模式,則可以在資料庫開啟時進行增量備份; 如果資料庫處於NOARCHIVELOG模式,則只能在一致關閉後進行增量備份。

 

  Note完整備份(full backup)不能成為增量備份策略的一部分; 也就是說,它不能是後續增量備份的父級。

 

增量備份演算法

資料檔案中的每個資料塊都包含一個系統更改號(SCN),它是最近對塊進行更改的SCN。在增量備份期間,RMAN讀取輸入檔案中每個資料塊的SCN,並將其與父增量備份的檢查點SCN進行比較。如果輸入資料塊中的SCN大於或等於父級的檢查點SCN,則RMAN複製該塊。

請注意,如果啟用塊更改跟蹤功能,RMAN可以引用更改跟蹤檔案以識別資料檔案中已更改的塊,而無需掃描資料檔案的完整內容。啟用後提高增量備份的效率,但由於要時刻維護塊跟蹤,系統在平時會額外增加一點負擔。

#開啟塊更改跟蹤
SQL> alter database enable block change tracking;

#檢視塊更改跟蹤檔案
SQL
> select filename from v$block_change_tracking; #關閉塊更改跟蹤 SQL> alter database disable block change tracking;

 

多級增量備份

RMAN可以建立多級增量備份。每個增量級別由值0或1表示。

0級增量備份level 0 incremental backup):相當於全備,可以作為其他增量的父級。

使用方法:

 

RMAN>backup incremental level 0 database format '/RmanBackup/0-%d.%s.%p.%T';

 

 

 

1級增量備份(level 1 incremental backup)可分兩種:

預設1級備份是差異增量備份,級別0的增量備份可以是備份集或映像副本,但級別1的增量備份只能是備份集。

  • 差異增量備份(A differential incremental backup ):備份上一次備份(0或1級備份)後發生變化的資料;

  預設1級備份是差異增量備份,級別0的增量備份可以是備份集或映像副本,但級別1的增量備份只能是備份集。

                   

                      圖1-差異增量備份

說明:

  星期天:0級備份將備份此資料庫中曾使用過的所有塊

  週一至週六:在星期一到星期六的每一天,1級差異增量備份將備份自級別1或0的最新增量備份以來已更改的所有塊。星期一備份複製自星期日0級備份以來更改的塊,星期二備份複製塊自星期一1級備份以來發生了變化,等等

使用方法:

 

RMAN>backup incremental level 1 database format '/RmanBackup/1-%d.%s.%p.%T';

 

 

 

  • 累計增量備份(A cumulative incremental backup):用於備份上一次0級備份以後所有發生變化的資料;

                

                      圖2-累計增量備份

說明:

  星期天:0級備份將備份此資料庫中曾使用過的所有塊

  週一至週六:累積增量級別1備份會複製自最近的0級備份以來更改的所有塊。由於最新的0級備份是在星期日建立的,因此星期一到星期六每天的1級備份會備份自星期日備份以來更改的所有塊。

使用方法:

RMAN>backup incremental level 1 cumulative database format '/RmanBackup/1c-%d.%s.%p.%T';

 

  Note當恢復時間比磁碟空間更重要時,累積備份優於差異備份,因為備份的數量越少恢復時間越快

使用增量備份恢復資料

  • 在介質恢復期間,RMAN會檢查還原的檔案,以確定是否可以使用增量備份來恢復它們。如果可以選擇,那麼RMAN總是選擇增量備份而不是歸檔重做日誌,因為在塊級別恢復比日誌重做要快。

例如,可以通過0級備份還原(restore)資料檔案,然後通過1級增量備份恢復(recover)它們。

  • 使用增量備份策略,只需要建立一個初始級別0的完整備份和隨後的1級增量備份。初始備份和後續增量必須是RMAN備份集,而不是資料副本(copy)。

Note使用增量備份完整恢復資料庫,需要至少一個0級備份、少量增量備份和一些歸檔重做日誌。

 

 

 

 

 本文參照官方文件:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/bradv/rman-backup-concepts.html#GUID-D3BD53B8-91F3-474C-BD10-00AE9B30E610

 原創,未經允許不得轉載