RMAN 學習過程之四,備份演練進階篇

       進階篇則主要是rman的一些功能擴展和增長功能,利用前篇你已經徹底能夠完成數據庫的備份,而經過本篇你能夠更好更方便的完成數據庫的備份。算法

1、創建增量備份數據庫

  若是數據庫運行於不歸檔模式下,那麼你只能在數據庫乾淨關閉的狀況下(以NORMAL、IMMEDIATE、TRANSACTIONAL方式關閉)才能進行一致性的增量備份,若是數據庫運行於歸檔模式下,那便可以在數據庫關閉狀態進行,也能夠在數據庫打開狀態進行備份。再次說明了打開歸檔模式的優點,歸檔日誌也就是多佔些磁盤空間,好處不是一些是不少,但是也至關於又給數據庫加了層保險啊。安全

  創建增量備份也是至關簡單,實質就是一個參數INCREMENTAL LEVEL=n,在執行BACKUP命令時加上便可,例如,創建一個增量級別0的全庫備份:bash

RMAN> BACKUP INCREMENTAL LEVEL=0 DATABASE;

  再例如,創建一個增量級別1的users01.dbf數據文件備份oracle

RMAN> BACKUP INCREMENTAL LEVEL=1 TABLESPACE SYSTEM DATAFILE ¨ F:\ORAHOME1\ORADATA\JSSWEB\ USERS01 . DBF¨;

  注:Rman默認建立的增量備份是Differential方式,若是要創建Cumulative方式的增量備份,在執行BACKUP命令時顯式指定便可,例如:優化

RMAN> BACKUP INCREMENTAL LEVEL=2 CUMULATIVE DATABASE;

  關於增量備份概念性解釋,好比Differential與Cumulative兩種方式間的區別請閱讀後續內容。操作系統

2、創建鏡像複製日誌

  首先你們須要明瞭這個概念,rman中的鏡像複製實質與經過操做系統copy命令備份相同,甚至連命令的格式都類似,只不過直接應用操做系統的copy命令複製數據文件時,只是文件拷貝,而rman的copy則可以在複製的同時,驗證數據的有效性。code

  我的認爲rman中的鏡像複製應用有限,並且也體現不出rman的優點,因此俺也只是大體瞭解了概念,沒有進行過實際操做,感興趣的朋友能夠本身作作試驗,這裏就很少作介紹了。對象

3、創建冗餘備份

  RMAN 提供了一種更謹慎的備份策略: Duplexed 方式備份 ,其實質便是在生成備份集的同時,向指定位置生成指定份數(最大不超過4份)的備份集複製,以免在災難性事故時數據庫損壞和備份丟失的狀況下致使徹底崩潰,提升備份可用性。固然,這是人類美好的願意,對於那些沒有異機異地備份條件的,假如機房發生火災、地震之類大災難,就算dba把備份文件複製了100份也照樣玩完,上述是個假設,萬勿對號入座,火災、地震也不是哪都會發生地,你們好好活着,別懼怕。

  RMAN 中提供了三種方式實現Duplexed方式備份:

  1 、在RMAN中執行BACKUP命令時顯式指定COPIES參數。例如:

RMAN>  BACKUP COPIES 3 DATABASE;

  上述命令將會在全庫備份的同時,自動生成當前備份集的2份拷貝到默認備份目錄。

  2 、在RUN{}命令塊中利用SET BACKUP COPIES命令爲該命令塊中全部的BACKUP命令設置Duplexed方式,例如:

RMAN>  RUN{

2>SET BACKUP COPIES 2;

3>BACKUP DEVICE TYPE DISK FORMAT ¨D:\BACKUP1\%U¨,¨D:\BACKUP2\%U¨ 

4>TABLESPACE USERS,SALES;

5>}

  上述命令將生成兩份備份集,分別存儲到d:\backup1和d:\backup2目錄。

3 、經過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備份時,即會自動生成2份數據文件的備份集。

4、設置RMAN備份的保存策略

  若是你的數據庫很是大,而且備份執行也比較頻繁,有必要對你這些備份文件的保存制訂合理的策略。該挪的挪,該搬的搬,該刪的刪,合理釋放,最大化利用有限的磁盤空間。

  在經過RMAN建立的備份片斷中,因爲備份文件也是由rman建立和維護,因此手工刪除並不明智,而且RMAN也提供了備份保留策略,合理制訂,由RMAN自動刪除過舊的備份文件更加安全,也更加方便。

  RMAN 中提供了兩種備份保留策略: 基於時間 和 基於冗餘數量 

  爲RMAN設置了備份保留策略以後,RMAN會自動判斷哪些備份集或鏡像複製文件沒必要再保留。這些備份文件將會被標記爲「廢棄(Obsolete)」,能夠經過REPORT OBSOLETE命令查看當前處於廢棄狀態的備份文件,或者經過DELETE OBSOLETE命令刪除這些廢棄的備份。例如:

RMAN>  report obsolete;
正在使用目標數據庫控制文件替代恢復目錄

RMAN  保留策略將應用於該命令

將 RMAN 保留策略設置爲 3 天的恢復窗口

