一. 引言:
隨著Oracle大型數據庫系統在企業的廣泛應用,系統數據量的快速增長,相信為數不少的Oracle DBA每天都在忙於做著重復的工作--對數據庫進行備份。如果一旦哪一天疏忽了,而這一天系統又恰恰發生了故障,需要進行數據恢復,那麼此時對 DBA來說可能就是一場災難, 因為他可能無法完整地恢復數據庫中的數據。此外,在數據庫的應用中我們會經常碰到這樣的需求:將一些重要數據表中的數據定期備份到另一些數據表中去。例如在企業員工工資管理系統中,每月工資報表打印完畢後,應將當月工資數據保存到工資歷史庫中去,以便今後查詢及統計使用。通常我們采用存儲過程來完成對數據的處理,這個過程由人工定期執行完成,操作起來很不方便。對於第一種情況,現在我們可利用Oracle數據庫實用工具恢復管理器來完成DBA每天必須做的備份工作,而且可設定一個固定的時間, 讓系統自動進行備份。對後一種情況,我們可以使用DBMS_JOB包結合存儲過程來實現數據處理的自動執行。下面筆者結合實踐經驗,分別介紹其實現方法。
二. Oracle數據庫備份與恢復方式及特點
Oracle 數據庫備份分為物理備份和邏輯備份。物理備份是數據庫文件拷貝的備份, 冷
備份、熱備份屬於物理備份。 導出/導入(EXPORT/IMPORT)工具用於進行邏輯備份。
導出(EXPORT)備份可拷貝數據與數據庫定義,並以Oracle的內部格式保存為二進制文件。相反,利用Import則可將數據從二進制文件放回到Oracle數據庫中。但是導出(EXPORT)備份機制不能提供時間點恢復,而且不能和歸檔重做日志文件一起使用。
冷備份是在數據庫被正常關閉之後進行的數據文件的物理備份。當數據庫被關閉時,被
數據庫使用的每一個文件都被備份下來。這些文件因而保持著數據關閉時的完整的映象。
熱備份是在數據庫運行的情況下,采用archivelog mode方式備份數據的方法。 這涉及到將每個表空間設置為備份狀態,然後備份其數據文件,最後將表空間恢復成正常的狀態。
數據庫可以從這個備份中完全地恢復過來,也可以通過歸檔的重做日志回滾到前面時間的任
一個點上。
上述幾種備份方法的特性比較
方法 類型 恢復特性
----------- --------- ----------------------------------------------
Export導出 邏輯型 可以將任何數據庫對象恢復到它被導出時的狀態
冷備份 物理型 可將數據庫恢復到它被關閉時的狀態
熱備份 物理型 可將數據庫恢復到任一時間點的狀態
以上幾種備份方式都需要依賴DBA人工操作完成,從而增加了DBA維護系統的負擔。當
DBA需要維護多個Oracle數據庫系統時,還容易導致操作失誤,而且備份的數據不便於集中統一管理。
三. Oracle數據庫恢復管理器及DBMS_JOB包概述