關於備份和恢復的10個最佳實踐
和大家分享下有關於備份和恢復的10個最佳的實踐。
- 在 Archivelog 模式下執行
- 多路映象控制檔案
- 定期執行備份
- 週期性執行全庫恢復測試
1.開啟塊檢查。
這樣做的目標是儘早發現資料庫中的壞塊。這隻會佔用很少的效能開銷,但卻可以讓 Oracle 儘早檢測出由底層磁碟、儲存系統、或 I/O 系統問題導致的壞塊。
SQL> alter system set db_block_checking = true scope=both;
2.使用 RMAN 增量備份時開啟塊更改跟蹤(Block Change Tracking)功能(10g 及更高版本)。
更改跟蹤檔案包含了可以使 RMAN 增量備份程式避免讀取自上次備份以來未修改的資料所需要的資訊。如果不使用塊更改跟蹤功能,則必須讀取所有塊來確定自上次備份以來是否對其進行了修改。
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;
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 命令。
原因:crosschecking 將檢查目錄/控制檔案是否與物理備份匹配。
如果某個備份丟失,此命令會將該備份片 設為“EXPIRED”,在開始恢復時,將不使用這個備份,而使用更早的備份。要刪除目錄/控制檔案中已過期的備份,請使用 delete expired 命令。
RMAN> crosscheck backup;
RMAN> delete expired 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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於備份和恢復的10 個最佳實踐 (Doc ID 1549189.1)
- 關於備份和恢復的10 個最佳實踐 (文件 ID 1549189.1)
- Kubernetes的備份和恢復最佳實踐是什麼
- 備份恢復原理的實踐
- MSSQL-最佳實踐-資料庫恢復模式與備份的關係SQL資料庫模式
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- OceanBase物理備份恢復實踐
- 【轉】 RMAN備份與恢復實踐
- oracle實驗記錄 (恢復-關於熱備份)Oracle
- 備份和恢復
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- Backup And Recovery User's Guide-備份和恢復概覽-備份和恢復介紹-備份和恢復的目的GUIIDE
- Controlfile備份恢復關於Standby的理解
- windwos server 路由備份和恢復 路由表備份和恢復Server路由
- k8s備份恢復實踐--veleroK8S
- redis 備份和恢復Redis
- 備份和恢復redisRedis
- Mysql備份和恢復MySql
- Oracle 備份和恢復Oracle
- java中實現MYSQL的備份和恢復JavaMySql
- redis備份和恢復的方式Redis
- 關於SQL Server資料庫備份和恢復特性介紹SQLServer資料庫
- 【備份恢復】無備份線上恢復非關鍵資料檔案
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- Oracle 最佳化,備份和恢復技術培訓Oracle
- SqlServer備份和恢復(二)SQLServer
- SqlServer 備份和恢復(一)SQLServer
- 【MySQL】MySQL備份和恢復MySql
- MySQL 備份和恢復 一MySql
- oracle冷備份、恢復和異機恢復Oracle
- 備份與恢復--利用備份的控制檔案恢復
- innobackupex備份恢復實戰
- MySQL備份與恢復——基於OUTFILE /LOAD DATA 邏輯備份恢復MySql
- 【備份恢復】從備份恢復資料庫資料庫
- 【管理篇備份恢復】備份恢復基礎
- Oracle備份恢復之熱備份恢復及異機恢復Oracle
- 控制檔案的備份和恢復
- 基於歸檔的冷備份恢復