1. 程式人生 > >RMAN 配置保留策略

RMAN 配置保留策略

      RMAN保留策略關乎資料的完整性,因此事關重大,由使用者定義的、基於使用者資料恢復所能承受的容忍度來設定。也就是說根據恢復的需要,使用者需要保留幾天的資料,或者說使用者需要備份的保留幾個副本,或者不需要設定保留策略。在生產環境中多數使用的是基於恢復視窗的保留策略,因此需要重點關注與理解其用法。最本文主要描述了RMAN下的三種保留策略方式。


1、什麼是備份保留策略
    也就是說備份可以保留多久,需要保留多久的問題,我們可以通過configure retention policy 來進行配置
    注意,保留策略是相對於恢復而言,也就是說根據恢復的需要來制定保留策略,比如需要恢復到3天以前,或是保留2個不同的副本
    Oracle支援三種保留策略,一個是基於恢復視窗的保留策略,一個是基於冗餘的保留策略。一個是無保留策略,三種保留策略互斥,不可同時使用
    當備份保留策略啟用後,已生成的備份滿足保留策略之後,會被標記為過時,也就是說RMAN認為恢復已經不再需要用到這些備份
    可以通過report obsolete來檢視當前資料庫的過時的備份。以及使用delete obsolete來刪除過時的備份
    對於過時的備份(備份集,映象副本等),在未使用FRA的情形下,RMAN僅僅是對其加以標註,而不會真正刪除這些過時的備份
    對於使用了

FRA(閃回區)的情形,RMAN會自動地刪除這些過時的備份以迴圈利用FRA空間。
    注意理解無效的備份或過時的備份,前者執行crosscheck之後,檔案沒有找到(被刪除),後者指檔案存在,但是根據保留策略恢復已不再需要用到
    保留策略的使用範圍
         完全備份、level 0、控制檔案備份
         對於資料檔案映象副本(copy方式),如果RMAN認為該副本不再需要,則可以被刪除
         對於資料檔案備份集,當在備份集內所有的資料檔案為過時時,可以被刪除
  

2、基於恢復視窗的保留策略
    該方式用於確保將資料庫恢復到特定的時間點。比如需要恢復一週以內的資料,使用恢復視窗RECOVERY WINDOW OF 7 DAYS
    那麼所有與恢復到最近7天的完全備份、增量備份、歸檔日誌,都應當被保留,而且有可能7天以前的備份也需要保留
    比如系統中完整地備份是8天以前的,即便當前產生了新的完整備份,上次的完整備份也應當被保留,而不是說只要過了7天這些備份就不再需要
    配置恢復視窗保留策略:
         CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
    對於上述配置,每一個數據檔案、備份應當滿足這個條件:SYSDATE - BACKUP CHECKPOINT TIME >= 7,在這之前的備份則是無效的。
    下面的恢復視窗分析示例圖來自Backup and Recovery User's Guide
    恢復視窗分析示例1:

        

         恢復視窗為7天,資料庫處於歸檔模式
         備份計劃是每兩週一次全備,分別是: January 1,January 15,January 29,February 12
         對於圖中的情形,當前的時間點Jan 23,那麼7天的恢復視窗則是Jan 16,要能夠確保資料可以恢復到Jan 16,
         那麼Jan 14的備份及archive log 500到log 850都應當被保留,Jan 1的備份是過時的

    恢復視窗分析示例2:    
        

         當前的時間位Jan 30,那麼7天的恢復視窗是Jan 23,確保Jan 23可恢復則應當自上一次完整備份到Jan 23的archive log可用。
         即Jan 14的完整備份必須被保留,log 500到log 1150都必須全部被保留
    

3、基於冗餘的保留策略
    基於冗餘的保留策略是依據你的備份數,而不是備份天數。該策略是預設的保留策略,被設定為1。
    如果將其設定為2,那麼Oralce則會為當前備份保留2個副本,其餘的、時間更早的副本會全部被標記為過時的備份。


4、無保留策略
    無保留策略也就是禁用保留策略,不使用任何保留策略。
    配置無保留策略: configure retention policy to none
    恢復到預設保留策略:configure retention policy clear  
  

5、相關演示

RMAN> show retention policy;

RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

RMAN> report obsolete;

RMAN retention policy will be applied to the command
RMAN retention policy is set to redundancy 1
Report of obsolete backups and copies
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Datafile Copy        1      2013/11/11 15:21:04 /u03/database/usbo/fr_area/USBO/datafile/o1_mf_users_9811c028_.dbf

--Author : Leshami
--Blog   : http://blog.csdn.net/leshami

RMAN> configure RETENTION POLICY TO recovery window of 2 days;

new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
new RMAN configuration parameters are successfully stored

RMAN> show retention policy;

RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;

RMAN> list copy; 

specification does not match any control file copy in the repository
List of Datafile Copies
=======================

Key     File S Completion Time     Ckp SCN    Ckp Time           
------- ---- - ------------------- ---------- -------------------
2       4    A 2013/11/11 15:21:16 3039347    2013/11/11 15:21:16
        Name: /u03/database/usbo/fr_area/USBO/datafile/o1_mf_users_9811cddk_.dbf
        Tag: TAG20131111T152116

1       4    A 2013/11/11 15:21:04 3039328    2013/11/11 15:21:04
        Name: /u03/database/usbo/fr_area/USBO/datafile/o1_mf_users_9811c028_.dbf
        Tag: TAG20131111T152103

RMAN> report obsolete;

RMAN retention policy will be applied to the command
RMAN retention policy is set to recovery window of 2 days
no obsolete backups found

RMAN> configure retention policy to none;

old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 2 DAYS;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO NONE;
new RMAN configuration parameters are successfully stored

RMAN> show retention policy;

RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO NONE;

RMAN> configure retention policy clear;

old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO NONE;
RMAN configuration parameters are successfully reset to default value

RMAN> show retention policy;

RMAN configuration parameters for database with db_unique_name USBO are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

Oracle 牛鵬社    Oracle DBsupport

更多參考