异种数据库复制方法技术

技术编号:2853477 阅读:282 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种异种数据库复制方法,涉及原数据库及待复制数据库,包括步骤:建立异种数据库系统通用接口驱动,所述异种数据库系统通用接口驱动包括原数据库数据库系统通用接口驱动和待复制数据库数据库系统通用接口驱动;判断对原数据库的调用是否对原数据库有更改;若对原数据库有更改,则将该调用同时传递给原数据库和待复制数据库的数据库系统通用接口驱动并调用原数据库的数据库系统通用接口驱动;调用待复制数据库的数据库系统通用接口驱动。本发明专利技术异种数据库复制方法能够实现任意种数据库间复制而且还具有实时性。

【技术实现步骤摘要】

本专利技术涉及数据库系统应用领域,尤指一种。
技术介绍
在当前应用数据库系统的环境中,如企业级的网络环境,异种数据库同时并存的现象越来越普遍。比如,在一个公司内部,其市场部门采用微软公司地SQL Server数据库,其研发部门采用神舟软件公司的OSCAR安全数据库,而其总服务器采用甲骨文公司的ORACLE数据库,这种异种数据库同时使用的情况在许多系统集成的方案与实施中屡见不鲜,于是异种数据库之间的数据内容的复制成为人们普遍关心的问题。目前,各大主流数据库产品都提供了在各自数据库之间进行复制的功能。现有的复制功能一般采用发布/订阅模型来实现的。如图1所示,发布服务器1用于配置发布设置及将数据库系统中的数据提取出来,以便复制到其它服务器;分发服务器2用于具体执行数据分发任务;订阅服务器3、订阅服务器4和订阅服务器5用于接收复制数据。首先,在发布服务器1进行发布配置,例如对复制的内容,执行复制的周期等进行设置;订阅服务器3、4、5根据需要订阅配置好的发布;分发服务器2会根据发布配置执行数据分发,将数据写入订阅服务器3或者4或者5。在这样的实现模型下,数据被写入发布数据库1后,分发服务器2根据发布配置定期去检查数据变更,然后将这些数据变更提取出来写入订阅服务器3或者4或者5。这种复制技术存在以下两个主要缺陷1)不能实现任意的异种数据库间的数据复制发布服务器1和分发服务器2的实现和数据库服务器紧密相关,各数据库厂商只开发出配合自己的数据库产品的发布服务器1和分发服务器2,也就是说发布服务器1和分发服务器2不具有可移植性;目前最多只能做到订阅服务器3或者4或者5能适宜异种数据库,这主要是通过sql(Struct QueryLanguage,结构化查询语言)标准来屏蔽不同数据库间的差异。2)不支持实时性分发服务器2按设定的周期去检查发布数据库1的更改,然后再写入订阅服务器3或者4或者5,而不是实时地对数据库的更改进行复制。
技术实现思路
本专利技术要解决的技术问题是提供一种能够在任意的异种数据库间进行实时地数据复制的。为了解决上述问题,本专利技术采用以下技术方案一种,涉及原数据库及待复制数据库,其包括以下步骤10)建立异种数据库系统通用接口驱动,所述异种数据库系统通用接口驱动包括原数据库数据库系统通用接口驱动和待复制数据库数据库系统通用接口驱动;20)判断对原数据库的调用是否对原数据库有更改;30)若对原数据库有更改,则将该调用同时传递给原数据库和待复制数据库的数据库系统通用接口驱动并调用原数据库的数据库系统通用接口驱动;40)调用待复制数据库的数据库系统通用接口驱动。进一步地本专利技术,在步骤30)后还包括步骤31)将已传递给待复制数据库的数据库系统通用接口驱动的对原数据库有更改的调用存放在队列中;32)空闲时,触发步骤40)。所述步骤中的数据库系统通用接口驱动为开放数据库连接或爪哇数据库连接。与现有技术相比,本专利技术的有益效果是由于采用数据库系统通用接口来建立异种数据库的驱动,而数据库系统通用接口是任何种类的数据库系统都支持的接口,可将异种数据库间的差异性屏蔽,故通过调用数据库系统通用接口驱动可实现任意异种数据库的数据复制。另外还采用将对原数据库有更改的调用同时传递给原数据库和待复制数据库的数据库系统通用接口驱动,通过调用原数据库和待复制数据库的数据库系统通用接口驱动,即将对原数据库有更改的调用在原数据库上执行,同时也将该调用在待复制数据库上执行,因而能够实现实时地进行数据复制,具有实时性。最后,本专利技术的另一个技术方案,采用先将已传递给待复制数据库的数据库系统通用接口驱动的调用存放在队列中,待服务器空闲时或者在适宜的时候,再调用待复制数据库的数据库系统通用接口调用,换句话说就是待服务器空闲时或者在适宜的时候,再进行数据的复制,这样可以避免用户应用感觉数据库访问慢,但却牺牲了一定的实时性。附图说明图1是现有技术用于异种数据库复制的发布/订阅模型图2是本专利技术的流程图3是本专利技术的实施例的应用图4和图5是另一个例子的应用图。具体实施例方式如图2所示,本专利技术,涉及原数据库及待复制数据库,包括以下步骤步骤10)建立异种数据库系统通用接口驱动,所述异种数据库系统通用接口驱动包括原数据库数据库系统通用接口驱动和待复制数据库数据库系统通用接口驱动;步骤20)判断对原数据库的调用是否对原数据库有更改;步骤30)若对原数据库有更改,则将该调用同时传递给原数据库和待复制数据库的数据库系统通用接口驱动并调用原数据库的数据库系统通用接口驱动;步骤40)调用待复制数据库的数据库系统通用接口驱动。上述步骤中所述的数据库系统通用接口指开放数据库连接(ODBC,OpenDatabase Connectivity)、爪哇数据库连接(JDBC,JAVA Database Connectivity)等,因任何种类的数据库系统都支持这些数据库系统通用接口,故采用建立异种数据库系统通用接口驱动,可屏蔽异种数据库间的差异。如果对原数据库的调用对原数据库有更改,也就是说该调用将会引起原数据库与待复制数据库不一致,因而将该调用也同时传递给待复制数据库的数据库系统通用接口驱动,这样步骤40)调用待复制数据库的数据库系统通用接口驱动,即将对原数据库有更改的调用在原数据库上执行,而且同时也在待复制数据库上执行,也就是说,对原数据库进行了更改,同时在待复制数据库上也进行了同样的更改,保证了原数据库与待复制数据库的一致性,也即实现了原数据库向待复制数据库的复制。如图2所示,若步骤20)判断的结果为对原数据库的调用不会对原数据库产生更改,则执行步骤50)将调用传递给原数据库的数据库系统通用接口驱动;步骤60)调用原数据库的数据库系统通用接口驱动。从上述步骤可知,若对原数据库的调用对原数据库不会产生更改,也即表示该调用不会导致原数据库与待复制数据库的不一致性,故没有必要将该调用也传递给待复制数据库的数据库系统通用接口驱动。如图2所示,执行完步骤40)或者步骤60)后转到步骤20),即继续判断下一个对原数据库的调用是否对原数据库有更改,根据判断结果执行相应的步骤。下面以北京神舟软件有限公司为例来详述本专利技术的技术方案。两个异种数据库A和数据库B,数据库A为用户应用所使用的数据库,数据库B是进行数据复制的目的数据库,数据库访问接口采用数据库系统通用接口JDBC。首先建立符合规范的JDBC驱动AB,该驱动包含数据库A的JDBC驱动包和数据库B的JDBC驱动包,并且实现标准要求的所有接口方法。本例JDBC驱动AB的主要代码如下public class ABDriver implements java.sql.Driver{//实现标准接口java.sql.Driverjava.sql.Driver oscarDriver=null;//Oscar数据库JDBC Driverjava.sql.Driver otherDriver=null;//其他数据库JDBC Driverstatic{try{java.sql.DriverManager.registerDriver(new ABDriver());//向驱动管理器注册新驱动}catch(Exception e){}}public Conn本文档来自技高网
...

【技术保护点】
一种异种数据库复制方法,涉及原数据库及待复制数据库,其特征在于,包括步骤:10)建立异种数据库系统通用接口驱动,所述异种数据库系统通用接口驱动包括原数据库的数据库系统通用接口驱动和待复制数据库的数据库系统通用接口驱动;20) 判断对原数据库的调用是否对原数据库有更改;30)若对原数据库有更改,则将该调用同时传递给原数据库和待复制数据库的数据库系统通用接口驱动并调用原数据库的数据库系统通用接口驱动;40)调用待复制数据库的数据库系统通用接口驱动。

【技术特征摘要】
1、一种异种数据库复制方法,涉及原数据库及待复制数据库,其特征在于,包括步骤10)建立异种数据库系统通用接口驱动,所述异种数据库系统通用接口驱动包括原数据库的数据库系统通用接口驱动和待复制数据库的数据库系统通用接口驱动;20)判断对原数据库的调用是否对原数据库有更改;30)若对原数据库有更改,则将该调用同时传递给原数据库和待复制数据库的数据库系统通用接口驱动并调用原数据库的数据库系统通用接口驱动;40)调用待复制数据库的数据...

【专利技术属性】
技术研发人员:何清法陈刚金星程胜降志勇
申请(专利权)人:北京神舟航天软件技术有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1