基于主动数据库技术的同异构dbms间数据交换方法

文档序号:6397826阅读:282来源:国知局
专利名称:基于主动数据库技术的同异构dbms间数据交换方法
技术领域
本发明涉及数据库领域,特别涉及一种基于主动数据库技术的同异构DBMS间数据交换与数据同步方法。
背景技术
目前,各企事业单位随着信息化建设的不断推进,不同的应用系统不断增加。但由于应用部门不同、开发承担单位不同,开发平台各异、数据库异构现象普遍,特别是各应用系统建设中对信息的共享和交换考虑欠缺,使得“信息孤岛”越来越多。这不仅影响了数据的一致性、可靠性和权威性,而且导致行业信息服务受阻或受限,影响了信息化建设的质量。因此,加强基础数据库建设,各应用系统与基础数据库之间进行数据交换,是保证企事业单位数据可靠性、一致性的必要措施。因此,近年来数据交换技术成为信息技术领域的热门技术之一,研究成果不断推新。据浙江省科技信息研究院于2012年11月29日完成科技查新,近期相关发明专利有一种异构系统间数据交换与共享技术(杭州新中大软件股份有限公司,中国发明专利:CN101957865A,
公开日:2011.01. 26)、基于并行处理的数据交换方法(浪潮集团山东通用软件有限公司,中国发明专利CN1011969402A,
公开日2011. 02. 09)、一种异构、异种数据库间的数据交换方法及其装置(大连兆阳软件有限公司,中国发明专利CN102479182A,
公开日2012.05. 30)、基于日志管理包的增量数据实时同步装置和方法(用友软件股份有限公司,
公开日2012. 06. 20)。这些发明专利中的数据交换技术,提供了可行的数据交换方法。前三种方法都是做海量数据处理,每次都需要将源数据库端的全部数据传输到目标数据库,数据传输量大,时间复杂度高。第四种方法,包括两个同步单元。第一同步单元,将第一数据源(源端)中的初始数据复制到第二数据源(目标端)中;第二同步单元,使用第一数据源的日志管理包获取在第一数据源执行的数据操作语句,将数据操作语句应用于第二数据源,以实现第一数据源和第二数据源之间的增量数据同步,其中,日志管理包包含了对第一数据源的日志进行分析的存储过程、从日志中获取数据操作信息,数据操作信息包括数据操作语句的标识、数据操作语句的操作对象和数据操作语句的所属事务。这种方法存在3个问题,其一,该方法只能用于同构数据库间的数据同步。因为,异构数据库同步时需要一个外部同步应用程序协助完成同步工作。其二,两个数据源必须注册到同一个数据库服务器中,只有这样,才能通过使用存储过程和事务方法完成数据同步。其三,即使有同步程序的存在,当目标端需要对源端数据经过计算和处理后方可入库时,同步应用程序就需要变更,给数据同步带来不便。

发明内容
为了解决现有技术中存在的上述技术问题,本发明提供了一种基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,用于为同异构数据库间提供便捷、高效的数据交换和数据同步的方法。该方法,包括如下步骤
一.确定数据同步的源端和目标端数据环境;二.确定目标端与源端数据的对应关系;
三.在源端数据库中建立初始化表和日志表,所述初始化表中包括字段ID、目标端执行的操作命令,所述日志表中包括字段ID、目标端执行的操作命令、命令的操作类型、数据修改时间、同步状态、同步执行时间;
四.在源端的数据库中,利用存储过程将同步初始化所需要的数据对应在目标端执行的操作命令,并将该操作命令写到步骤三中建立的初始化表中;
五·在数据同步的源端涉及的表上,建立插入、修改、删除触发器,将每次数据变动需要在目标端执行的同步操作命令拼接成字符串,作为所述日志表的所述操作命令字段的值,形成日志表中的一条记录;
六.数据交换和数据同步步骤
(一)数据库配置;
(二)目标数据库初始化;
(三)数据库同步。进一步的,步骤一中所述源端和目标端数据环境包括数据库引擎,同步信息所在的表、涉及的字段。进一步的,步骤二中所述确定数据交换的目标端数据与源端数据的对应关系包括确定源端数据库表集和涉及的字段、目标端数据库表集和涉及的字段。进一步的,步骤五中所述日志表中同步状态字段设为未执行状态。进一步的,所述目标数据库初始化步骤包括将源端相关数据,复制到目标端,构成数据同步的首个数据一致节点,根据数据库配置文件,利用步骤四中的初始化表,将初始化数据从源数据库复制到目标数据库中。进一步的,所述数据库同步采用即时同步或周期同步。进一步的,所述数据库同步具体为读取通过步骤五中获得的日志表中的同步状态为未执行状态的记录的操作语句字段,在目标端执行该操作语句,修改源端日志表中该记录的同步状态为已执行状态,记入同步时间。使用该方法使得能够在一次数据交换或数据同步时,仅对增量数据进行,对数据操作的业务流程通过主动数据库技术全部封装在源端的DBMS中,保证了数据交换应用程序与数据库的独立性。本发明利用了数据库技术、主动数据库技术、XML技术和JDBC技术。


