RMAN備份恢復的十個最佳做法


rman 如何把日誌 輸出到日誌文件而且也輸出到屏幕呢?

在linux下

% rman target / nocatalog | tee /uo1/backup/rman.log

 

如果是windows下呢

大家可以去下一個wtee 的命令,拷貝到system32下,執行如下

C:\Users\nowhill>rman target backup/backup catalog=rcat/rcat |wtee d:\rman.log


下面介紹10大數據庫備份和恢復的最佳做法。

  1. 打開塊檢查(block checking)
 
  這樣做的目的是爲了及早的發現數據庫中的壞塊。會有些性能開銷,但是可以發現由於底層磁盤、存儲系統或I/O系統的問題導致的壞塊。
 
  SQL> alter system set db_block_checking = true scope=both;
 
  2. 用rman備份時打開塊跟蹤(10g以上)
 
  塊跟蹤文件包含用於增量備份的位圖。每一個位表示一個extent,因此僅僅那些被修改的extent纔會被讀取並備份。如果沒打開塊跟蹤,那麼所有的塊必須都被讀取,以確定是否已經上次備份後被修改過。
 
  SQL> alter database enable block change tracking using file '/u01/oradata/ora1/change_tracking.f';
 
  3. 鏡像日誌組成員,並且有1個以上的歸檔位置如果一個在線日誌成員被刪除或損壞,那麼另一個成員可以用於恢復。如果歸檔日誌文件損壞或丟失,那麼其他歸檔位置的副本仍然可以使用。
 
  SQL> alter system set log_archive_dest_2='location=/new/location/archive2' scope=both;
      SQL> alter database add logfile member '/new/location/redo21.log' to group 1;
 
  4. 備份時使用 check logical 選項這會讓rman檢查塊中的邏輯損壞以及頭尾校驗,這是獲得良好備份的最好方式。
 
  RMAN> backup check logical database plus archivelog delete input;
 
  5. 測試你的備份做任何操作都不如實際恢復一次數據庫。這是最好的確定你的備份在關鍵時刻是否良好可用的最佳方法。
 
  RMAN> restore validate database;
 
  6. 每個數據文件在一個單獨的備份片中做部分恢復時rman必須讀取整個備份片和必須的歸檔日誌。備份片越小恢復越快。這對大型數據庫的磁帶備份或僅恢復單個(或幾個)文件時特別重要。
 
  RMAN> backup database filesperset 1 plus archivelog delete input;
 
  7. 維護 rman 的恢復目錄和控制文件仔細選擇你的保留政策。確保它涵蓋了你的磁帶系統保留策略以及備份恢復策略的需求。如果沒使用恢復目錄,確保參數control_file_record_keep_time匹配你的保留策略。
 
  SQL> alter system set control_file_record_keep_time=21;備份記錄將保留21天。
 
  執行常規的恢復目錄維護刪除過期的內容將移走超過保留策略的備份,如果過期備份沒被刪除,恢復目錄會增長直至性能出現問題。
 
  RMAN> delete obsolete;校驗恢復目錄或控制文件中內容與物理的備份匹配。
 
  如果備份片丟失,將被置爲'EXPIRED' 狀態,恢復時它將沒有資格,更早的備份將被使用。刪除過期備份需要使用以下命令。
 
  RMAN> crosscheck backup;
      RMAN> delete expired backup;
 
  8. 預防控制文件丟失這將確保您始終具備最新controlfile的可用。
 
  RMAN> configure controlfile autobackup on;保留備份日誌。
 
  備份日誌包含您的磁帶訪問的參數,控制文件備份的位置,如果數據庫完全丟失時這些信息會很有用。
 
  9. 測試你的恢復在恢復場合,會讓你知道恢復將怎樣執行。並且能避免再次恢復原數據文件。
 
  SQL> recover database test;
      SQL> RECOVER TABLESPACE sales TEST;
 
  10. 在備份歸檔時不要使用delete all input DELETE INPUT 將從第一個歸檔位置刪除日誌。它也將刪除從先前備份以來的第二個歸檔位置的日誌。
 
  備份並刪除指定位置的歸檔backup archivelog until time 'sysdate -7' like '/u04/oracle/admin/TEST/arch/%' deleteinput;
如果歸檔文件備份到多個目標位置,而且不同位置保留策略不同,可以如下操作:
run {
 backup archivelog all;
 delete archivelog until time 'sysdate -1' like '/am3/oradata/arch/%';
 delete archivelog until time 'sysdate -5' like '/am3/oradata/arch1/AM3P2/%';
}
 rman備份和刪除歸檔文件按數字順序從_dest_1到_dest_10執行。
如果存在閃回區,rman總是首先從閃回區進行備份和刪除。
 
  在恢復過程中RMAN將檢查所有的歸檔目的地,以確保需要的歸檔日誌已經不存在。如果歸檔日誌已經存在RMAN的目的地之一,將無法恢復該文件。
 
  恢復歸檔日誌到asm中的閃回區
RMAN> run {
allocate channel c1 type 'sbt_tape';
set archivelog destination to '+SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_13';
restore archivelog from time "to_date('13/08/2010:00:00:00','dd/mm/yyyy:hh24:mi:ss')" until time "to_date('14/08/2010:00:00:00','dd/mm/yyyy:hh24:mi:ss')";
}
+SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_13 ASMCMD> ls -ltr Type Redund Striped Time Sys Name N 1_94528_708660567.dbf => +SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_16/thread_1_seq_94528.5341.727224533 N 1_94529_708660567.dbf =>
+SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_16/thread_1_seq_94529.3425.727224661 N 1_94530_708660567.dbf =>
+SHARED_FRA_DG01/P132/ARCHIVELOG/2010_08_16/thread_1_seq_94530.5644.727224779

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章