使用 RMAN 備份數據庫
我們計劃使用 RMAN 備份數據庫,但由於我是數據庫管理的新手,所以我對此知之甚少。
不過我有一些疑問。
目前我們在 noarchivelog 模式下使用 Oracle 11g 數據庫。據我所知,在歸檔日誌模式下執行數據庫時,備份是在很短的時間間隔內進行的,我不喜歡這樣。我需要每天只進行一次備份,而無需關閉我的數據庫。那可能嗎?
哪個更好的選擇,數據庫以歸檔模式或非歸檔模式執行?另外,如果我要使用 noarchive 模式,我需要手動刪除備份還是自動刪除?
目前我們在 noarchivelog 模式下使用 Oracle 11g 數據庫。據我所知,在歸檔日誌模式下執行數據庫時,備份是在很短的時間間隔內進行的,我不喜歡這樣。我需要每天只進行一次備份,而無需關閉我的數據庫。那可能嗎。
首先,我想說的是,無需關閉數據庫。可以通過 RMAN 進行備份。
什麼是 RMAN?
Recovery Manager (RMAN) 是一個 Oracle 數據庫客戶端,可對您的數據庫執行備份和恢復任務,並自動管理您的備份策略。它極大地簡化了備份、還原和恢復數據庫文件。
RMAN 環境需要多少組件?
RMAN 環境由在備份數據方面發揮作用的實用程序和數據庫組成。RMAN 環境至少必須包含以下組件:
A target database
The RMAN client
A flash recovery area
A media manager
A recovery catalog
當您通過 RMAN 獲取數據庫而不關閉數據庫時,該過程稱為“熱備份”。
即使在使用者訪問數據庫時也可以進行熱備份,但是如果在備份過程中更改了數據,則可能會不一致。熱備份也會影響數據庫性能,因為它使用計算資源。熱備份伺服器通常從生產伺服器接收持續更新,並準備好在故障轉移事件關閉生產伺服器時接管。
在熱備份中,伺服器已打開電源,但不執行任何工作,或者不時打開以從正在備份的伺服器獲取更新。熱備份通常用於鏡像或複制。
當您通過 RMAN 關閉數據庫進行數據庫備份時,該過程稱為“冷備份”。
冷備份,也稱為離線備份,是數據庫處於離線狀態且無法更新的數據庫備份。這是最安全的備份方式,因為它避免了複製可能正在更新的數據的風險。但是,冷備份會導致停機,因為使用者在備份期間無法訪問數據庫。
冷備份可確保備份一致,但不能不用於任何需要連續 24/7 執行的系統。不應有任何使用者登錄,也不應進行任何活動以確保在備份期間不會以任何方式更改文件。如果您將數據備份到異地設施,則可以從數據副本執行冷備份。冷備份過程中數據文件不會發生變化,保證數據庫在恢復正常執行時處於一致狀態。
哪個更好的選擇,數據庫以歸檔模式或非歸檔模式執行?
準備使用
Oracle Suggested Backup Strategy
ARCHIVELOG模式。備份 ARCHIVELOG 數據庫
如果您在 ARCHIVELOG 模式下執行數據庫,那麼歸檔器會歸檔線上重做日誌文件組。因此,歸檔重做日誌與線上重做日誌和數據文件備份相結合,可以保護數據庫免受磁碟故障的影響,提供從磁碟故障到故障發生的那一刻(或者,到所需的非目前時間)的完全恢復。
在 ARCHIVELOG 模式下執行的數據庫的常見備份策略
- 創建備份份整個數據庫。這個初始的整個數據庫備份是備份的基礎,因為它提供了所有數據文件和相關數據庫的控製文件的備份。
注意:執行此初始整個數據庫備份時,請確保數據庫首先處於 ARCHIVELOG 模式。否則,備份控製文件將包含 NOARCHIVELOG 模式設置。 2. 在數據庫打開或關閉時對錶空間進行備份,以使數據庫備份保持最新。只要您有必要的歸檔日誌來恢復備份,就不必關閉數據庫來進行備份。 3. 特別是經常備份廣泛使用的表空間的數據文件,以減少數據庫恢復時間。如果更新的數據文件備份恢復了損壞的數據文件,那麼您需要對恢復的數據文件應用較少的重做(或增量備份)以將其前滾到故障時間。 4. 您還可以使用在數據庫打開且表空間線上時獲取的數據文件副本來恢復數據文件。您必須將適當的重做日誌文件應用於這些恢復的數據文件,以使數據保持一致並將其提前到指定的時間點。 5. 每次對數據庫進行結構更改時備份控製文件。如果在 ARCHIVELOG 模式下執行並且數據庫已打開,則使用 RMAN 或 SQL 語句 ALTER DATABASE BACKUP CONTROLFILE。經常備份歸檔日誌。強烈建議您至少保留兩份歸檔日誌:一份在磁碟上,另一份在離線儲存(磁帶、光碟等)上。盡可能長時間地將日誌保存在磁碟上,但盡快備份它們。
備份 NOARCHIVELOG 數據庫
如果在 NOARCHIVELOG 模式下執行數據庫,Oracle 不會歸檔已填充的聯機重做日誌文件組。因此,對磁碟故障的唯一保護是數據庫的最新完整備份。
以下是在 NOARCHIVELOG 模式下執行的數據庫的常見備份策略:
- 根據您可以承受的損失工作量,定期對整個數據庫進行備份。例如,如果您可以承受失去一周內完成的工作量,那麼每週進行一次一致的整個數據庫備份。如果您可以承受只損失一天的工作,那麼每天都對整個數據庫進行一致的備份。對於具有大量活動的大型數據庫,您通常不能承受失去工作的後果。在這種情況下,您應該在 ARCHIVELOG 模式下操作數據庫。
- 每當您更改在 NOARCHIVELOG 模式下執行的數據庫的物理結構時,立即進行一致的整個數據庫備份。整個數據庫備份充分體現了數據庫的新結構。
另外,如果我要使用 noarchive 模式,我需要手動刪除備份還是自動刪除?
我想說,首先您檢查 RMAN 備份的保留策略。
您將如何檢查保留政策?
您可以通過此 RMAN 命令查看保留策略
show all;
例如,很多選擇都是這樣的
RMAN configuration parameters for database with db_unique_name PROD1 are: CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS; CONFIGURE BACKUP OPTIMIZATION ON; CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default CONFIGURE CONTROLFILE AUTOBACKUP ON; CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 2 BACKUP TYPE TO COMPRESSED BACKUPSET; CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS 'ENV=(OB_DEVICE=tape1)'; CONFIGURE MAXSETSIZE TO UNLIMITED; # default CONFIGURE ENCRYPTION FOR DATABASE OFF; # default CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/disk1/oracle/dbs/snapcf_ev.f'; # default
或者您也可以通過“顯示”命令查看上述任何選項。
假設您想通過 RMAN 命令查看數據庫的保留策略,那麼您只需鍵入
SHOW RETENTION POLICY;
它將顯示您的數據庫保留策略,例如
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 3 DAYS;
如上所示,您的恢復視窗保留策略為 3 天。因此,您的備份最多只能保留 3 天。您還可以通過 RMAN 命令將 Retention day 值增加 3 天以上。
什麼是保留政策?
使用者定義的策略,用於確定備份和歸檔日誌需要保留多長時間以進行介質恢復。您可以根據備份冗餘或恢復視窗來定義保留策略。RMAN 保留滿足目前保留策略所需的數據文件備份,以及完全恢復這些數據文件備份所需的任何歸檔重做日誌。
供您進一步參考:RMAN 入門、配置 RMAN 環境和此處