于順森
【摘 要】所謂的Linux為一種自由與開放的unix電腦操作系統(tǒng),它存在著很多不一樣的Linux類版本,不過其均采用了Linux內(nèi)核。要提到的是,Linux可以安裝于各種類型的計(jì)算機(jī)硬件設(shè)備中,例如平板電腦、視頻游戲控制臺(tái)、大型與超級(jí)計(jì)算機(jī)一級(jí)手機(jī)。路由器、臺(tái)式電腦等。Linux為一個(gè)前衛(wèi)的操作系統(tǒng),現(xiàn)階段世界上運(yùn)算速度最快的超級(jí)計(jì)算機(jī)其使用的均為L(zhǎng)inux的操作系統(tǒng)。原則上講,Linux其本身只是表示Linux內(nèi)核,不過實(shí)際上人們?cè)缫蚜?xí)慣使用Linux來表述整個(gè)的基于Linux的內(nèi)核,同時(shí)采用GNU工程中的各種工具以及Database的操作系統(tǒng)。由于Linux操作系統(tǒng)使用較為廣泛,接下來,本文通過詳細(xì)的Database故障實(shí)例進(jìn)行分析,且就Linux操作系統(tǒng)中DB2 Database的備份和恢復(fù)進(jìn)行研究探討,希望對(duì)有關(guān)工作者能有所幫助。
【關(guān)鍵詞】Linux操作系統(tǒng);DB2數(shù)據(jù)庫;備份恢復(fù)
【中圖分類號(hào)】TP309.3 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1672-5158(2013)03-0166-02
Linux一般被用于服務(wù)器的操作系統(tǒng),主要是由于它的UNIX背景、廉價(jià)以及靈活性。通常,以Linux系統(tǒng)為基礎(chǔ)的LAMP技術(shù),不但已經(jīng)在開發(fā)者人群中廣泛使用,同時(shí)提供了網(wǎng)絡(luò)服務(wù)供應(yīng)商經(jīng)常使用的平臺(tái),由于Linux成本較低以及高度的可設(shè)置性,這使得Linux經(jīng)常被使用在嵌入式系統(tǒng)中比如移動(dòng)裝置、機(jī)頂盒以及移動(dòng)電話等?;贚inux使用功能較為強(qiáng)大以及應(yīng)用范圍較廣等特性,本文將分析研究Linu操作系統(tǒng)下DB2 Database(即DB2數(shù)據(jù)庫)的備份與恢復(fù),以此為廣大使用者提供方便。
1.DB2數(shù)據(jù)庫
該數(shù)據(jù)將為IBM集團(tuán)研發(fā)的一種關(guān)系型的數(shù)據(jù)庫操作系統(tǒng)。DB2數(shù)據(jù)庫系統(tǒng)主要使用于大型的應(yīng)用系統(tǒng)中,該數(shù)據(jù)庫具備較好的可伸縮性,能夠支持從大型機(jī)至單用戶環(huán)境,使用在Windows等平臺(tái)下。它提供了層次較高的數(shù)據(jù)、完整性、可恢復(fù)性以及利用性、安全性,和小規(guī)模至大規(guī)模應(yīng)用程序中的執(zhí)行能力,有著和平臺(tái)無關(guān)連的SQL命令以及基本功能[1]。DB2使用了數(shù)據(jù)的分級(jí)技術(shù),可以使得大型機(jī)數(shù)據(jù)很快捷的下載至LAN 數(shù)據(jù)庫系統(tǒng)服務(wù)器,致使服務(wù)器用戶與基于LAN基礎(chǔ)上的應(yīng)用程序能夠訪問大型機(jī)數(shù)據(jù),且使數(shù)據(jù)庫系統(tǒng)遠(yuǎn)程連接與本地連接的透明化。它最大的優(yōu)點(diǎn)是有著一個(gè)非常完美的查詢優(yōu)化器,它的外部連接有效的改善了查詢的性能,且支持多任務(wù)同時(shí)查詢。同時(shí),DB2有著非常好的網(wǎng)絡(luò)支持功能,各個(gè)子系統(tǒng)能夠連接成千上萬個(gè)分布式用戶,能同時(shí)激活一千多個(gè)活動(dòng)線程,特別適合大型的分布式應(yīng)用系統(tǒng)。
DB2 數(shù)據(jù)庫系統(tǒng)不但能夠提供主流的VM操作系統(tǒng),和AS/400系統(tǒng)(為中等規(guī)模),同時(shí)International Business Machines Corporation(即IBM公司)還提供了跨越平臺(tái)(主要包含基于UNIX中的Linux,SunSolaris,和hpux、SCOUnixWare;另外,用于個(gè)人電腦中的OS/2的操作系統(tǒng),和微軟公司的Windows XP與其早期研發(fā)的系統(tǒng))中的DB2產(chǎn)品[2]。我們知道,DB2 數(shù)據(jù)庫系統(tǒng)能夠借助使用微軟公司的開放數(shù)據(jù)庫系統(tǒng)連接(即Open Database Connectivity)接口,同時(shí)Java 數(shù)據(jù)庫系統(tǒng)連接(Java Data Base Connectivity)接口,或是Common Object Request Broker Architecture接口代理被所有的應(yīng)用程序訪問。
本世紀(jì)初,IBM公司(即International Business Machines Corporation)全球同步發(fā)行了一款有著劃時(shí)代意義的數(shù)據(jù)庫系統(tǒng)產(chǎn)品——即DB2(“DB2”為IBM 數(shù)據(jù)庫系統(tǒng)產(chǎn)品系列的名稱)。此數(shù)據(jù)庫系統(tǒng)最大特點(diǎn)就是率先實(shí)現(xiàn)了能擴(kuò)展標(biāo)記語言以及關(guān)系數(shù)據(jù)之間的無縫交互,而并不需要考慮數(shù)據(jù)的位置、格式以及平臺(tái)。
2.DB2 Database(即數(shù)據(jù)庫)的備份
首先,在一臺(tái)型號(hào)是IBM XSETIES 225的服務(wù)器上,將Red Flag的操作系統(tǒng)、以及DB2 數(shù)據(jù)庫系統(tǒng)和Fix pack相關(guān)軟件安裝好,借助參數(shù)配置以滿足某應(yīng)用系統(tǒng)的運(yùn)用,其系統(tǒng)運(yùn)行正常。
有關(guān)DB2 數(shù)據(jù)庫系統(tǒng)備份的分類:第一類,按照備份對(duì)數(shù)據(jù)庫系統(tǒng)的使用影響可以分為脫機(jī)備份(同時(shí)也叫冷備份或者離線備份)以及聯(lián)機(jī)備份(可稱為熱備份或者在線備份):在線備份時(shí)其數(shù)據(jù)庫系統(tǒng)仍然能夠供用戶使用,離線備份時(shí),一定要斷開所有和數(shù)據(jù)庫系統(tǒng)連接的應(yīng)用[3]。第二類,按照數(shù)據(jù)的備份范圍可以分為增量備份以及完全備份,增量備份為備份數(shù)據(jù)庫系統(tǒng)中的部分?jǐn)?shù)據(jù),而完全備份則是將數(shù)據(jù)庫系統(tǒng)中的全部數(shù)據(jù)進(jìn)行備份。
依照此應(yīng)用系統(tǒng)的數(shù)據(jù)庫系統(tǒng)情況以及業(yè)務(wù)的需求,其數(shù)據(jù)備份每周實(shí)施一次離線完全備份,詳細(xì)的實(shí)施方法是:編寫腳本文件,其名字是3dbbackup,每周固定的時(shí)間對(duì)數(shù)據(jù)進(jìn)行備份,其備份的內(nèi)容是三個(gè)主要數(shù)據(jù)庫系統(tǒng):db03、db10以及db02。當(dāng)然,為了保障數(shù)據(jù)的安全,其系統(tǒng)管理員需在備份之后的第二天早上將備份內(nèi)容復(fù)制于移動(dòng)硬盤中,并將半年的備份數(shù)據(jù)保留,同時(shí)為了空間的限制,每個(gè)星期只保留一份最新的備份文件。
3.故障的發(fā)生和分析
當(dāng)系統(tǒng)的管理人員對(duì)系統(tǒng)進(jìn)行日常檢查時(shí),如果發(fā)現(xiàn)使用普通的用戶名登錄其系統(tǒng)界面之后,所得到的系統(tǒng)提示為無法訪問數(shù)據(jù)庫系統(tǒng)。
在這種情況下,首先需要檢查其服務(wù)器上的數(shù)據(jù)庫系統(tǒng)文件,此時(shí)會(huì)發(fā)現(xiàn)腳本文件用戶下的所有文件都消失了。于備份任務(wù)所指定的文件夾中,無3db文件夾,同時(shí)也沒有任何數(shù)據(jù)庫文件文件,就好像數(shù)據(jù)庫文件在一夜之間就消失的無影無蹤。
然后,登錄WAS(全稱為Websphere Application Server)管理控制臺(tái),之后在“資源”下的數(shù)據(jù)源中,而對(duì)于日常的三個(gè)數(shù)據(jù)源即db10、db03以及db02,測(cè)試時(shí)提示為“測(cè)試節(jié)點(diǎn)其localhost中的服務(wù)器(即serverl)中的數(shù)據(jù)源(指db01)失敗,包含有下面的異常:SQLCONNECT、java.spl.solexception以及java.lang.unsatisfiedlinkerror。之后查看JVM日志,以此獲得進(jìn)一步的具體信息” [4]。此種情況初步判斷為因?yàn)閿?shù)據(jù)庫系統(tǒng)文件丟失引發(fā)的系統(tǒng)故障。
下面分析研究故障原因,因?yàn)楣收铣霈F(xiàn)的時(shí)間是在數(shù)據(jù)備份之后的第一天,不過數(shù)據(jù)備份的當(dāng)系統(tǒng)的運(yùn)行都正常,另外備份的文件也不見了,這顯示備份沒能成功執(zhí)行。將備份腳本(即3dbbackup)打開,逐行分析研究命令,顯示:假若3dbbackup文件夾本身不存在的話,而$cd$i以及$cdbf此兩條命令沒能執(zhí)行成功,致使$rmrf$i的命令執(zhí)行之后,其刪除的為db2admin中的和數(shù)據(jù)庫系統(tǒng)文件同名的一些文件。此問題為之前編寫腳本的時(shí)候出現(xiàn)的疏忽,沒能充分考慮到假若3dbbackup不存在的情況下,在執(zhí)行備份時(shí)會(huì)將db2admin中的某些數(shù)據(jù)刪除掉。
4.數(shù)據(jù)庫(即Database)的恢復(fù)
如果數(shù)據(jù)庫系統(tǒng)文件被完全破壞,那么事實(shí)全面整體恢復(fù)為最佳的解決方法。Database恢復(fù)步驟如下:
(1)修改Database配置
首先Database所在表面空間為mdmspae,所以新建其mdmspae的文件夾,同時(shí)修改權(quán)限是888。也就是**chok888#mdmspae[5]。其次,修改Database配置,并支持聯(lián)合視圖。
(2)Database db03、db01以及db02的恢復(fù)
首先*su-db3admin,其次$db3disconnrct all。最后切換至備份文件所處于的目錄在,$db3 recyoro db db03。接下即可恢復(fù)Database db03。
(3)當(dāng)Database回復(fù)完之后,需重新啟動(dòng)服務(wù)器
當(dāng)服務(wù)器啟動(dòng)之后,根據(jù)開機(jī)操作,將WEBSPHERE以及db03啟動(dòng),即系統(tǒng)正常運(yùn)行。