摘 要:數(shù)據(jù)庫在長時間的生產(chǎn)運行過程中,勢必存在一定的安全隱患。例如操作系統(tǒng)的故障對數(shù)據(jù)庫服務(wù)帶來的影響。作為數(shù)據(jù)庫管理和維護(hù)人員,需要建立一定的備份和恢復(fù)機制,使故障發(fā)生后能夠及時還原數(shù)據(jù)庫,將故障帶來的損失減到最少。本文介紹了一種部署在Windows服務(wù)器上的Oracle數(shù)據(jù)庫在操作系統(tǒng)故障后快速恢復(fù)的技巧。
關(guān)鍵詞:Oracle;數(shù)據(jù)庫;操作系統(tǒng);恢復(fù)
中圖分類號:TP311.13
鑒于Windows操作系統(tǒng)的普及性和易用性,目前有相當(dāng)一部分ORACLE數(shù)據(jù)庫服務(wù)器是基于Windows服務(wù)器操作系統(tǒng)的(Windows Server2003、Windows Server 2008)。當(dāng)Windows因病毒或因其他原因崩潰需要重新安裝部署時。Oracle數(shù)據(jù)庫的恢復(fù)是技術(shù)人員經(jīng)常遇到的問題。通常,DBA會定期通過EXP導(dǎo)出DMP文件,或是使用RMAN工具來完成備份和恢復(fù)工作。但是對于不熟悉Oracle的用戶來說,這些方法具備一定的技術(shù)門檻。其實,只要Oracle的文件目錄沒有被破壞,對Oracle的文件目錄結(jié)構(gòu)有基本的了解,使用Windows的一些基本操作,同樣也可以完成數(shù)據(jù)庫的恢復(fù)。本文就以O(shè)racle 10G在Windows Server2003服務(wù)器環(huán)境下為例,介紹這種簡單快速的數(shù)據(jù)庫恢復(fù)方法,使不具備DBA知識的操作人員也能夠在Windows服務(wù)器操作系統(tǒng)無法啟動的情況下快速恢復(fù)數(shù)據(jù)庫。
1 數(shù)據(jù)庫恢復(fù)流程
1.1 準(zhǔn)備工作
首先,需要對原有系統(tǒng)的Oracle安裝目錄做好備份。建議使用Windows PE工具啟動故障服務(wù)器,查找Oracle安裝主目錄。將目錄內(nèi)全部內(nèi)容拷貝做備份。記錄目錄路徑。(例如Oracle安裝在D盤根目錄下,就將D:\oracle目錄的全部內(nèi)容備份。并記錄原始安裝路徑為D:\oracle)。其次,記錄故障服務(wù)器的IP地址和計算機名信息。由于故障服務(wù)器的操作系統(tǒng)損壞無法啟動,因此無法通過常規(guī)方法獲得這些信息。筆者建議從經(jīng)常訪問該數(shù)據(jù)庫服務(wù)器的客戶端主機中找到Oracle目錄的TNSNAMES.ORA文件,該文件中包含了數(shù)據(jù)庫服務(wù)器IP或主機名信息。如果客戶端主機無法輕易訪問,也可以從之前備份出的Oracle文件夾中找到listener.log文件來獲取這些信息。路徑為\oracle\product\10.2.0\db_1\NETWORK\log\listener.log(視Oracle版本不同,文件的路徑可能不同)。最后,記錄需要恢復(fù)的數(shù)據(jù)庫名。找到訪問之前備份出的Oracle文件目錄,打開\oracle\product\10.2.0\admin文件夾,Oracle針對服務(wù)器上的每一個數(shù)據(jù)庫在該路徑都單獨建立了以數(shù)據(jù)庫名命名的文件夾。記錄這些文件夾名即可。
1.2 重新安裝Windows操作系統(tǒng)
確認(rèn)準(zhǔn)備工作中所有信息收集完畢后,即可開始操作系統(tǒng)的安裝。無論是在原服務(wù)器上恢復(fù)數(shù)據(jù)庫還是在新服務(wù)器上重新部署數(shù)據(jù)庫都需要注意磁盤分區(qū)和盤符問題。新安裝的系統(tǒng)必須包含準(zhǔn)備工作中記錄的Oracle安裝路徑所在盤的盤符。以上文記錄的Oracle安裝路徑為例,新系統(tǒng)必須包含D盤。安裝完成后,將計算機名、IP地址信息修改為準(zhǔn)備工作中記錄的內(nèi)容,確保新的操作系統(tǒng)環(huán)境與故障前的一致性。
1.3 重新安裝Oracle DataBase
操作系統(tǒng)重裝完畢后,開始安裝Oracle 10G Database服務(wù)器端軟件。注意選用的軟件版本一定要與原始服務(wù)器安裝的版本一致。安裝過程中,選擇基本安裝即可,注意Oracle主目錄位置選擇要與準(zhǔn)備工作中記錄的原服務(wù)器Oracle主目錄位置保持嚴(yán)格一致。如果要恢復(fù)的原服務(wù)器中并沒有名為orcl的數(shù)據(jù)庫,則啟動數(shù)據(jù)庫的復(fù)選框可以不勾選,這樣點擊下一步執(zhí)行安裝。
圖1 安裝Oracle數(shù)據(jù)庫服務(wù)
安裝完成后,新系統(tǒng)ORACLE路徑下已經(jīng)自動生成了相應(yīng)的文件。只要在新的服務(wù)器上手工建立同原服務(wù)器名字相同的數(shù)據(jù)庫即可。使用ORACLE 10G自帶的Database Configutarion Assistant工具,根據(jù)提示完成操作。所有步驟默認(rèn)初始配置即可,在第三步數(shù)據(jù)庫標(biāo)識處注意輸入數(shù)據(jù)庫名稱。
圖2 創(chuàng)建數(shù)據(jù)庫
此時再次打開\oracle\product\10.2.0\admin文件夾,可以看到以這些數(shù)據(jù)庫名命名的文件夾已經(jīng)自動生成。此時新服務(wù)器上的Oracle文件目錄結(jié)構(gòu)與故障服務(wù)器上的已經(jīng)十分接近。
1.4 數(shù)據(jù)庫恢復(fù)
上述工作完成后,關(guān)閉新服務(wù)器上的Oracle服務(wù),開始恢復(fù)工作。
右鍵“開始”菜單,選擇“任務(wù)管理器”,將以O(shè)RACLE開頭的進(jìn)程全部結(jié)束。然后點擊“我的電腦-管理服務(wù)和應(yīng)用程序”,選擇服務(wù)菜單,窗口右側(cè)列出了系統(tǒng)運行的所有服務(wù)。找到以O(shè)RACLE為開頭命名的服務(wù),一一將其關(guān)閉,為備份恢復(fù)做好準(zhǔn)備。
將備份的原始ORACLE文件夾拷貝到新系統(tǒng)的ORACLE安裝路徑,覆蓋現(xiàn)有ORACLE文件夾即可。
重新打開和ORACLE相關(guān)的各項服務(wù)后,恢復(fù)工作基本完成。這時點擊“開始-運行”,輸入“cmd”進(jìn)入命令行模式,使用sqlplus命令嘗試登陸數(shù)據(jù)庫。
sqlplus /nolog
conn / as sysdba
如果報監(jiān)聽錯誤,則在命令行模式中輸入lsnrctl start,開啟監(jiān)聽程序即可。至此,ORACLE數(shù)據(jù)庫恢復(fù)完畢。
2 結(jié)束語
通過本方法恢復(fù)ORACLE數(shù)據(jù)庫,操作人員只需對ORACLE文件目錄結(jié)構(gòu)有基本的認(rèn)識,熟練掌握Windows基本操作即可。備份方法也快速簡單,歸檔容易,屬于一種低度維護(hù),高度安全的方法。當(dāng)然,這種方法也存在一定的局限性,例如備份恢復(fù)中數(shù)據(jù)拷貝的時間可能過長、不能按表或者按用戶來恢復(fù)數(shù)據(jù)等。
參考文獻(xiàn):
[1]王琴,宋順林.ORACLE數(shù)據(jù)庫管理系統(tǒng)的備份策略及應(yīng)用舉例[J].計算機工程,2002(02).
[2]魏莉,趙純堅.ORACLE數(shù)據(jù)庫備份技術(shù)探討[J].信息技術(shù),2008(09).
作者簡介:李睿(1987-),男,山西晉中人,助理工程師,本科,研究方向:數(shù)據(jù)庫技術(shù)。
作者單位:民航華北空管局通信網(wǎng)絡(luò)中心,北京 100621