關於備份和恢復的10個最佳實踐

flywiththewind發表於2014-08-26

和大家分享下有關於備份和恢復的10個最佳的實踐。

- 在 Archivelog 模式下執行
- 多路映象控制檔案
- 定期執行備份
- 週期性執行全庫恢復測試

1.開啟塊檢查。
這樣做的目標是儘早發現資料庫中的壞塊。這隻會佔用很少的效能開銷,但卻可以讓 Oracle 儘早檢測出由底層磁碟、儲存系統、或 I/O 系統問題導致的壞塊。

SQL> alter system set db_block_checking = true scope=both;

2.使用 RMAN 增量備份時開啟塊更改跟蹤(Block Change Tracking)功能(10g 及更高版本)。
更改跟蹤檔案包含了可以使  RMAN 增量備份程式避免讀取自上次備份以來未修改的資料所需要的資訊。如果不使用塊更改跟蹤功能,則必須讀取所有塊來確定自上次備份以來是否對其進行了修改。
SQL> alter database enable block change tracking using file '/u01/oradata/ora1/change_tracking.f';

3.映象 重做日誌組和成員,並將歸檔日誌存放在多個目標位置。

透過在多個位置存放多個副本,當某個歸檔日誌損壞或丟失時,其他日誌仍然存在並可以使用。
如果某個線上日誌被刪除或損壞,在需要時還可以使用其他成員進行恢復。
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. 使用 RMAN 備份資料庫時使用 CHECK LOGICAL選項。
這可以使 RMAN 對資料塊除了進行常規的校驗和驗證之外,還檢查塊內的邏輯損壞。這是確保您獲得完好備份的最佳方法。
RMAN> backup check logical database plus archivelog delete input;

5. 測試備份。
這將執行除實際回覆(restore)資料庫之外的所有操作。要確定在出現問題(此時備份非常重要)之前備份是否完好以及可用,這是最好的辦法。
如果使用 RMAN,可以使用以下命令執行此操作:
RMAN> restore validate database;


6. 使用 RMAN 時,將每個資料檔案存放在單獨的備份片(backup piece)中。
執行部分恢復時,RMAN 必須讀取完整的備份片以獲取需要的資料檔案/歸檔日誌。因此,備份片越小,恢復完成的速度越快。這尤其適用於對大型資料庫進行的磁帶備份或僅對單個/少數幾個檔案進行的恢復。
然而,如果 filesperset 的值很小,也會導致建立更多的備份片,因而會降低備份效能並增加維護操作時間。因此必須根據所需的恢復時間要求對這些因素加以權衡。

RMAN> backup database filesperset 1 plus archivelog delete input;


7. 維護 RMAN 目錄(catalog)/控制檔案
認真選擇保留策略(retention policy)。確保它可以滿足磁帶保留策略以及備份恢復策略的要求。如果未使用目錄,確保 CONTROL_FILE_RECORD_KEEP_TIME 引數與保留策略匹配。
SQL> alter system set control_file_record_keep_time=21 scope=both;

這會將備份記錄在控制檔案中保留 21 天。

定期執行以下目錄維護命令。
原因:Delete obsolete 將刪除保留策略以外的備份。
如果過期的備份未刪除,則目錄將不斷增長,直至出現效能問題。
RMAN> delete obsolete;
原因:crosschecking 將檢查目錄/控制檔案是否與物理備份匹配。
如果某個備份丟失,此命令會將該備份片 設為“EXPIRED”,在開始恢復時,將不使用這個備份,而使用更早的備份。要刪除目錄/控制檔案中已過期的備份,請使用 delete expired 命令。
RMAN> crosscheck backup;
RMAN> delete expired backup;


8. 為控制檔案丟失做準備。

這將確保您始終能夠擁有最新的控制檔案,控制檔案備份在當前備份結束時執行,而不是在備份期間。

RMAN> configure controlfile autobackup on;

保留備份日誌
原因:備份日誌包含了磁帶存取的引數、控制檔案備份的位置,如果所有檔案都丟失了,則可以利用該日誌。

9. 測試恢復
原因:在需要執行恢復的時候,您可以不實際執行恢復就知道恢復流程是如何操作的,並可避免再次回覆資料檔案。

SQL> recover database test;


10. 使用RMAN 備份時,在備份歸檔日誌時不要指定“delete all input”
原因:“delete all input”在備份一個歸檔目錄下的歸檔日誌後,會刪除該歸檔日誌在不同歸檔目錄下的所有副本,而“delete input”在備份一個歸檔目錄下的歸檔日誌後,僅刪除該目錄下的歸檔日誌,下一次備份將備份歸檔目錄 2 下的日誌以及歸檔目錄 1 的新日誌,然後刪除所有備份過的日誌。這意味著您將保留自最後一次備份以來在歸檔目錄2 下可用的歸檔日誌(包括曾備份的日誌)以及上次備份之前備份的兩份副本。

 




2014.08.25 12:13
share you knowledge with the world.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26224914/viewspace-1257807/,如需轉載,請註明出處,否則將追究法律責任。

相關文章