Oracle RMAN備份以及壓縮原理分析

DBhanG發表於2020-06-11

RMAN備份原理:

RMAN 客戶端連線到目標資料庫後,執行備份命令時, RMAN 會開啟相應數量的通道進行工作,每一個通道在目標資料庫都有一個相對應的服務程式, RMAN 會首先呼叫 DBMS_RCVMAN 軟體包進而讀取控制檔案,確定資料檔案的存放位置等一些資訊,獲取該資訊後, RMAN 將呼叫 DBMS_BACKUP_RESTORE 軟體包對資料檔案進行讀取備份。讀取過程就是 RMAN 基於備份的演算法規則來編譯 出需要 備份的檔案列表。RMAN 執行備份操作時,會請求 Oracle 的共享記憶體段來建立 自己備份緩衝區,與通道相對應的服務程式會去掃描資料檔案中的資料塊,並且將需要備份的資料塊讀入到輸入緩衝區中,當輸入緩衝區被填滿時,會被轉移到輸出緩衝區中,在轉移的過程中,也會對資料塊進行檢測,檢測是否有損壞的資料塊,當輸出緩衝區被填滿時,就會形成備份片,與通道相對應的服務程式最終會將其寫入到指定備份的位置。


RMAN壓縮方式:

RMAN的壓縮分為三種,

第一種:

10.1版本 RMAN的壓縮方式為空值壓縮(null compression),當掃描資料塊進行備份時,可以進行空值壓縮,對塊頭為空的塊,在從輸入緩衝區轉移到輸出緩衝區時將其過濾掉,這種空值壓縮方式呢,不會去備份已分配但未被格式化的塊。

第二種:

在10.2版本RMAN的壓縮方式又出現一種未使用塊壓縮(unused block compression),這種壓縮方式是過濾掉不包含資料的資料塊,就是該資料塊已經被使用過(被格式化過),但是不包含資料。

只有在滿足以下條件的時候,Unused Block Compression會起作用:

    1.初始化引數COMPATIBLE=10.2或者更新的版本

    2.資料檔案是本地管理模式

    3.完全備份或0級備份

    4. 備份的指定位置在磁碟上

第三種:

BINARY COMPRESSION是在使用關鍵子"AS COMPRESSED" 時候才會起作用的二進位制壓縮方式。 rman 能夠使用二進位制壓縮演算法進行備份,這個二進位制的壓縮演算法能夠大大的減少備份集所需要的磁碟空間,通常情況下壓縮比會達到2-4倍

使用這種壓縮方式的命令如下:

rman> backup as compressed backupset database;

1. 啟用壓縮將消耗更多的CPU資源。

2. 啟用壓縮備份耗時略有增加。

3.節省空間。

4.當使用壓縮後的備份進行恢復時,恢復時間會變長,可以理解為還需要一個膨脹的過程。

就相當於使用備份集的恢復時間比使用映象副本的恢復時間長。

總結RMAN過濾塊的過程:

與通道相對應的服務程式會掃高水位線以下的所有資料塊 然後在輸入緩衝區到輸出緩衝區的過程中進行過濾,

過濾的塊為已分配但未被格式化的塊以及曾經使用過,但是現在為空的塊(塊中內容被delete掉)。


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

相關文章