rman備份集的保留策略

與刃爭鋒發表於2013-12-26
rman備份集的保留策略
基於時間和基於冗餘數量的備份保留策略

基於時間的備份保留策略:
你希望資料庫最早能恢復到幾天前,比如7,那麼保留的備份檔案就能保證將資料庫恢復到一週內任何一個時刻.設定命令:
rman>CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF N DAYS;(n為大於0的正整數)
執行後,各個備份必須滿足下列條件:
sysdate - backup checkpoint time >=7
任何不滿足上述條件的備份都被rman廢棄並可以通過delete obsolete命令刪除.

初始化引數control_file_record_keep_time指定在控制檔案中的最少保留時間,預設7,超過後由於空間不足重用記錄,就會被自動覆蓋,此時忽視你在rman中設定的時間保留策略.當前控制檔案中分配的空間中,可儲存記錄和已儲存記錄數,可通過查詢檢視v$controlfile_record_section獲取.
sql>select * from v$controlfile_record_section

基於冗餘數量的備份保留策略
是說某個資料檔案以各種形式(包括備份集和映象複製)存在的備份的數量,如果某個資料檔案的冗餘備份數量超出了指定數量,
rman將廢棄醉酒的備份.如下命令設定:
rman>CONFIGURE RETENTION POLICY TO REDUNDANCY n;(n為大於0的正整數)

也可不使用任何備份保留策略
rman>CONFIGURE RETENTION POLICY TO NONE;


根據備份策略維護備份集
設定保留策略後,rman會自動判斷那些備份集或映象複製檔案不必再保留,這些備份檔案會被標記為"廢棄obsolete",可以通過
report obsolete命令檢視處於廢棄狀態的備份檔案,也可通過delete obsolete刪除這些廢棄的備份.
rman>report obsolete;
rman>delete obsolete;


執行刪除命令時有兩點需要了解:
    如果標為廢棄的備份時一個單獨資料檔案的映象複製,delete時會直接刪除此檔案.
    如果被判斷為廢棄的備份時一個備份集的一部分,則必須等到整個備份集所有檔案都廢棄後,才能刪除這個備份集.

對於增量備份,不管是基於時間還是基於冗餘數量,rman都是檢測0級備份是否滿足需求.


注意一下rman對於手工刪除的檔案,屋裡不存在的crosscheck後標為expired,超出策略的標記為obsolete





通道

備份裝置兩種:SBT磁帶和DISK磁碟(帶盤的就是disk)

手工分配通道有個專用命令:allocate channel——只能在run塊中出現.在執行backup,restore扥更需要進行磁碟I/O操作的
命令時,可將它們與allocate channel放在一個run塊中,例如:
rman>run {
    allocate channel c1 device type disk format 'd:\oracle\bobbackup\cn_%U';
    backup tablespace users;
                }

rman中執行的每一條backup,recover都至少使用一個通道,通道數決定了這些操作執行的並行度,每條allocate channel命令對應
一個通道,如果需要多個通道的話,執行多條allocate channel.

自動分配通道
如果沒手動指定allocate channel分配通道,那麼rman會在backup等操作I/O時使用預定義配置中的設定來自動分配通道.
下列預定義配置均可以分配通道:
    CONFIGURE DEVICE TYPE sbt/disk PARALLELISM n;
    CONFIGURE DEFAULT DEVICE TYPE To sbt/disk;
    CONFIGURE CHANNEL DEVICE TYPE sbt/disk FORMAT...;
    CONFIGURE CHANNEL n DEVICE TYPE sbt/disk FORMAT...;
    
是否啟用複合備份
一種更謹慎的備份策略:duplexed方式備份,實質是在生成備份集同事,向指定位置生成指定份數(最大4)的備份複製檔案.

rman提供了三種方式實現duplexed備份:
    1.執行backup時指定copies引數,比如
    rman>backup copies 3 database;
    全庫備份時自動生成當前備份集的2份備份到預設備份目錄.
    2.利用set backup copies命令指定複合備份.在run塊中利用set backup copies為所有的backup設定duplexed方式,例如:
    rman>run {
        set backup copies 2;
        backup device type disk format 'D:\oracle\bobbackup\%U','D:\oracle\bobbackup2\%U'
        tablespace users,sales;
                    }
        此命令生成兩份備份集分別放到兩個路徑下.
    3.利用configure指定複合備份,通過configure...backup copies設定預定義的備份duplexed方式.
    configure...backup copies可以為指定的裝置型別設定預設的備份複製數量.這個僅適用於資料檔案和歸檔日誌,而且只有在使用
    自動分配的通道時才能夠使用configure...backup copies命令設定的配置.例如:
        rman>CONFIGURE DEFAULT DEVICE TYPE TO DISK;
        rman>CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE disk TO 2;
        rman>CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE disk TO 2;
        上述命令將disk裝置上的資料檔案與歸檔檔案的複製數量設定為2,當再執行backup database命令時,如果沒有通過allocate channel fenpei通道,那麼建立的
        備份就會自動生成2份備份集.
        
是否設定備份集屬性
對於備份集(或片段),rman直接提供了方式支援定義備份片段的檔名,備份片段大小及備份集標籤.

預設下執行backup時rman會自動為每個備份片段生成一個唯一名,因為rman預設通道分配時制定了一個引數值為%F的format引數.例如分配通道時指定備份片段命名格式:
rman>run {
    allocate channel c1 device type disk format 'd:\oracle\cn_%U';
    backup tablespace users;
                }
執行備份命令時指定備份片段命名格式:
rman>backup tablespace users format 'd:\oracle\cn_%U';

設定備份集標籤
備份時給備份集制定一個名稱,rman裡叫tag,實際上每個備份集都有tag標籤,並不是必須指定,預設規則為:
TAGyyyymmddThhmmss,TAG和T是固定字元,其它為執行備份操作時間.可自行指定:
rman>backup tablespace users tag tbs_usersbak;

設定備份片段/備份集大小
預設情況下,一種型別的檔案在備份集中都會存成一個備份片段,但需要控制檔案大小.
rman在分配通道時有一個引數maxpiecesize,專門用來指定備份片段大小的.看個例子:
rman>run {
    allocate channel c1 device type disk maxpiecesize=10m format 'd:\oracle\bobbackup\bak_%U';
    backup tablespace users;
                }
               
還能指定備份集大小,例子:
rman>backup database maxsetsize=100m;
此引數雞肋在於:任意資料檔案大於100m的話,都無法執行成功.






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

相關文章