杨丽华
〔摘 要〕分析了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/ilasIIzGB/database
备份欲重组数据库的数据库文件和移走索引文件
#cp catalog.dat catalogbak.dat
#cp catalog.db catalogbak.db
#mv catalog.idx catalogbak.idx
重组数据库
#../bin/ldbzrebuild catalog.db
按y键,直到#再次出现。
#reboot重启服务器。
(2)压缩重组数据库
进入问题数据库所在目录:
#cd/u/ilasIIzGB/database
备份欲压缩重组数据库的数据库文件和索引文件
#cp catalog.dat catalogbak.dat
#cp catalog.idx catalogbak.idx
压缩问题数据库的数据文件(catalog.dat而不是catalog.db)
../bin/ldbzcompress catalog.dat产生LDBMS.TMP中间文件。将压缩后产生文件LDBMS.TMP改名为问题数据库的数据文件
mv LDBMS.TMP catalog.dat
重组问题数据库的模式文件
../bin/ldbzrebuild 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)系统往往并不确切的提示哪一个数据库错误,所以我们需要根据错误发生的模块,重组与之相关的数据库。这种判断需要一定的维护经验,总的原则是在哪里出现的问题,就重组与此相关联的数据库。如期刊记到时提示错误,则重组或压缩重组期刊记到库(szregist.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.