天天看點

使用rman backup指令建立備份系列之增量備份

使用rman backup指令建立備份系列之增量備份:、

之是以有增量備份有三個主要原因:

時間,空間和最終使用者的影響。備份完成的時間對系統管理者來說非常重要。自動化的錄音帶庫是非常昂貴的。除了備份Oracle資料庫外還可用于備份系統。如果可以減少一個rman備份所需的時間,那麼

将節省需要的錄音帶庫資源。即使rman的預設操作時在增量備份時掃描整個資料檔案來确定哪些塊已經變更,也仍會節省時間,因為實際情況,瓶頸都在于對錄音帶的寫操作,而不是檔案的讀取。通過啟用

塊變更跟蹤,就不需要掃描整個資料檔案,備份時間大大減少。增量備份的量遠遠小于完整備份的量。正如備份集總是小于源檔案或映像副本,因為它們不包括從未寫入或可壓縮的空塊。

但增量備份可能是完整備份的一小部分。這可以減少對錄音帶庫的影響。

影響使用者的主要是完整備份所需的過量的磁盤i/o。如果啟用了塊變更跟蹤,增量備份可以直接通路變更的塊。進而大大減少所需的磁盤I/o資源。

   可以使用伺服器管理的備份執行增量備份,不能使用使用者管理的備份執行這一操作。就作業系統而言,備份的粒度是資料檔案:作業系統實用程式無法檢視資料檔案的内部,以增量方式提取已經更改

的塊,增量備份必須作為備份集或壓縮備份集。從邏輯上來說,無法執行映像副本增量備份,因為增量備份永遠不可能等同于源檔案,否則就談不上是增量備份。

   增量備份依賴于包含所有塊的起點,這稱為增量級别0備份。然後,增量級别1備份将提取自上一個級别1備份以來更改的所有塊,如果沒有介于其間的級别1備份,則提取自上一個級别0備份以來更改

的所有塊。累積備份将提取自上一個級别0備份以來更改的所有塊,不考慮其間是否存在任何級别1備份。

執行級别0備份的rman指令如下:

RMAN> backup as backupset incremental level 0 database;

該指令依賴于已經配置的預設設定:啟動通道,放在每個備份集的檔案數量以及配置集的寫入位置。備份集将包含所有使用過的塊。

如下:執行級别1備份:

RMAN> backup as backupset incremental level 1 database;

如下:提取自上一個級别1備份以來更改的所有快,執行累積增量備份:

RMAN> backup as backupset incremental level 1 cumulative database;

(注:如果沒有運作級别0備份,那麼第一次級别1差異備份或累積備份将實際執行級别0備份)

當然,我們也可以運作級别大于1備份,不過,那是沒有效果的。

   增量備份總是小于完整備份的,但是節省的時間并不如想象的那麼多,這是因為增量備份的預設行為是掃描備份的整個資料檔案來确定哪些塊需要提取。這樣做的優點:允許rman檢查塊的損壞。

但在很多情況下,我們都希望增量備份可以快些。這可以通過啟用塊變更跟蹤來實作。

     塊變更跟蹤依賴于啟動一個額外的背景程序。CTWR,該程序在名為“變更跟蹤檔案”中記錄每個已更改的塊的位址。

如果啟用了塊變更跟蹤,RMAN将在執行增量備份時讀取變更跟蹤檔案來确定哪些塊需要備份。這比掃描整個資料檔案要塊的多。

    變更跟蹤檔案在DBA指定的位置建立,預設是db_create_file_dest目錄。初始大小是10mb,并以10m的增量增長,除非資料庫是萬兆級的。否則100mb就足夠了。變更跟蹤檔案時位圖格式,

每位包含32個資料庫塊。啟動塊變更跟蹤會有一個最低的性能開銷。但是這不重要。要啟用塊變更跟蹤并制定跟蹤檔案的名稱和位置,可使用下列指令:

alter database enable block change tracking using file

'/u01/app/oracle/oradata/orcl/change_tracking.dbf';

監視塊變更跟蹤的有效性,可查詢v$backup_datafile視圖。該視圖在每次将資料檔案備份到備份集時進行填充。

如下:

SQL> select file#,datafile_blocks from v$backup_datafile

  2  where used_change_tracking='YES' and incremental_level>0;

繼續閱讀