Oracle數據庫備份和恢復的10個最佳做法

2011-09-16 12:40:42來源:作者:

  1. 打開塊檢查(block checking)

  1. 打開塊檢查(block checking)

  這樣做的目的是為了及早的發(fā)現數據庫中的壞塊。會有些性能開銷,但是可以發(fā)現由于底層磁盤、存儲系統或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天。

  執(zhí)行常規(guī)的恢復目錄維護刪除過期的內容將移走超過保留策略的備份,如果過期備份沒被刪除,恢復目錄會增長直至性能出現問題。

  RMAN> delete obsolete;校驗恢復目錄或控制文件中內容與物理的備份匹配。

  如果備份片丟失,將被置為'EXPIRED' 狀態(tài),恢復時它將沒有資格,更早的備份將被使用。刪除過期備份需要使用以下命令。

  RMAN> crosscheck backup;RMAN> delete expired backup;

  8. 預防控制文件丟失這將確保您始終具備最新controlfile的可用。

  RMAN> configure controlfile autobackup on;保留備份日志。

  備份日志包含您的磁帶訪問的參數,控制文件備份的位置,如果數據庫完全丟失時這些信息會很有用。

  9. 測試你的恢復在恢復場合,會讓你知道恢復將怎樣執(zhí)行。并且能避免再次恢復原數據文件。

  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執(zhí)行。如果存在閃回區(qū),rman總是首先從閃回區(qū)進行備份和刪除。

  在恢復過程中RMAN將檢查所有的歸檔目的地,以確保需要的歸檔日志已經不存在。如果歸檔日志已經存在RMAN的目的地之一,將無法恢復該文件。

  恢復歸檔日志到asm中的閃回區(qū)

  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

  原文:Top 10 Backup and Recovery best practices

關鍵詞:Oracle數據庫

贊助商鏈接: