鄭 福,侯校佳
國家新聞出版廣電總局二九二臺,山東青島 266206
Oracle數據庫備份與恢復可行性研究
鄭 福,侯校佳
國家新聞出版廣電總局二九二臺,山東青島 266206
現今,越來越多新的應用領域采用數據庫技術來存儲和處理信息資源,為了保障數據庫的安全運行,數據庫備份與恢復策略也變得愈加重要。本文就如何開展Oracle數據庫備份與恢復進行了深入探討,并結合數據庫備份及恢復應用場景提出了數據庫備份和恢復建議,供業內人士參考。
oracle;數據庫;備份
傳統數據庫系統依據數據模型的特點分為層次數據庫、網狀數據庫和關系數據庫三種。最早出現的是網狀數據庫系統,美國通用電氣公司在1961年成功開發的IDS(Integrated DataStore)IDS ,具有日志和數據模式的特征。但該數據庫系統只能在GE主機上運行,并且只有一個數據庫文件,數據庫所有的表必須通過人工編碼來完成。在數據庫發展史上,網狀數據庫占有重要地位。層次型數據庫系統是在網絡型數據庫之后而出現的,典型的層次型數據庫系統是IBM 公司在1968 年開發的IMS(Information Management System)。IMS是IBM公司研制的最早的大型數據庫系統。雖然網狀數據庫和層次型數據庫已經能夠很好地解決了數據的集中及共享問題,但在數據獨立性上仍有很大欠缺。使用者在對這兩種數據庫進行數據存取操作時,仍需要了解數據的存儲結構,明確數據存取路徑。國際國內的主導關系型數據庫管理系統有Oracle、Sybase、Informix和INGERS。這些產品都支持多平臺,如UNIX、VMS、Windows,但支持程度不一樣。IBM的DB2也是成熟的關系型數據庫。但是,DB2是內嵌于IBM的AS/400系列機中,只支持OS/400操作系統。SQL Server則只能在windows上運行,開放性差。Access數據庫則適用于數據量較小的數據應用,安全性比不上其他類型的數據庫。Oracle數據庫是一款為網格計算而設計的數據庫系統,它集成了數據庫管理技術的各種優勢,又融入了網格計算的各種新的新能特點,用戶可根據不同使用特點選擇相應的數據庫。
Oracle數據庫系統的優點是支持大數據、多用戶高性能事務處理,該數據庫具有良好的硬件環境獨立性,能夠適用于各種類型的操作系統。Oracle數據庫系統中數據備份分為物理備份和邏輯備份兩種。其中,物理備份主要是通過轉存儲數據庫物理文件(如數據文件、控制文件、歸檔日志文件等),將組成數據庫的文件從一處拷貝到另一處的備份過程,通常是從一種存儲介質到另一種穩定存儲介質。Oracle數據庫系統的物理備份可分為冷備份和熱備份。而邏輯備份通常是利用數據庫提供的導出工具從數據庫中提取數據并另存于二進制文件的過程。邏輯備份使用導出工具EXP。
上文中所述ORACLE數據庫兩種數據備份方式的優缺點如表1中所示,可以看到各備份方式均存在優點和缺點,用戶可根據實際應用環境的要求選擇不同的備份與恢復方式,亦可組合使用,下面以某工作站數據庫應用為例,嘗試探討上述幾種數據備份與恢復方式的可行性。
3.1 Oracle數據庫系統邏輯備份與恢復
使用exp/imp導出/導入三種方式:
1)表方式,可將指定的表導出備份。
2)用戶方式,可將指定的用戶的所有對象導出。
3)全庫方式,將數據庫中的所有對象導出。
下面介紹邏輯備份與恢復的方法:
C:〉exp system/123@orcl full=y file=d:orcl. dmp ,log=d:orcl.log
執行語句后將數據庫完全導出,用戶名system密碼123,并將導出結果和日志保存到d盤。
C:〉copy /y d:orcl.dmp \192.168.1.1D$ orcl.dmp
C:〉copy /y d: orcl.log\192.168.1.1D$ orcl.log
執行語句后將d盤的數據庫備份文件和日志文件拷貝到磁盤陣列上進行保存。
如數據庫出現問題或發生故障,可將數據庫備份文件放入備份數據庫服務器,執行如下語句,將數據庫備份文件導入到備份空數據庫中。
imp system/123@orcl file=d:orcl.dmp full=y
3.2 物理備份之冷備份及恢復
冷備份是指數據庫處于關閉狀態,將這一穩定時刻的數據庫系統相關文件轉移到安全的區域,當數據庫出現問題或損壞時,再將之前備份的數據庫相關文件從安全區域拷貝回原來位置的備份方式。
數據庫冷備份步驟如下:
1)以管理員身份登錄數據庫
C:〉sqlplus / as sysdba
2)關閉數據庫
SQL〉shutdown immediate
3)將數據文件、控制文件和聯機日志文件拷貝到安全區域,將D:oracleproduct10.2.0oradata路徑下以數據庫名命名的文件夾拷貝到安全區域
4)重啟數據庫
SQL〉startup
如數據庫受損,首先關閉數據庫,將安全區域的數據庫文件復制到數據庫服務器D:oracle product10.2.0oradata路徑下,重啟數據庫。因數據庫需要實時處于工作狀態,故數據庫冷備份只能在數據庫初裝或有備份數據庫情況下適用。
3.3 物理備份之熱備份及恢復
Oracle數據庫的聯機日志記錄在數據庫上進行的所有活動。后臺進程將以一種循環的方式寫這些日志文件。處于非歸檔模式下,當循環寫入最后一個日志完成后,就重新寫入第一個日志。因此,在非歸檔模式下唯一的數據庫恢復辦法就是使用冷備份。而處于歸檔模式下,當redo日志寫滿時,后臺進程就開對寫滿日志進行歸檔。因此,可以使用熱備份和點恢復。
數據庫熱備份步驟如下。
1)通過視圖查看數據庫是否在歸檔模式下:
SQL〉select log_mode from v$database;
如果不是歸檔模式,則將其改為歸檔模式,方法如下:
SQL〉shutdown immediate(關閉數據庫)
SQL〉startup mount(開啟mount模式)
SQL〉alter database archivelog;(將數據庫改為歸檔模式)
SQL〉alter database open;(啟動數據庫服務)
如果Automatic archival顯示為“Enabled”,則數據庫為自動歸檔方式,無需操作,否則需要進行人工歸檔,或者將歸檔方式改為自動歸檔。
關閉數據庫,在參數文件中加入如下參數。
LOG_ARCHIVE_DEST_1=ORACLE_HOME/admin/0816/ arch
然后,重新啟動數據庫,重啟后的數據庫將以自動歸檔方式工作。
注:當數據庫處于歸檔模式時,必須要確保指定的歸檔路徑可寫,否則數據庫會自動掛起停止服務,直到對所有日志信息進行歸檔后才可以使用。另外,為創建一個有效的數據庫文件備份,當數據庫創建時,必須對全數據庫的數據文件進行一次冷備份。
2)直接對整個數據庫進行備份,首先進入rman:
Rman〉backup database format ‘E:oracle backupackup_01’;
3)數據庫歸檔日志備份步驟:
首先對當前日志進行歸檔,然后歸檔所有日志文件:
Rman〉Backup archivelog allformat ‘E:oracle backupackup_02’ delete input
4)數據庫控制文件備份步驟:
Rman〉backup current controlfile;
通過上述步驟,完成數據庫物理熱備份。
數據庫熱備份的恢復步驟:
首先關閉數據庫,然后將數據庫啟動至mount狀態,將數據庫的備份文件和歸檔日志的備份文件放到指定的備份目錄下。
Rman〉restore database;
Rman〉recover database;
SQL〉alter database open;
通過上述步驟完成對損害數據庫的數據文件恢復。
確保數據庫安全穩定運行是維護工作的重點,通過對Oracle數據庫備份與恢復可行性進行研究,能夠看出邏輯備份一般用于有規律的日常備份場景;物理備份中的冷備份一般用于數據庫能夠暫時關閉或者配合熱備份使用的場景;物理備份中的熱備份一般用于數據庫訪問量小,或者需要實現表空間及庫文件級的備份場景。因此,建議在數據庫初裝后進行物理冷備份,啟動后可使用物理熱備份及邏輯備份相結合的方式對數據庫進行備份,并結合Oracle提供的各種工具使數據庫備份和恢復變得簡單。當然在實際的數據庫備份和恢復應用中,會有很多復雜情況出現,這就需要在具備大量日常實踐經驗的同時,針對不同情況,為保障數據具有最大可恢復性和最短恢復時間的原則去進行數據庫的備份與恢復方案設計及實現。
[1]秦靖,劉存勇.Oracle從入門到精通[M].北京:機械工業出版社,2011.
[2]何玉潔,王曉波,車蕾.數據庫系統[M].北京:機械工業出版社,2010.
[3]潘敏,傅揚,史曉翠.Oracle數據庫性能優化的分析[J].電腦編程技巧與維護,2010,10.
[4]吳冰.Oracle Database備份與恢復的應用[J].河南科技,2011,6.
G2
A
1674-6708(2015)142-0067-01