〔摘 要〕分析了ilasII系統(tǒng)在應(yīng)用中需要進(jìn)行數(shù)據(jù)庫(kù)重組和壓縮重組的故障,并提出了進(jìn)行數(shù)據(jù)庫(kù)重組和壓縮重組的方法及相關(guān)問(wèn)題。
〔關(guān)鍵詞〕ilasII系統(tǒng);數(shù)據(jù)庫(kù);重組;壓縮重組
〔中圖分類號(hào)〕G250.74 〔文獻(xiàn)標(biāo)識(shí)碼〕B 〔文章編號(hào)〕1008-0821(2009)03-0141-02
數(shù)據(jù)庫(kù)服務(wù)是ilasII系統(tǒng)最底層和最基礎(chǔ)的服務(wù)。ilasII采用的是大型分布式數(shù)據(jù)庫(kù)管理系統(tǒng)LDBMS。數(shù)據(jù)庫(kù)的上層為網(wǎng)絡(luò)服務(wù),支持著分布式數(shù)據(jù)庫(kù)的存儲(chǔ)與檢索等服務(wù)。LDBMS的數(shù)據(jù)庫(kù)由以下文件組成:數(shù)據(jù)庫(kù)模式文件*.db,數(shù)據(jù)庫(kù)數(shù)據(jù)文件*.dat,數(shù)據(jù)庫(kù)索引文件*.idx和非MARC數(shù)據(jù)庫(kù)結(jié)構(gòu)文件*.stru。以上數(shù)據(jù)庫(kù)類型文件用戶不能隨意修改,否則系統(tǒng)數(shù)據(jù)庫(kù)打不開(kāi),整個(gè)系統(tǒng)不能正常運(yùn)行。ilasII系統(tǒng)涉及的數(shù)據(jù)庫(kù)較多,主要有采編書(shū)目庫(kù)、采編館藏庫(kù)、中央書(shū)目庫(kù)、中央館藏庫(kù)、讀者庫(kù)等。對(duì)于這些更新頻繁、實(shí)時(shí)索引的數(shù)據(jù)庫(kù)來(lái)說(shuō),由于它們相互關(guān)聯(lián)、涉及復(fù)雜,易受各類因素如意外操作、斷電、不適當(dāng)關(guān)閉系統(tǒng)等影響,使其數(shù)據(jù)庫(kù)發(fā)生異常而無(wú)法正常使用,重組是一件不能回避的工作。重組不僅可以增減索引字段,而且可以改善存儲(chǔ)與檢索效率。重組不能成功時(shí)可嘗試壓縮重組。
1 需要進(jìn)行數(shù)據(jù)庫(kù)重組和壓縮重組的故障
(1)在采編子系統(tǒng)中,進(jìn)行書(shū)目數(shù)據(jù)的采訪、編輯、加工和維護(hù)時(shí)出現(xiàn) “打開(kāi)數(shù)據(jù)庫(kù)catalog或acqword、barwork,biblios等失敗”、“書(shū)目記錄不能定位”、“數(shù)據(jù)新增錯(cuò)誤”、“審校數(shù)據(jù)交送失敗”、“條碼刪除失敗”等提示,對(duì)書(shū)目數(shù)據(jù)無(wú)法進(jìn)行檢索、修改、存盤(pán)。
(2)在流通子系統(tǒng)中,在新增或修改讀者信息或進(jìn)行讀者事務(wù)處理時(shí),出現(xiàn)“打開(kāi)數(shù)據(jù)庫(kù)reader失敗”、“讀者記錄不能定位”、“當(dāng)前讀者記錄創(chuàng)建失敗”等提示而無(wú)法對(duì)讀者記錄進(jìn)行有效地檢索、追加、修改等操作。或者在進(jìn)行圖書(shū)借還事務(wù)處理時(shí)出現(xiàn)“打開(kāi)數(shù)據(jù)庫(kù)cirfin失敗”、“流通事務(wù)記錄修改失敗的情況等。
(3)在服務(wù)器正常啟動(dòng)和運(yùn)行的情況下,在保證密碼和用戶名正確的前提下,各客戶端用戶進(jìn)行系統(tǒng)登錄時(shí)出現(xiàn)“系統(tǒng)參數(shù)出錯(cuò)”等提示而無(wú)法進(jìn)入ilasII系統(tǒng)。
(4)在采編、流通等各子系統(tǒng)進(jìn)行各類數(shù)據(jù)的統(tǒng)計(jì)或重新統(tǒng)計(jì)時(shí)出現(xiàn)“統(tǒng)計(jì)庫(kù)打不開(kāi)”、“數(shù)據(jù)庫(kù):統(tǒng)計(jì)庫(kù)打開(kāi)失敗”等錯(cuò)誤而無(wú)法進(jìn)行正常的統(tǒng)計(jì)工作等。
2 數(shù)據(jù)庫(kù)重組和壓縮重組的方法
(1)重組數(shù)據(jù)庫(kù),以catalog.*(采編書(shū)目數(shù)據(jù)庫(kù))為例,操作如下:
進(jìn)入問(wèn)題數(shù)據(jù)庫(kù)所在目錄:
#cd/u/ilasIIGB/database
備份欲重組數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)文件和移走索引文件
#cp catalog.dat catalogbak.dat
#cp catalog.db catalogbak.db
#mv catalog.idx catalogbak.idx
重組數(shù)據(jù)庫(kù)
#../bin/ldbrebuild catalog.db
按y鍵,直到#再次出現(xiàn)。
#reboot重啟服務(wù)器。
(2)壓縮重組數(shù)據(jù)庫(kù)
進(jìn)入問(wèn)題數(shù)據(jù)庫(kù)所在目錄:
#cd/u/ilasIIGB/database
備份欲壓縮重組數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)文件和索引文件
#cp catalog.dat catalogbak.dat
#cp catalog.idx catalogbak.idx
壓縮問(wèn)題數(shù)據(jù)庫(kù)的數(shù)據(jù)文件(catalog.dat而不是catalog.db)
../bin/ldbcompress catalog.dat產(chǎn)生LDBMS.TMP中間文件。將壓縮后產(chǎn)生文件LDBMS.TMP改名為問(wèn)題數(shù)據(jù)庫(kù)的數(shù)據(jù)文件
mv LDBMS.TMP catalog.dat
重組問(wèn)題數(shù)據(jù)庫(kù)的模式文件
../bin/ldbrebuild catalog.db
給予重組后的數(shù)據(jù)庫(kù)文件以讀、寫(xiě)、執(zhí)行的權(quán)限
#chmod 777 *.*
完成,如果運(yùn)行一段時(shí)間后沒(méi)有問(wèn)題,將catalogbak.dat刪除:rm catalogbak.dat。
2009年3月第29卷第3期現(xiàn)?代?情?報(bào)Journal of Modern InformationMar.2009Vol.29 No.32009年3月第29卷第3期利用ilasII系統(tǒng)進(jìn)行數(shù)據(jù)庫(kù)重組和壓縮重組Mar.2009Vol.29 No.33 重組和壓縮重組數(shù)據(jù)庫(kù)的相關(guān)問(wèn)題
(1)LDBMS提供的數(shù)據(jù)庫(kù)底層維護(hù)程序是在Unix操作系統(tǒng)下的數(shù)據(jù)庫(kù)服務(wù)器上的單庫(kù)維護(hù)程序。因此,在進(jìn)行以上維護(hù)程序時(shí),務(wù)必在全部客戶端退出的情況下單用戶操作。最好是拔掉網(wǎng)線,至少也要保證與重組的數(shù)據(jù)庫(kù)相關(guān)的模塊沒(méi)有用戶,否則重組后的結(jié)果更糟糕。重組之前重新啟動(dòng)服務(wù)器是最好的選擇,可以關(guān)閉很多死進(jìn)程。
(2)在做重組或壓縮重組數(shù)據(jù)庫(kù)的工作時(shí),最好用Unix系統(tǒng)命令(tar cvf) 將ilasII系統(tǒng)做一個(gè)全備份,以在壓縮重組失敗后對(duì)系統(tǒng)進(jìn)行完全恢復(fù)比較穩(wěn)妥。
(3)系統(tǒng)往往并不確切的提示哪一個(gè)數(shù)據(jù)庫(kù)錯(cuò)誤,所以我們需要根據(jù)錯(cuò)誤發(fā)生的模塊,重組與之相關(guān)的數(shù)據(jù)庫(kù)。這種判斷需要一定的維護(hù)經(jīng)驗(yàn),總的原則是在哪里出現(xiàn)的問(wèn)題,就重組與此相關(guān)聯(lián)的數(shù)據(jù)庫(kù)。如期刊記到時(shí)提示錯(cuò)誤,則重組或壓縮重組期刊記到庫(kù)(sregist.db),如果數(shù)據(jù)審校失敗,則對(duì)中央書(shū)目庫(kù)(biblios.db)和中央館藏庫(kù)(hold.db)進(jìn)行重組。另外,一般返回錯(cuò)誤代碼-147,則需對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)重組操作,而返回錯(cuò)誤代碼-69或小于-69,則需對(duì)數(shù)據(jù)庫(kù)進(jìn)行壓縮重組操作。
(4)一般情況下,問(wèn)題數(shù)據(jù)庫(kù)在進(jìn)行重組后其問(wèn)題基本能得到解決,但有時(shí)需要重組或者壓縮重組多次問(wèn)題才能解決。有的ilas系統(tǒng)管理員對(duì)重組有一個(gè)誤解,認(rèn)為重組操作做一次就可以了,如果問(wèn)題沒(méi)有解決,就不知道怎么辦了,其實(shí)重組操作是個(gè)反復(fù)的過(guò)程,只要是數(shù)據(jù)庫(kù)亂的錯(cuò)誤,就需要進(jìn)行數(shù)據(jù)庫(kù)重組或壓縮重組,直至問(wèn)題解決。
總之,ilasII系統(tǒng)在使用過(guò)程中經(jīng)常會(huì)由于數(shù)據(jù)冗余增多而導(dǎo)致數(shù)據(jù)庫(kù)中的索引與數(shù)據(jù)文件之間的錯(cuò)誤,或由于服務(wù)器非法關(guān)機(jī)而造成數(shù)據(jù)丟失,而使數(shù)據(jù)庫(kù)發(fā)生異常,無(wú)法使用。這時(shí),數(shù)據(jù)庫(kù)的重組和壓縮重組就成為一個(gè)有效的數(shù)據(jù)庫(kù)維護(hù)工具。
參考文獻(xiàn)
[1]深圖朗思數(shù)字技術(shù)有限公司.ilasII2.0系統(tǒng)管理員手冊(cè)[R].2002.6.
[2]金劍.ILAS系統(tǒng)應(yīng)用中的問(wèn)題和解決辦法[J].圖書(shū)館研究與工作,2007,(2):36-37.
[3]廖東.淺議ilasII系統(tǒng)維護(hù)與管理工作[J].農(nóng)業(yè)網(wǎng)絡(luò)信息,2000,(4):124-125.
[4]呼聲波.ilasII2.0系統(tǒng)管理之我見(jiàn)[J].濟(jì)南職業(yè)學(xué)院學(xué)報(bào),2008,(2):90- 92.