已廢棄的備份和副本報表

類型                 關鍵字 完成時間           文件名/句柄

-------------------- ------ ------------------ --------------------

備份集               21     04-7月 -07

備份段       21     04-7月 -07         D:\BACKUP\C-3391142503-20070704-01


RMAN> delete obsolete;

RMAN  保留策略將應用於該命令

將 RMAN 保留策略設置爲 3 天的恢復窗口

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=14 devtype=DISK

刪除如下已廢棄的備份和副本:

類型                 關鍵字 完成時間           文件名/句柄

-------------------- ------ ------------------ --------------------

備份集               21     04-7月 -07

備份段       21     04-7月 -07         D:\BACKUP\C-3391142503-20070704-01

是否肯定要刪除以上對象 (輸入 YES 或 NO)? y

已刪除備份段

備份段 handle=D:\BACKUP\C-3391142503-20070704-01 recid=21 stamp=627061645

1  對象已刪除

 在執行刪除命令時有兩點須要瞭解:

  • 若是被判斷爲廢棄的備份是一個單獨數據文件的鏡像複製,那麼在執行DELETE命令時將直接刪除這個鏡像複製文件。
  • 若是被判斷爲廢棄的備份是一個備份集中的一部分,則必須等到整個備份集中全部其它文件都被廢棄以後,才能刪除這個備份集。

     提示:

  • 注意這裏oracle對於obsolete和expired的定義與咱們常規理解是相反的。Oracle的定義是這樣的,對於手工刪除的文件,物理上已經不存在了的,在執行了crosscheck以後,oracle將其標記爲expired,而對於那些超出了備份保留策略的備份集備份片,則標記爲obsolete。

1 、基於時間的備份保留策略。

說的簡單些,就是你但願數據庫最先能恢復到幾天前。好比將恢復時間段設置爲7,那麼RMAN所保留的備份便是能夠保證你將數據庫恢復到一週內任什麼時候刻下那些文件。

設置基於時間的備份保留策略能夠經過CONFIGURE命令,例如:

RMAN>  CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;

注:n=大於0的正整數

執行該命令後,RMAN將始終保留那些將數據庫恢復到n天前的狀態時須要用到的備份,好比,恢復時間段被設置爲7天,那麼各個數據文件的備份必須知足以下條件:

SYSDATE-(SELECT CHECKPOINT_TIME FROM V$DATAFILE)>=7

任何不知足上述條件的備份都將被RMAN廢棄並可經過DELETE OBSOLETE命令刪除。Ok,基本知識講完了,下面考驗你的時刻到了, 提問 :若是知足條件的備份你也想刪,咋整?啥?DEL?D你個大頭鬼,再回去看看第二章。

2 、基於冗餘數量的備份保留策略

基於冗餘數量實質即某個數據文件以各類形式(包括備份集和鏡像複製)存在的備份的數量。若是某個數據文件的冗餘備份數量超出了指定數量,RMAN將廢棄最舊的備份。

一樣,基於數量的備份保留策略也是經過CONFIGURE命令設置,例如:

RMAN>  CONFIGURE RETENTION POLICY TO  REDUNDANCY n ;

同上:n=大於0的正整數

你也能夠經過下列命令設置成不採用任何備份保留策略:

RMAN>  CONFIGURE RETENTION POLICY TO NONE;

5、備份優化

  RMAN 中的備份優化(Backup Optimization)是指在備份過程當中,若是知足特定條件,RMAN將自動跳過某些文件而不將它們包含在備份集中以節省時間和空間。說的直白些就是能不備的它就不備了,不像原來甭管文件有沒有備份過通通再備一遍。由上可知,優化就是偷懶嘛,en,我也要優化的幹活:)

  話說回來,這個懶也不是何時都能偷的,ooo,說錯了,是優化。一般必須知足以下幾個條件的狀況下,纔可以啓用備份優化的功能:

  • CONFIGURE BACKUP OPTIMIZATION 參數置爲on;
  • 執行的BACKUP DATABASE或BACKUP ARCHIVELOG命令中帶有ALL或LIKE參數。
  • 分配的通道僅使用了一種設備類型,也就是沒有同時分配使用sbt與disk的多個通道。(我知道我知道,通道還沒講,你也等着看外傳吧。不過在這兒能夠簡單描述一下個人理解,In my opinion,sbt與disk就像一條是公路,一條是海路,而通道則至關於你選擇了走公路以後,還得選擇是走北三環,仍是走北五環,仍是兩條一塊走)

  打開備份優化設置經過以下命令:

RMAN>  CONFIGURE BACKUP OPTIMIZATION ON;

  那麼在進行備份優化時,RMAN是如何判斷要備份的文件是否須要被優化呢,這個算法就至關複雜了,並且可能影響優化算法的因素也很是多,假如某庫在上午9點被執行過一次全庫備份,等下午3點再次執行全庫備份時,備份的文件沒有變更並且也已經被備份過期,纔會跳過這部分文件。因此理論上備份優化僅對於只讀表空間或offline表空間起做用。固然對於已經備份過的archivelog文件,它也會跳過。

相關文章
相關標籤/搜索