程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Rman備份的保留策略(retention policy),rmanretention

Rman備份的保留策略(retention policy),rmanretention

編輯:Oracle教程

Rman備份的保留策略(retention policy),rmanretention


什麼是備份的保留策略(retention policy)

  保留策略就是指某份備份是否要保留以及保留多久。可以使用configure retention policy命令來創建一個一致的、自動的備份保留策略。 當一個備份策略生效後,rman就認為數據文件、控制文件的備份是obsolete的,也就是說根據用戶配置,不再需要這些備份進行恢復。用戶可以使用report obsolete命令找出obsolete的文件並使用delete obsolete將其刪除。

  隨著備份次數的增加,老的備份文件會變得obsolete。rman可以標識出obsolete的文件,但是不會自動刪除它們。需要用戶手動執行delete obsolete將其刪除。

  如果數據庫配置了快速閃回區,數據庫會根據快速閃回區磁盤quota規則自動刪除閃回區內的文件。閃回區的quota規則跟rman備份策略規則是不同的,但是閃回區不會刪除沒有超過備份策略的備份文件。

 

obsolete和expired是兩個不同的概念

  備份是否obsolete,是由備份策略決定的,是指超過了備份策略的限制,在恢復的時候不再需要的文件;expired是指rman在執行crosscheck檢查的時候,找不到這些文件。一句話,obsolete是指"不再需要",expired是指"找不到"。

  

  保留策略是針對數據文件和控制文件的full備份或level 0備份(不管是datafile image copy, a proxy copy, or part of a backup set)。對於datafile copies和proxy copies,如果rman認為其不再被需要就可以刪除。對於備份集中的datafile備份,只有整個備份集都變成obsolete後才可以被刪除。

  備份策略除了對數據文件和控制文件的full和level 0備份有效外,還會影響歸檔日志和level 1增量備份。首先rman檢測出那些數據文件、控制文件備份是obsolete的,然後rman會將那些恢復時候不再需要的歸檔日志、level 1增量備份認為是obsolete的。

 

report obsolete和delete obsolete命令是如何起作用的:
主要分為兩步

(1)首先,對於full backup、datafile copy和level 0的增量備份,rman會根據retention policy識別出哪些是obsolete的。

(2)然後,對於歸檔日志和level 1的增量備份,如果其對應的full backup、datafile copy和level 0的增量備份已經是obsolete的,也會被認為是obsolete的,因為已經不再需要它們進行數據恢復。

NOTE:  A 'delete obsolete' does not check that the archivelog files have been backed up before it deletes them. 

 

保留備份策略的類型:(有兩種備份類型)

(1)redundancy(冗余):默認是冗余

rman> configure retention policy to redundancy x;

(2)recovery window(恢復窗口) 

rman> configure retention policy to recovery window of x days;

配置恢復窗口期的時候,時間應該不大於參數control_file_record_keep_time 的值。

 

取消備份策略:(永不將備份置為obsolete)

rman> configure retention policy to none;

 

如何讓備份不受備份策略影響:
用戶可能有長期保留數據備份的需求(超出rmand的保留策略設置)。這些備份信息應該被記錄在rman repository中,但是應該超出rman備份保留策略的限制,否則會被標識為obsolete的。
可以在備份時使用keep關鍵字、或者備份後使用change...keep來實現。
對於歸檔日志可以使用logs關鍵字,這樣就不會在超過保留策略後被標識為obsolete的
示例:

# creates a backup and exempts it from retention policy until last day of 2007 
rman> backup database keep until time "to_date('31-dec-2007', 'dd-mon-yyyy')" nologs; 

# specifies that backupset 2 is no longer exempt from the retention policy 
rman> change backupset 2 nokeep; 

# creates a backup that is indefinitely exempt from the retention policy 
rman> backup tablespace users keep forever nologs;

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved