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