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

点击:9523[回复顶层] [树状] [详细]
[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 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



[回复留言] [回复(需要先登录)] [引用(需要先登录)]普通文章第 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
 

在线用户
访客访客   访客访客   访客访客 (我自己)   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客   访客访客
当前栏目在线用户数 32, 总在线用户数 33