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