欢迎您来到 数字平台。 您尚未登录。[登录] [注册新用户]
当前位置: 论坛首页 / 栏目 产品与服务 / 文章 478

点击:9358[回复顶层] [树状] [简明]


头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 1 楼
文章id: 477
利用dp2batch备份书目库的一点说明

作者: xietao


利用dp2batch备份书目库的一点说明

dp2图书馆集成系统的用户,目前在需要备份数据库的时候,可以有两大类方法:第一类方法是将整个系统停下,并且也要把SQL Server停下,然后将SQL数据库文件整个复制下来备份。第二类方法,就是利用dp2batch程序,将所关注的全部数据库内的数据记录导出,备份。

在采用dp2batch程序进行备份的时候,许多系统管理员可能已经知道了,因为实体库、订购库、期库、读者库等都不是MARC格式,而是纯XML格式,所以会选择dp2batch程序提供的.xml格式和.dp2bak格式。这是正确的。不过需要提醒一下,如果数据记录中带有对象资源,就不能用.xml格式而要用.dp2bak格式了。

而对于MARC格式的书目库,许多系统管理员以为备份可以采用ISO2709格式进行。而这个想法是不对的。dp2系统对书目库的备份是不能采用ISO2709格式的。

原因如下:
ISO2709格式中,各种字段都有其应有的含义,不过很遗憾并没有一个字段能保存MARC记录在数据库中的原始位置。dt1000系统为这个用途,扩充了一个-01字段,但因为这个“-01”字段名太特殊,带有-01字段的ISO2709文件在转入到其他图书馆系统的时候常造成问题,所以一直以来,我也在思考这个问题,觉得最好取消这个字段。

dp2系统为了兼容dt1000,例如要输出ISO2709文件用于输入到dt1000系统中,目前是可以在输出记录中创建-01字段的。但,既然是dt1000扩充的-01字段,那dp2系统在输出创建-01字段的时候,就要遵守dt1000系统的作法。这个做法有一个问题,就是-01字段内没有地方能够存储dp2系统所需要的应用服务器WebService URL字符串。

由于dp2系统已经有很好的.xml格式和.dp2bak格式了,所以我决定dp2系统不再在输出的ISO2709格式记录中去产生什么专有的存储记录路径的字段。而能够创建-01字段,上面刚刚说了,仅仅是为了让dt1000系统能使用dp2系统导出的ISO2709文件以覆盖方式转入,而不是为了让dp2系统能够以覆盖的方式转入。

再强调一下,就是dp2系统转出的ISO2709文件,无论其中是否包含-01字段,都不能在转入dp2系统的时候,采用覆盖转入的方式,而只能采用追加转入的方式。也就是说,记录中的-01字段,转入的时候dp2batch程序并不认,就当没有看见一样。

这里推导出一个结论,就是用dp2batch备份书目库数据的时候,根本就不能用ISO2709格式。如果用了,结果就是可怕的:丢失了位置信息。

那么要用什么格式来进行书目库的备份呢?答案是,用.xml和.dp2bak格式。

在这两个格式中,区别是如果记录中有对象资源,就要用.dp2bak格式。

为了避免系统管理员在备份操作的时候忘记了上述规定,目前新版的dp2batch在转出ISO2709格式数据的时候,当操作者选择了创建-01字段时,软件会出现以下提示信息:

您选择了在导出的ISO2709记录中加入-01字段。请注意dp2Batch在将来导入这样的ISO2709文件的时候,记录中-01字段***起不到***覆盖定位的作用。“加入-01字段”功能是为了将导出的ISO2709文件应用到dt1000系统而设计的。如果您这样做的目的是为了对dp2系统书目库中的数据进行备份,请改用.xml格式或.dp2bak格式。



发表时间: 2009-03-30 11:45:22





头衔: 总工
文章数: 539
积分: 5390
注册时间: 2005/9/5
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 2 楼
文章id: 478
为什么dp2系统不让用ISO2709格式来进行数据备份、恢复呢?

作者: xietao


可能有系统管理员会不解:为什么dp2系统不让用ISO2709格式来进行数据备份、恢复呢?

上面其实已经讲到了原因,这里再重复解释一下,细致分析一下。

ISO2709文件本身是一种书目数据的交换格式,并不是软件内部处理的格式。ISO2709记录的目次区等做法,完全是为了早期的通讯需要而设计的,可以看出这完全是一个“通讯交换格式”。

上面说到了,ISO2709记录所承载的MARC记录,MARC字段的使用也是有严格规范的,这些规范主要倾向于规定通用领域内字段名的可识别性、稳定性。因此,dp2系统要在里面扩充一些专用的字段,有不少困难。

从dt1000系统在MARC记录内扩充了-01字段并且(可选地)带到了ISO2709文件中,这一实践来看,效果并不好。有点强扭着ISO2709格式作为内部备份格式使用的意思。所以,dp2系统不想仿照这类不好的路线走下去。也可以说,正是dt1000的-01字段的用法带来的诸多缺点,让dp2系统决定不采用类似的做法了。

其实,开阔视野,系统内的备份格式,本来完全可以不用ISO2709格式。

dp2系统目前也可以输出ISO2709格式文件,甚至可以创建出符合dt1000要求的-01字段,但那是为了和其他系统交换数据用的,并不是自己的备份使用。有了这个划分,思路就清楚了,反而轻松了。

另外,dp2系统采用书目库和实体库等分置的系统结构,书目数据远远不够描述业务信息全部范围了(而dt1000是采用在书目记录中扩充字段来描述业务信息的),今后将开发更多新的手段来进行备份,目前的利用多个单一库备份的做法仅仅是过渡。不过可以预料的是,将来更不会利用ISO2709格式来做备份的。

~~~

顺便谈到,目前,为了存储和表现Unicode字符集,ISO2709格式也进行了一些扩展,例如采用UTF-8编码方式的ISO2709文件。不过可惜的是,目前国内的许多开发商对这类应用还是一头雾水,给他们UTF-8编码的ISO2709文件,他们的系统无法处理这样的新鲜事物,转入到其本不能支持Unicode的系统中会乱作一团。

对dp2系统来说,由于它内核是Unicode字符集的,所以早已解决相关问题,应用中也倾向于(必须)使用UTF-8编码方式。但这只是dp2系统的情况,一枝独秀的情况。

而从外部看,从保守的角度,dp2系统的大部分用户在输出ISO2709文件给其他系统的时候,都主要采用国内常见的GB2312编码方式,缺点就是无法容纳Unicode字符了。

dp2系统不采用ISO2709作为备份格式,额外的好处就是避免了还要在导出的时候特意采用UTF-8编码方式的脑力负担。因为从ISO2709格式的角度,UTF-8编码方式是后来扩展的。而采用dp2系统的.xml和.dp2bak格式,Unicode类编码方式是天经地义的、缺省的,选都不让选就自动内定了。

 



发表时间: 2009-03-30 11:59:30
最后修改时间: 2009-03-30 12:13:56



页 1 / 1
 

在线用户
(无) 
当前栏目在线用户数 0, 总在线用户数 0