图1为数据库配置流程图2为目标数据库初始化流程图3为数据库同步流程图。
具体实施例方式下面结合附图对本发明作进一步说明。一种基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,包括如下步骤1.确定数据交换的目标端和源端的数据库引擎,以便于访问。
2.确定数据交换的目标端数据与源端数据的对应关系,以及目标端对源端数据进行计算和处理的业务需求。包括源端数据库表集和涉及的字段、目标端数据库表集和涉及的字段。3.在源端数据库中创建初始化表和增量数据日志表。初始化表中包括ID、目标端执行的操作命令等信息。增量数据日志表中包括ID、目标端执行的操作命令、命令的操作类型、数据修改时间、同步状态、同步执行时间等主要信息。这一点是与现有其他方法的主要区别之一。4.在源端的数据库中,利用存储过程将6. 2中同步初始化所需要的数据对应在目标端执行的操作命令,写到3中的初始化表中。5.在源端的相关表上利用主动数据库技术,以触发器作为规则,对数据进行增删改作为条件,将对目标端进行的同步操作语句作为事件设计和定义ECA规则。具体做法是,利用源端数据库管理系统提供的主动数据服务功能,在源表上设计增、删、改触发器,将源端的数据变动对应的目标端的数据同步操作的操作语句拼成字符串插入3描述的日志表中,其中,“同步状态”字段设为未执行状态。将同步涉及数据库端的主要操作,封装在DBMS中,减少网络的传输负荷,做到同步调用的应用程序(6中叙述的应用程序)与同步数据库由较强的独立性。这也是与现有其他方法的主要区别之一。6.设置数据交换和数据同步应用步骤。该步骤的功能包括数据库配置、目标数据库初始化和数据库同步三大主要功能。6.1如图1所示,数据库配置,主要实现对该应用步骤所处的工作环境的数据库信息进行配置,如数据库引擎、JDBC驱动和所需同步的数据库信息等。用户在XML文件中配置数据库信息后,设置异构数据库需同步信息,包括数据库名及涉及的表等。6.2如图2所示,目标数据库初始化,实现将源端相关数据,复制到目标端,构成数据同步的首个数据一致节点。根据数据库配置文件,利用4中的初始化表,将初始化数据从源数据库复制到目标数据库中。6. 3如图3所示,数据库同步,实现源数据库和目标数据库的即时或者周期性的增量数据同步功能。同步前在XML文件中配置数据库信息后,设置源端和目标端的数据库、日志表及其连接信息,设置同步方式(即时同步或周期同步)。建立同步数据库间的连接通道。利用JAVA JDBC的“事务机制”,以保证数据同步的完整性和一致性。事务开始,读取通过4写在3描述的日志表中的“同步状态”为未执行状态的记录的“操作语句”字段,在目标端执行该操作语句,修改源端日志表中该记录的“同步状态”为已执行状态,记入同步时间,事务结束。本发明的基于主动数据库技术的同异构DBMS间数据交换与数据同步方法通过数据库技术和主动数据库技术,通过存储过程将初始化操作语句集写入初始化表,通过触发器将增量数据以主动数据服务形成操作语句记录在日志表中。这一过程不需要外部应用程序干预,起到了数据同步操作对数据库端的最大封装效果。使数据同步应用程序对不同的数据同步需求具有较好的独立性。即当数据同步需求发生变化时,只需要改动数据库服务器上存储过程和触发器,而应用程序不需要变动。由于对源端数据库的操作(同步数据准备)是以数据库技术和主动数据库技术实现的,因此,不仅减少了应用程序与数据库服务器之间的数据传输,而且提高了数据同步的时间效率。在数据同步过程中,DBA (数据库管理员)只为应用程序设计者或操作人员提供源端的初始化表和日志表的读写权限,对目标端数据库,只提供对同步目标表的读写权限,其它所有数据对数据交换的应用程序是封闭的。因此本发明较其它方法更好地保障了数据的安全性和权威性。以上所述及图中所示的仅是本发明的优选实施方式。应当指出,对于本领域的普通技术人员来说,在不脱离本发明的原理的前提下,还可以作出若干变型和改进,这些也应视为属于本发明的保护范围。
权利要求
1.一种基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,包括如下步骤一.确定数据同步的源端和目标端数据环境;二.确定目标端与源端数据的对应关系;三.在源端数据库中建立初始化表和日志表,所述初始化表中包括字段ID、目标端执行的操作命令,所述日志表中包括字段ID、目标端执行的操作命令、命令的操作类型、数据修改时间、同步状态、同步执行时间;四.在源端的数据库中,利用存储过程将同步初始化所需要的数据,形成对应在目标端执行的操作命令,并将该操作命令写到步骤三中建立的初始化表中;五.在数据同步的源端涉及的表上,建立插入、修改、删除触发器,将每次数据变动需要在目标端执行的同步操作命令拼接成字符串,作为所述日志表的所述操作命令字段的值,形成日志表中的一条记录;六.数据交换和数据同步步骤(一)数据库配置;(二)目标数据库初始化;(三)数据库同步。
2.如权利要求1所述的基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,其特征在于步骤一中所述源端和目标端数据环境包括数据库引擎,同步信息所在的表、涉及的字段。
3.如权利要求1所述的基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,其特征在于步骤二中所述确定数据交换的目标端数据与源端数据的对应关系包括确定源端数据库表集和涉及的字段、目标端数据库表集及目标字段。
4.如权利要求1所述的基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,其特征在于步骤五中所述日志表中同步状态字段设为未执行状态。
5.如权利要求1所述的基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,其特征在于所述目标数据库初始化步骤包括将源端相关数据,复制到目标端,构成数据同步的首个数据一致节点,根据数据库配置文件,利用步骤四中的初始化表,将初始化数据从源数据库复制到目标数据库中。
6.如权利要求1所述的基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,其特征在于所述数据库同步采用即时同步或周期同步。
7.如权利要求4所述的基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,其特征在于所述数据库同步具体为读取通过步骤五中获得的日志表中的同步状态为未执行状态的记录的操作语句字段,在目标端执行该操作语句,修改源端日志表中该记录的同步状态为已执行状态,记入同步时间。
全文摘要
本发明公开了一种基于主动数据库技术的同异构DBMS间数据交换与数据同步方法,用于为同异构数据库间提供便捷、高效的数据交换和数据同步的方法。该方法,包括如下步骤确定数据同步的源端和目标端数据环境;确定目标端与源端数据的对应关系;在源端数据库中建立初始化表和日志表;在源端的数据库中,利用存储过程将同步初始化所需要的数据,形成对应在目标端执行的操作命令,并将该操作命令写到建立的初始化表中;在数据同步的源端涉及的表上,建立插入、修改、删除触发器,将每次数据变动需要在目标端执行的同步操作命令拼接成字符串,作为所述日志表的所述操作命令字段的值,形成日志表中的一条记录;数据交换和数据同步步骤。
文档编号G06F17/30GK103064976SQ20131001242
公开日2013年4月24日 申请日期2013年1月14日 优先权日2013年1月14日
发明者岳国英, 周志敏, 陈忠文, 张颖, 邓晓华 申请人:浙江水利水电专科学校
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1