异构数据库复制技术的研究与实现(下)
时间:2005-09-28 来源:he21cn
异构数据库复制技术的研究与实现(下)
4技术特点
“基于SQL重现法”数据复制技术具有完全异构、DBMS无关性、通用性以及可靠性等特点,下面逐一介绍。
(1)完全异构
完全异构意味着复制能够在所有数据库至少是所有与RDB(关系数据库,Relational Database)兼容的数据库之间进行。“基于SQL重现法”数据复制技术通过JDBC连接各种数据库,只要能找到合适的JDBC,就可以做到所有数据库之间的复制。所以说,“基于SQL重现法”数据复制技术是完全异构的。
(2)DBMS无关性
目前的许多复制方案,特别是数据库产商提供的数据复制方案,都依赖于与产商自己的DBMS核心关系紧密的实现技术,而“基于SQL重现法”数据复制技术采用JAVA技术开发,使用JDBC接口连接各种数据库,JAVA本身是一种跨平台的技术,JDBC作为一种标准得到了和ODBC一样的尊重,各大数据库厂商都制作了符合JDBC标准的驱动,这样利用这些接口,就不用考虑太多底层的DBMS的特性,可以透明地操作各种DBMS。比如,连接各个数据库的类Databasemetadata,使用JAVA语言编写,通过JDBC连接各种数据库,对不同类型的数据库的连接、访问、执行过程、查询等等,对于应用来说都是一样的,所以可以做到DBMS无关。所以说“基于SQL重现法”数据复制技术是与DBMS无关的。
(3)通用性
“基于SQL重现法”数据复制技术,捕获的变化是以SQL语句形式出现的,可以给任何数据库做复制。如果不用SQL语句,就必须在实施程序里写对应的数据库DML操作,而这样一来,实施程序就必须知道是哪种数据库,因为不同的数据库的DML语句不尽相同。直接存储成DML的SQL的话,Trigger可以把这种差异封装起来,这样实施程序面对的是比较一致的界面,所以实施程序本身可以移植,而Trigger本身就是不可移植的对象,由它进行封装是有好处的,可以让实施程序面对一个一致的接口,从而实施程序可以有更好的可移植性。“基于SQL重现法”数据复制技术实施程序做的事情就是从源库读取SQL语句,在目标数据库执行此SQL语句。
(4)可靠性
“基于SQL重现法”数据复制技术只复制数据库中修改的数据,因此可以明显降低网络的负荷。“基于SQL重现法”数据复制技术将变化应用于目标库的动作与删除变更轨迹表中的内容的动作包裹在一个事务里,当网络或目标数据库出现故障时,变化应用于数据库的动作不会成功,整个事务回滚,变更轨迹表中的内容不会被删除,假定在网络或目标数据库出现故障时原有数据未受到破坏,而在故障恢复时,可以手工启动复制过程提交变更轨迹表中的内容;或者当到达复制时间时,重新提交变更轨迹表的内容。这种方式使得此复制技术具有很高的可靠性。
5 原型实现
为了验证“基于SQL重现法”复制技术的可行性及技术特点,作者开发了原型系统Replicator,本节将进行详细介绍。
(1)实验环境
实验环境如下:
DBMS:IBM DB2 8.1,ORACLE9i,SYBASE11.9
OS:RedHat 7.3,Windows 2000,NT
网络:局域网(TCP/IP 100Mbps)
硬件:PC机(PentiumIV 1.7G,512M RAM,80GHD),PC机(PentiumIV 2.0G,256M RAM,80GHD),PC机(PentiumIV 1.7G,512M RAM,80GHD)
(2)实验测试
原型实现后,对数据复制功能进行了测试。
具体运行环境如(1)所描述,并尽量把其它程序和进程关闭使其占用最小资源。测试结果如表1:
其中每条记录大小100字节,涉及了各种常见数据类型(字符、整数、浮点数、时间/日期、大对象等);其中约有50%的记录发生改变。
表1 测试结果
Table 1 Test Result
记录数 |
时间使用(S) |
内存使用(M)(取运行过程中最大的内存损耗量) |
1000 |
58 |
16 |
5000 |
295 |
16 |
10000 |
592 |
16 |
测试结果表明,随着记录数的增长,“基于SQL重现法”数据复制技术时间复杂度呈线性增长(即O(N),N为记录数),空间复杂度(主要为内存损耗)基本上保持常量(即O(1))。
由于时间及其它客观条件的限制,Replicator还存在一些不足,需要在以后提高和完善。主要有:
(1)多样性
尽管实验环境包含了主要的异构形式,它们具有很强的代表性,但两种环境所涉及的情况毕竟有限。
(2)效率问题
在每张源表上加trigger对已有应用势必带来一定的效率问题,并给数据库管理带来了工作量,如何控制trigger的数量以及变更轨迹表控制信息的内容是提高效率、简化管理的主要考虑的方向。
(3)实时性
目前“基于SQL重现法”数据复制技术采用的是事后读取控制信息进行复制的方法,因而不能实现实时复制,这对实际应用带来了局限性。
1 者敬著. 开放式异构数据库复制框架的研究与实现 中国期刊网 2002.4
2 王婉非,张志浩 分布式数据库系统的复制机制及应用 计算机工程与科学 2003
3 吉增瑞 分布式数据库系统一致性方法 计算机工程与科学 2002
4 林怀忠 数据复制与一致性 2002
5 葛卫民 基于ORACLE高级复制的分布式数据库系统应用研究 数据库与信息处理 2003
7 郭思媚 数据复制技术在管理信息系统中的应用 计算机辅助工程 2000.3