CN102542007B - 关系型数据库之间的同步方法及系统 - Google Patents
关系型数据库之间的同步方法及系统 Download PDFInfo
- Publication number
- CN102542007B CN102542007B CN201110415778.5A CN201110415778A CN102542007B CN 102542007 B CN102542007 B CN 102542007B CN 201110415778 A CN201110415778 A CN 201110415778A CN 102542007 B CN102542007 B CN 102542007B
- Authority
- CN
- China
- Prior art keywords
- data
- database
- task
- file
- delta data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种关系型数据库之间的同步方法及系统。该关系型数据库之间的同步方法包括:建立多个数据库之间的针对变化数据的数据同步任务;解析所述数据同步任务;捕获源数据库中的变化数据;根据调度来执行所述数据同步任务。在本发明提供的技术方案中,将数据库之间的同步规则建立成任务来执行,使用数据库代理屏蔽数据库之间的异构性,通过触发器和捕获表实现变化数据捕获,并避免回环写入,通过调度器实现数据同步任务的定时和/或多线程执行。本发明具有简单易用、灵活高效的优点。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种关系型数据库之间的同步方法及系统。
背景技术
简单地说,数据库是按照数据结构来组织、存储和管理数据的仓库。数据库有很多种类型,从最简单的存储有各种数据的表格到能够进行海量数据存储的大型数据库系统都在财务管理、仓库管理、生产管理等各个方面得到了广泛的应用。
出于方便数据存储和管理以及数据安全等多方面的考虑,一个系统内部的各级部门之间以及各级部门内部往往存在多个数据库。同时,业务往来,相互合作,信息系统对信息共享提出了更高的要求。如何实现各个数据库之间的数据共享、数据同步,已经成为一个亟待解决的问题。
业务一直在不停的运转,所有这些相关的业务信息数据保存至源数据库。抽取增量变化的数据,还是将业务数据全部记录进行复制;抽取指定的数据列,还是抽取全部数据列;这些抽取得到的信息数据如何传输到目标数据库等等,这是必然面临的问题。
对不同业务数据建立的任务,对数据同步的时效性要求是不同的,比如当天交易量和部门结构变化,对数据同步的时效是明显不同。因而数据交换任务,即任务定时周期是不同的。需要解决任务按能够按照不同的周期进行同步。
各级部门之间,有着各种各样的业务联系,这种业务联系在数据库级别主要表现在数据关系表实体之间订制的同步关系。要保证业务的正常可靠的运作,就要实现业务相关的所有数据表都能实现同步,如部门调整,人员调动等等。因而,需要实现所有的任务并行执行。
更为重要的是,由于信息化建设的时间,程度,合作厂商的不同,各级部门之间往往存在着数据库异构的问题,这为数据同步带来了极大的困难。
目前随着信息化建设的深入,逐渐形成以DB2、ORACLE、SQLSERVER为主流数据库的信息化系统,现有的数据同步主要有以下解决方案:
数据库产品厂商随数据库产品提供的数据库复制解决方案,如MSSqlServer数据库的快照技术,事务复制技术,分别需要依赖SqlServer分发订阅服务器和数据库日志技术;Oracle流复制和高级复制技术,分别需要依赖数据库日志技术和触发器原理;DB2数据库的Q复制和SQL复制技术,分别需要依赖IBM webSphere MQ和数据库日志技术。这些技术对相应的数据库技术或者产品绑定的很紧密,并且,实施代价高通常需要配备专业的人员如DBA来进行。
数据库产品厂商提供的专业数据同步工具,一般依托数据库日志技术捕获数据变化,属于数据库复制技术的一种实现方式。即将数据库操作日志解析为程序能够识别的数据库操作语句,得到数据同步的数据源。数据库产品厂商可以根据自身数据库的优势,开发出相应的同步工具,如IBM CDC。这种专业数据同步工具的关键在于日志的解析,其与数据库产品耦合关系过于密切,操作复杂度高,难以适应任意异构数据库之间的数据同步。
发明内容
为了解决现有技术中存在的技术问题,本发明的主要目的在于提供一种关系型数据库之间的同步方法及系统。本发明所提供的关系型数据库之间的同步方法和系统在数据捕获时采用了触发器机制,是针对信息系统对数据同步的需求,根据当前数据库产品的相关技术特征,在降低人力,物力,方便使用部署的条件下产生的。并且,该方法无需开发人员了解数据库日志如何解析,也无需使用人员具有高超的数据库技术能力,使用人员也不需要知道触发器如何建立,只需要使用浏览器把需要同步的数据表建立成任务,通过调度来执行该任务即可。
为达到上述目的,本发明的关系型数据库之间的同步方法具体是这样实现的:
一种关系型数据库之间的同步方法,包括:建立多个数据库之间的针对变化数据的数据同步任务;解析所述数据同步任务;捕获源数据库中的变化数据;根据调度来执行所述数据同步任务。
相应地,在本发明提供的关系型数据库之间的同步方法中,通过把同步规则建立成任务,方便了对整个同步过程的管理。
优选地,所述数据同步任务包括:用于描述将源数据库的变化数据同步到目标数据库的任务信息文件;并且,建立多个数据库之间的针对变化数据的数据同步任务包括:
在所述数据同步任务先前未被执行过的情况下:将所述任务信息文件划分成用于抽取源数据库的变化数据的抽取模型文件和用于将变化数据加载到目标数据库的加载模型文件,其中所述抽取模型文件和所述加载模型文件之间通过中间模板数据文件实现格式转换;以及将所述抽取模型文件和所述加载模型文件发送到所述数据库代理;
在所述数据同步任务先前已被执行过的情况下:将所述数据同步任务的标识号发送给所述数据库代理,以便所述数据库代理自行获取所述抽取模型文件和所述加载模型文件。
相应地,中间模板数据文件实现了解决了异构数据库之间的字段类型的简单转换,解决了数据格式不统一的问题,方便了数据的导出和导入。数据库代理通过使用中间模板数据文件屏蔽了数据库的异构性,对不同的数据库适配器提供了统一的访问接口。
优选地,解析所述数据同步任务包括:所述数据库代理在获取所述抽取模型文件之后,对所述抽取模型文件进行解析以获取与从源数据库中抽取变化数据相关的抽取细节信息。
优选地,根据调度来执行所述数据同步任务包括:向所述数据库代理发送执行任务的命令;响应于所述执行任务的命令,所述数据库代理从所述源数据库中抽取变化数据,并将所述变化数据加载到目标数据库。
优选地,所述数据库代理从所述源数据库中抽取变化数据包括:所述数据库代理根据所述抽取细节信息抽取所述捕获表中的变化数据,并将所述变化数据进行格式转换以保存在所述中间模板数据文件中。并且,将所述变化数据加载到目标数据库包括:根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换,并将格式转换后的变化数据加载到所述目标数据库。
优选地,所述源数据库的数据库代理为源数据库代理,所述目标数据库的数据库代理为目标数据库代理,所述源数据库代理和所述目标数据库代理是不同的数据库代理。将所述抽取模型文件和所述加载模型文件发送到所述数据库代理包括:将所述抽取模型文件发送到所述源数据库代理,将所述加载模型文件发送到所述目标数据库代理。所述数据库代理从所述源数据库中抽取变化数据包括由所述源数据库代理执行的下列操作:根据所述抽取细节信息抽取所述捕获表中的变化数据;将所述变化数据进行格式转换以保存在所述中间模板数据文件中;将所述中间模板数据文件上传到数据传输通道;以及返回用于获取所述中间模板数据文件的回执消息。将所述变化数据加载到目标数据库包括由所述目标数据库代理执行的下列操作:根据所述回执消息从所述数据传输通道获取所述中间模板数据文件;根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换;以及将格式转换后的变化数据加载到所述目标数据库。
优选地,所述数据库代理从所述源数据库中抽取变化数据进一步包括由所述源数据库代理执行的下列操作:在将所述中间模板数据文件上传到数据传输通道之前,对所述中间模板数据文件进行加密。其中,所述回执消息包括解密密钥。并且将所述变化数据加载到目标数据库进一步包括由所述目标数据库代理执行的下列操作:在根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换之前,利用所述回执消息中的解密密钥对从所述数据传输通道获取的中间模板数据文件进行解密。
优选地,在所述数据库代理没有从所述源数据库中抽取到变化数据的情况下,返回任务结束的消息;并且/或者在将所述变化数据加载到目标数据库的情况下,返回加载成功的消息。
优选地,捕获源数据库中的变化数据包括:创建用于触发对变化数据的捕获的触发器,并且所述触发器将所捕获的变化数据存储在捕获表中。
相应地,通过触发器和捕获表的机制,牺牲部分存储空间,换来简单有效,很灵活的解决了数据捕获问题,并具有良好的时效性。
优选地,捕获源数据库中的变化数据进一步包括:设置用于执行业务数据操作的连接用户和用于执行数据同步任务的交换用户。所述触发器在触发对变化数据的捕获之前,判断所述变化数据所对应的用户是连接用户还是交换用户。如果所述变化数据所对应的用户是连接用户,则所述触发器触发对变化数据的捕获;如果所述变化数据所对应的用户是交换用户,则所述触发器不触发对变化数据的捕获。
相应地,通过设置连接用户和交换用户,触发器可以仅捕获非数据同步操作导致的变化数据,避免了回环写入的发生。
优选地,根据调度来执行所述数据同步任务包括:根据所述数据同步任务中规定的任务开始时间和任务运行周期向所述数据库代理发送执行任务的命令。
相应地,该方法实现了数据同步任务的定时执行。
优选地,建立多个数据库之间的针对变化数据的数据同步任务包括:建立多个数据库之间的多个数据同步任务。并且,向所述数据库代理发送执行任务的命令包括:根据所述多个数据同步任务中的各个数据同步任务中规定的任务开始时间和任务运行周期向所述数据库代理发送执行相应任务的命令。
相应地,该方法实现了多个数据同步任务的并发调度执行。
本发明的关系型数据库之间的同步方法具体是这样实现的:
一种关系型数据库之间的同步系统,包括:数据同步任务建模接口,用于建立多个数据库之间的针对变化数据的数据同步任务;数据库代理,用于解析所述数据同步任务;触发器,用于捕获源数据库中的变化数据;以及调度器,用于调度所述数据库代理以执行所述数据同步任务。
相应地,在本发明提供的关系型数据库之间的同步系统中,通过把同步规则建立成任务,方便了对整个同步过程的管理。
优选地,所述数据同步任务包括:用于描述将源数据库的变化数据同步到目标数据库的任务信息文件。并且,所述调度器进一步用于:所述数据同步任务先前未被执行过的情况下:将所述任务信息文件划分成用于抽取源数据库的变化数据的抽取模型文件和用于将变化数据加载到目标数据库的加载模型文件,其中所述抽取模型文件和所述加载模型文件之间通过中间模板数据文件实现格式转换;以及将所述抽取模型文件和所述加载模型文件发送到所述数据库代理;在所述数据同步任务先前已被执行过的情况下:将所述数据同步任务的标识号发送给所述数据库代理,以便所述数据库代理自行获取所述抽取模型文件和所述加载模型文件。
相应地,中间模板数据文件实现了解决了异构数据库之间的数据字段类型的简单转换,解决了数据格式不统一的问题,方便了数据的导出和导入。数据库代理通过使用中间模板数据文件屏蔽了数据库的异构性,对不同的数据库适配器提供了统一的访问接口。
优选地,所述数据库代理通过在获取所述抽取模型文件之后,对所述抽取模型文件进行解析以获取与从源数据库中抽取变化数据相关的抽取细节信息,来解析所述数据同步任务。
优选地,所述调度器通过向所述数据库代理发送执行任务的命令来调度所述数据库代理,并且所述数据库代理响应于所述执行任务的命令,从所述源数据库中抽取变化数据,并将所述变化数据加载到目标数据库。
优选地,所述数据库代理在从所述源数据库中抽取变化数据时,根据所述抽取细节信息抽取所述捕获表中的变化数据,并将所述变化数据进行格式转换以保存在所述中间模板数据文件中;并且/或者所述数据库代理将所述变化数据加载到目标数据库时,根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换,并将格式转换后的变化数据加载到所述目标数据库。
优选地,所述源数据库的数据库代理为源数据库代理,所述目标数据库的数据库代理为目标数据库代理,所述源数据库代理和所述目标数据库代理是不同的数据库代理。所述调度器将所述抽取模型文件发送到所述源数据库代理,将所述加载模型文件发送到所述目标数据库代理;所述源数据库代理用于:根据所述抽取细节信息抽取所述捕获表中的变化数据;将所述变化数据进行格式转换以保存在所述中间模板数据文件中;将所述中间模板数据文件上传到数据传输通道;以及返回用于获取所述中间模板数据文件的回执消息。所述目标数据库代理用于:根据所述回执消息从所述数据传输通道获取所述中间模板数据文件;根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换;以及将格式转换后的变化数据加载到所述目标数据库。
优选地,所述源数据库代理进一步用于:在将所述中间模板数据文件上传到数据传输通道之前,对所述中间模板数据文件进行加密。其中,所述回执消息包括解密密钥。并且所述目标数据库代理进一步用于:在根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换之前,利用所述回执消息中的解密密钥对从所述数据传输通道获取的中间模板数据文件进行解密。
优选地,所述数据库代理进一步用于:在没有从所述源数据库中抽取到变化数据的情况下,向所述调度器返回任务结束的消息;并且/或者在将所述变化数据加载到目标数据库的情况下,向所述调度器返回加载成功的消息。
优选地,所述触发器通过触发对变化数据的捕获,并且将所捕获的变化数据存储在捕获表中,来实现变化数据的捕获。
相应地,通过触发器和捕获表的机制,牺牲部分存储空间,换来简单有效,很灵活的解决了数据捕获问题,并具有良好的时效性。
优选地,所述触发器进一步用于:触发对变化数据的捕获之前,判断所述变化数据所对应的用户是用于执行业务数据操作的连接用户还是用于执行数据同步任务的交换用户。其中,如果所述变化数据所对应的用户是连接用户,则所述触发器触发对变化数据的捕获;如果所述变化数据所对应的用户是交换用户,则所述触发器不触发对变化数据的捕获。
相应地,通过设置连接用户和交换用户,触发器可以仅捕获非数据同步操作导致的变化数据,避免了回环写入的发生。
优选地,所述调度器根据所述数据同步任务中规定的任务开始时间和任务运行周期向所述数据库代理发送执行任务的命令。
相应地,该系统实现了数据同步任务的定时执行。
优选地,所述数据同步任务建模接口能够建立多个数据库之间的多个数据同步任务;并且,在所述数据同步任务建模接口建立多个数据同步任务的情况下,所述调度器根据所述多个数据同步任务中的各个数据同步任务中规定的任务开始时间和任务运行周期向所述数据库代理发送执行相应任务的命令。
相应地,该系统实现了多个数据同步任务的并发调度执行。
附图说明
下面参照附图描述本发明的实施例,在附图中:
图1示出了本发明提供的关系型数据库之间的同步方法的简单流程图。
图2示出了在运行一项数据同步任务的一个周期中所执行的具体步骤。
图3示出了本发明第一实施例提供的关系型数据库之间的同步系统的框图。
图4示出了多个数据库共用一个数据库代理的示意图。
图5示出了多个数据库使用多个数据库代理的示意图。
图6示出了本发明第二实施例提供的关系型数据库之间的同步系统的框图。
图7示出了数据源封装结构。
图8示出了一个中心系统的总部、总部、支部三级数据汇总结构。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举出优选实施例,对本发明进一步详细说明。然而,需要说明的是,说明书中列出的许多细节仅仅是为了使读者对本发明的一个或多个方面有一个透彻的理解,即便没有这些特定的细节也可以实现本发明的这些方面。
本发明的主要思想包括:将数据库之间的同步规则建立成任务来执行;使用数据库代理屏蔽数据库之间的异构性;通过触发器和捕获表实现变化数据捕获,并避免回环写入;通过调度器实现数据同步任务的定时和/或多线程执行。
首先,介绍本发明提供的关系型数据库之间的同步方法。
如图1所示,示出了本发明提供的关系型数据库之间的同步方法的简单流程图。该关系型数据库之间的同步方法包括以下步骤:
建立多个数据库之间的针对变化数据的数据同步任务101;
解析数据同步任务102;
捕获源数据库中的变化数据103;
根据调度来执行数据同步任务104。
下面进行具体描述。
步骤101:建立多个数据库之间的针对变化数据的数据同步任务。
用户可以使用面向用户的图形界面化建模工具,通过数据同步任务建模接口来对多个数据库之间的数据同步任务进行建模。该面向用户的图形界面化建模工具为基于Flex的B/S数据同步建模工具,继承B/S模式客户端零维护的优势,并提供更快、更好的用户体验。是使用人员在没有数据库技术储备的前提下采纳本方案的保证。
数据同步建模工具首先解决了以下流程模型问题:
基本建模元素构建:画布、网格、流程节点、带箭头连线、工具栏、菜单栏;
绘图区图层设计,保证元素间应有的遮挡关系:自底向上分别为画布区域、网格区域、连线区域、流程节点区域;
用户行为:
流程节点拖拽;
流程节点间的连线;
流程组织:定义从至关系,描述流程顺序。
为数据同步建模提供以下支持:
映射关系配置:选择源表、选择目标表及其字段间映射关系配置;
转换功能模块化:定制转换模块,对流程节点输入数据定义转换模型,并模拟输出结果,如表关联、字段复制、字段拆分、值替换、字段添加等;
特征抽象:关系数据库表抽象、转换功能抽象、同步方式抽象,描述数据同步模型;
数据缓存:表结构缓存、转换特征缓存、同步方式缓存,一次加载,重复使用;
完整的输入校验:实时校验用户输入,保证数据格式与物理表结构完全匹配;
构造/解析XML格式模型:将图形化数据同步模型抽象特征构造为XML格式数据,当得到符合解析模板的XML数据,可反向生成图形化模型,并可再次编辑。
在数据同步任务建模成功之后,数据同步任务建模接口将数据同步任务发送给调度器。其中,该数据同步任务包括用于描述将源数据库的变化数据同步到目标数据库的任务信息文件。该任务信息文件可以划分成用于抽取模型文件和加载模型文件。抽取模型文件包含所对应任务的源表和中间模板数据文件信息、字段对应关系、过滤条件、转换方式、关联信息等任务抽取相关信息。加载模型文件包含所对应任务的中间模板数据文件和目标表信息、字段对应关系等任务加载相关信息。其中,抽取模型文件和加载模型文件之间通过中间模板数据文件连接以实现格式转换。在本申请文件的具体实施方式的最后提供了抽取模型XML文件的示例。
步骤102:解析数据同步任务。
在该步骤中,可以将任务信息文件解析为数据库代理能够读取的格式保存。具体来说,在数据同步任务模型XML的基础上,将数据同步任务划分为抽取(包含清洗和转换步骤)和加载两部分,这两部分由一个中间模板数据文件来连接。
中间模板数据文件起到统一数据格式,即异构数据库对象的同一化作用。如Oracle数据库的NUMBER(10)类型字段和DB2数据库的INTEGER类型字段,为不同类型但相互兼容的字段,定义一个如MYNUMBER类型字段,作为中间字段,来连接这两个不同字段,达到异构数据库同步的目的,对应数据库常用字段类型提供了对应的中间模板类型,主要包括String,Number,Integer,Date,Boolean,Binary,通过这种方式对表字段提供了兼容性,即无需表的设计必须一致,而且还提供了基本定制SQL语句where条件的数据过滤以及对数据字段简单转换的功能,包括字段值替换,字段值拆分,添加常量等。
使用抽取模型文件和加载模型文件来描述这两部分过程。首先利用抽取模型文件将源数据库中的变化数据抽取到中间模板数据文件,再利用加载模型文件将中间模板数据文件中的变化数据加载到目标数据表。例如抽取模型文件可以包括如图7所示的数据源封装结构。
步骤103:捕获源数据库中的变化数据。
在用户建立数据同步任务的同时,系统为对应的数据对象自动创建触发器和捕获表。触发器记录当前操作数据的类型(插入、修改、删除),执行操作的数据库用户,执行操作的时间戳,并将这些信息与操作的数据记录一并保存至捕获表。通过数据记录的主键来对应被同步双方(源表和目标表)的数据记录,根据操作数据的类型决定加载到目标表的方式,根据执行操作的时间戳决定周期同步的数据范围。
本方法可以支持创建回环任务对,即两个数据表互为“源”和“目标”。在这种情况下,可以在触发器中加入对数据库操作的判断,避免了互为“源”及“目标”表的变化捕获表被同步软件回环写入的发生。具体操作方式如下:在每个数据库中设置两个数据库用户,一个是作为源的数据表所使用的用户,称之为连接用户,一个是数据同步专用的用户,称之为交换用户。业务操作不会使用数据同步专用的交换用户操作源表,而在数据同步过程中使用交换用户进行数据加载至目标表的操作。目标表的触发器判断即将执行数据操作的用户是交换用户,则不予以捕获变化,即未发生写入变化数据捕获表的动作。这样,触发器可以仅捕获非数据同步软件对数据表的操作,以避免回环写入的发生。
步骤104:根据调度来执行所述数据同步任务。
该步骤由负责处理任务按周期执行的调度器和负责对数据库数据对象进行抽取、转换、加载的数据库代理来实现。
通过建立数据同步任务得到的各个任务,启动以后,在任务池中等待调度器调度。每个任务在到达预定的任务执行时间后,调度器将发送任务消息给数据库代理运行任务。数据库代理获取任务,负责执行任务。
在本发明提供的关系型数据库之间的同步方法中,数据库代理可以采用多线程处理方式,同时启动若干个线程接收来自调度器的消息,根据调度器发来的任务所处不同阶段的标识消息,分别处理不同任务的不同阶段,从而达到多任务并发执行。
在本发明提供的关系型数据库之间的同步方法中,调度器主要负责全局任务的定时调度执行,在数据同步任务建模的过程中为每个任务定义任务开始时间,任务结束时间和任务运行周期(如1分钟、8小时、1天等),在任务开始时间和结束时间之间启动任务均可实现任务按运行周期触发。如一个任务设定为2011年11月16日13:05:40开始,2012年11月16日13:05:40结束,任务周期为1分钟,使用者在2011年11月16日13:10:05启动任务,如果该任务的执行时间在1分钟之内可以完成,那么任务将在13:10:40,13:11:40,13:12:40......触发,以此类推。如果该任务的某个执行周期在1分钟之内未完成,那么下次任务执行时间将顺延。
在本发明提供的关系型数据库之间的同步方法中,通过把表映射以及各种各样的同步规则建立成任务,整个过程的管理提供了方便,很容易对任务运行的整个流程进行监控管理;通过触发器和捕获表的机制,牺牲部分存储空间,换来简单有效,很灵活的解决了数据捕获的问题,并具有良好的时效性;灵活高效的数据库代理,为数据的导入导出,过滤加密等提供了丰富的支持,并能方便的扩展,增加处理的性能。对任务进行定时和/或并发调度执行,大大提高了系统的处理能力。
下面详细描述根据本发明提供的关系型数据库之间的数据同步方法中,在建立数据同步任务之后,在运行一项数据同步任务的一个周期中所执行的具体步骤。
图2示出了在运行一项数据同步任务的一个周期中所执行的具体步骤。如图2所示,在运行一项数据同步任务的一个周期中主要执行下列步骤:
步骤201:调度器向源数据库代理发送抽取模型文件,向目标数据库代理发送加载模型文件;或者调度器将数据同步任务标识号发送给源数据库代理和目标数据库代理,源数据库代理自行获取对应的抽取模型文件,目标数据库代理自行获取对应的加载模型文件。
如上所述,抽取模型文件包含所对应任务的源表和中间模板数据文件信息、字段对应关系、过滤条件、转换方式、关联信息等任务抽取相关信息。加载模型文件包含所对应任务的中间模板数据文件和目标表信息、字段对应关系等任务加载相关信息。
首先需要确定调度器和数据库代理先前是否执行过此数据同步任务。如果确定此数据同步任务先前未被执行过,则调度器向源数据库代理发送抽取模型文件,向目标数据库代理发送加载模型文件。
如果确定此数据同步任务先前已被执行过,则将数据同步任务的标识号发送给源数据库代理和目标数据库代理,以便源数据库代理自行获取(例如,从数据库中获取)对应的抽取模型文件,目标数据库代理自行获取对应的加载模型文件。
步骤202:源数据库代理对抽取模型文件进行解析以获取与从源数据库中抽取变化数据相关的抽取细节信息。
抽取细节信息可以包括:源数据库的连接信息、调度器的相关信息、变化数据的抽取规则等等。
如上所述,中间模板数据文件起到统一数据格式,即异构数据库对象的同一化作用。为了连接不同数据库中的不同类型但相互兼容的字段,在中间模板数据文件中定义一个中间类型字段,来连接这两个不同字段。
步骤203:源数据库代理根据抽取细节信息将捕获表中的变化数据抽取至中间模板数据文件。
具体来说,源数据库代理根据抽取细节信息抽取任务源表对应的捕获表中符合当前周期范围内的变化数据,并将所述变化数据进行格式转换以保存在所述中间模板数据文件中。
步骤204:判断是否抽取到变化数据;如果抽取到变化数据,则把中间模板数据文件按照自定义格式加密打包,打包文件名、解密密钥随机生成;如果没有抽取到变化数据,则通知调度器本轮任务结束。
步骤205:在抽取到变化数据的情况下,将中间模板数据文件上传到数据传输通道。
例如,该数据传输通道可以是FTP服务器。
步骤206:源数据库代理在完成上传后,向调度器发送回执消息,该回执消息可以包括中间模板数据文件所在位置、文件名、解密密钥。
步骤207:调度器接收到回执消息后,将回执消息发送给目标数据库代理。
步骤208:目标数据库代理解析回执消息以提取中间模板数据文件所在位置、文件名,并从数据传输通道(FTP服务器)获取经加密的中间模板数据文件,然后使用解密密钥解密得到中间模板数据文件。
步骤209:目标数据库代理根据加载模型文件和中间模板数据文件将同步数据加载到目标数据库。
具体来说,目标数据库代理可以根据加载模型文件对中间模板数据文件中的变化数据进行格式转换,并将格式转换后的变化数据加载到目标数据库。
步骤210:目标数据库代理在同步数据加载成功后,向调度器返回加载成功的消息。
本领域技术人员应当理解,数据同步任务的一个运行周期不限于上述步骤。例如,中间模板数据文件的加密和解密即属于可选的步骤。
另外,源数据库代理和目标数据库代理可以是同一个数据库代理。在这种情况下,可以省略步骤204-208。也就是说,不需要将中间模板数据文件上传到数据传输通道上,数据库代理可以直接利用加载模型文件对在抽取步骤中获得的中间模板数据文件进行格式转换,以获得符合目标数据库的数据格式的变化数据。
本领域技术人员可以理解,本发明提供的关系型数据库之间的同步方法同样适用于同构数据库之间的数据同步。在同构数据库的情况下,数据库代理甚至不需要使用中间模板数据文件,而是只需将从源数据库抽取的变化数据直接加载到目标数据库即可。
下面描述本发明提供的关系型数据库之间的数据同步系统。
图3示出了本发明第一实施例提供的关系型数据库之间的数据同步系统的框图。如图3所示,该系统包括:数据同步任务建模接口301、数据库代理302、触发器303和调度器304。其中,数据同步任务建模接口301用于建立多个数据库之间的针对变化数据的数据同步任务,数据库代理302用于解析所述数据同步任务;触发器303用于捕获源数据库中的变化数据,调度器304用于调度所述数据库代理以执行所述数据同步任务。
具体来说,用户可以通过数据同步任务建模接口301来对多个数据库之间的数据同步任务进行建模。在数据同步任务建模成功之后,数据同步任务建模接口301将数据同步任务发送给调度器304。该数据同步任务可以包括:用于描述将源数据库的变化数据同步到目标数据库的任务信息文件。
触发器303记录当前操作数据的类型(插入、修改、删除),执行操作的数据库用户,执行操作的时间戳,并将这些信息与操作的数据记录一并保存至捕获表。通过数据记录的主键来对应被同步双方(源表和目标表)的数据记录,根据操作数据的类型决定加载到目标表的方式,根据执行操作的时间戳决定周期同步的数据范围。
本系统可以支持建立回环任务对,即两个数据表互为“源”和“目标”。在这种情况下,触发器303进一步对数据库操作进行判断,以避免互为“源”及“目标”表的变化捕获表被同步软件回环写入的发生。具体操作方式如下:在每个数据库中设置两个数据库用户,一个是作为源的数据表所使用的用户,称之为连接用户,一个是数据同步专用的用户,称之为交换用户。业务操作不会使用数据同步专用的交换用户操作源表,而在数据同步过程中使用交换用户进行数据加载至目标表的操作。目标表的触发器303判断即将执行数据操作的用户是交换用户,则不予以捕获变化,即未发生写入变化数据捕获表的动作。这样,触发器303可以仅捕获非数据同步软件对数据表的操作,以避免回环写入的发生。
调度器304在从数据同步任务建模接口301接收到数据同步任务之后,判断先前是否执行过此数据同步任务。如果确定此数据同步任务先前未被执行过,则调度器304向数据库代理302发送抽取模型文件和加载模型文件。如果确定此数据同步任务先前已被执行过,则调度器304将数据同步任务的标识号发送给数据库代理302,以便数据库代理302自行获取抽取模型文件和加载模型文件。
并且,调度器304根据数据同步任务中规定的任务开始时间和任务运行周期向数据库代理302发送执行任务的命令。
数据库代理302在获取抽取模型文件之后,对抽取模型文件进行解析以获取与从源数据库中抽取变化数据相关的抽取细节信息,例如,源数据库的连接信息、调度器的相关信息、变化数据的抽取规则等等。
数据库代理302在接收到执行任务的命令之后,开始执行数据同步任务。首先,数据库代理302从源数据库中抽取变化数据。此时,数据库代理302根据所述抽取细节信息抽取捕获表中的变化数据,并将所述变化数据进行格式转换以保存在所述中间模板数据文件中。在数据库代理302没有从源数据库中抽取到变化数据的情况下,向所述调度器304返回任务结束的消息。
接下来,数据库代理302将变化数据加载到目标数据库。此时,数据库代理302根据加载模型文件对中间模板数据文件中的变化数据进行格式转换,并将格式转换后的变化数据加载到目标数据库。在数据库代理302将变化数据加载到目标数据库的情况下,向调度器304返回加载成功的消息。
在本实施例中,数据同步系统中的各个部件采用分布式架构,调度器304、数据库代理302之间通过消息通信。其中数据数据库代理302可以是与业务数据库运行于同一网络中的后台程序。
在该实施例中,源数据库和目标数据库共用相同的数据库代理。如图4所示,当交换数据量不大的情况下,可以几个数据库使用一个数据库代理。然而,数据量较大时可以通过添加数据库代理来扩展,可按实际同步任务量增加数据库代理的数目,每一个数据库代理都在调度器被注册,如图5所示。接下来描述本发明第二实施例提供的关系型数据库之间的数据同步系统,其中源数据库和目标数据库采用不同的数据库代理。
图6示出了本发明第二实施例提供的关系型数据库之间的数据同步系统的框图。如图6所示,该系统包括:数据同步任务建模接口601、源数据库代理602、触发器603、调度器604和目标数据库代理605。其中,数据同步任务建模接口601用于建立多个数据库之间的针对变化数据的数据同步任务,源数据库代理602用于抽取源数据库中的变化数据;触发器603用于捕获源数据库中的变化数据,调度器604用于调度源数据库代理和目标数据库代理以执行数据同步任务,目标数据库代理605用于将变化数据加载到目标数据库中。
具体来说,用户可以使用面向用户的图形界面化建模工具,通过数据同步任务建模接口601来对多个数据库之间的数据同步任务进行建模。在数据同步任务建模成功之后,数据同步任务建模接口601将数据同步任务发送给调度器604。该数据同步任务可以包括:用于描述将源数据库的变化数据同步到目标数据库的任务信息文件。
触发器603记录当前操作数据的类型(插入、修改、删除),执行操作的数据库用户,执行操作的时间戳,并将这些信息与操作的数据记录一并保存至捕获表。通过数据记录的主键来对应被同步双方(源表和目标表)的数据记录,根据操作数据的类型决定加载到目标表的方式,根据执行操作的时间戳决定周期同步的数据范围。
本系统可以支持建立回环任务对,即两个数据表互为“源”和“目标”。在这种情况下,在互为源数据库和目标数据库的数据库中均创建触发器603。触发器603进一步对数据库操作进行判断,以避免互为“源”及“目标”表的变化捕获表被同步软件回环写入的发生。具体操作方式如下:在每个数据库中设置两个数据库用户,一个是作为源的数据表所使用的用户,称之为连接用户,一个是数据同步专用的用户,称之为交换用户。业务操作不会使用数据同步专用的交换用户操作源表,而在数据同步过程中使用交换用户进行数据加载至目标表的操作。目标表的触发器603判断即将执行数据操作的用户是交换用户,则不予以捕获变化,即未发生写入变化数据捕获表的动作。这样,触发器603可以仅捕获非数据同步软件对数据表的操作,以避免回环写入的发生。
调度器604在接收到数据同步任务之后,判断先前是否执行过此数据同步任务。如果确定此数据同步任务先前未被执行过,则调度器604向源数据库代理602发送抽取模型文件,并向目标数据库代理605发送加载模型文件。如果确定此数据同步任务先前已被执行过,则调度器604将数据同步任务的标识号发送给源数据库代理602和目标数据库代理605,以便源数据库代理602自行获取抽取模型文件,目标数据库代理605自行获取加载模型文件。
并且,调度器604根据数据同步任务中规定的任务开始时间和任务运行周期向源数据库代理602发送执行任务的命令。
源数据库代理602在获取抽取模型文件之后,对抽取模型文件进行解析以获取与从源数据库中抽取变化数据相关的抽取细节信息,例如,源数据库的连接信息、调度器的相关信息、变化数据的抽取规则等等。
源数据库代理602在接收到执行任务的命令之后,开始执行数据同步任务。首先,源数据库代理602从源数据库中抽取变化数据。此时,数据库代理602根据所述抽取细节信息抽取捕获表中的变化数据,并将所述变化数据进行格式转换以保存在所述中间模板数据文件中。在源数据库代理602没有从源数据库中抽取到变化数据的情况下,向调度器604返回任务结束的消息。
接下来,源数据库代理602将中间模板数据文件上传到数据传输通道,例如FTP服务器中,并向调度器604返回用于获取所述中间模板数据文件的回执消息。回执消息可以包括中间模板数据文件所在位置、文件名、解密密钥。
调度器604接收到回执消息后,将回执消息发送给目标数据库代理605。
目标数据库代理605解析回执消息以提取中间模板数据文件所在位置、文件名,并从数据传输通道获取经加密的中间模板数据文件,然后使用回执消息中的解密密钥解密得到中间模板数据文件。
接下来,目标数据库代理605根据加载模型文件对中间模板数据文件中的变化数据进行格式转换,并将格式转换后的变化数据加载到所述目标数据库。
目标数据库代理605在同步数据加载成功后向调度器返回加载成功的消息。
在本实施例中,数据同步任务建模接口601能够建立多个数据库之间的多个数据同步任务。在数据同步任务建模接口601建立多个数据同步任务的情况下,调度器604根据多个数据同步任务中的各个数据同步任务中规定的任务开始时间和任务运行周期向源数据库代理602发送执行相应任务的命令。
本领域技术人员可以理解,本发明提供的关系型数据库之间的同步系统同样适用于同构数据库之间的数据同步。在同构数据库的情况下,数据库代理甚至不需要使用中间模板数据文件,而是只需将从源数据库抽取的变化数据直接加载到目标数据库即可。
某中心系统数据同步实施案例
该中心系统组织结构分为总部、分部、支部三级。总部、分部和支部各自拥有一系列业务库和一个汇总业务库的基础库,基础库用于汇总同级业务库数据,并同步下级基础库数据。分部业务人员要求在第一时间获得所需的支部业务数据,总部业务人员要求在第一时间获得所需的总部和支部业务数据。
各级内部按实际业务需求建立各自业务库与基础库之间的数据同步交换任务。总部、分部、支部三级数据汇总结构如图8所示。分部业务人员通过本软件建立并启动以【支部基础库】为源,【分部基础库】为目标的库对库同步数据交换任务,在任务建立中勾选“插入目标捕获表”;分部业务人员建立并启动以【分部基础库】为源,【总部基础库】为目标的库对库同步数据交换任务。
支部-分部任务将支部更新数据同步到【分部基础库】,并同时将支部更新历史插入【分部捕获表】,分部-总部任务将【分部捕获表】中记录的更新数据同步到【总部基础库】。【分部捕获表】既作为支部-分部任务的目标捕获表,又作为分部-总部的源捕获表,它保存了支部以及分部基础库的更新情况,保证了总部能够同步响应支部和分部的更新操作。
虽然这里参照特定的实施例描述了本发明,但是需要明白的是,这些实施例是示例性的,并且,本发明的范围并不限于这些实施例。对上面所描述的实施例的很多变形、修改、增加和改进都是可能的。可以预料到,这些变形、修改、增加和改进都落入权利要求所限定的保护范围。
抽取模型XML文件
Claims (11)
1.一种关系型数据库之间的同步方法,包括:建立多个数据库之间的针对变化数据的数据同步任务;解析所述数据同步任务;捕获源数据库中的变化数据;以及根据调度来执行所述数据同步任务,其中,
所述数据同步任务包括:用于描述将源数据库的变化数据同步到目标数据库的任务信息文件;
建立多个数据库之间的针对变化数据的数据同步任务包括:
在所述数据同步任务先前未被执行过的情况下:
将所述任务信息文件划分成用于抽取源数据库的变化数据的抽取模型文件和用于将变化数据加载到目标数据库的加载模型文件,其中所述抽取模型文件和所述加载模型文件之间通过中间模板数据文件实现格式转换;以及
将所述抽取模型文件和所述加载模型文件发送到数据库代理;
在所述数据同步任务先前已被执行过的情况下:
将所述数据同步任务的标识号发送给所述数据库代理,以便所述数据库代理自行获取所述抽取模型文件和所述加载模型文件;
解析所述数据同步任务包括:所述数据库代理在获取所述抽取模型文件之后,对所述抽取模型文件进行解析以获取与从源数据库中抽取变化数据相关的抽取细节信息;
捕获源数据库中的变化数据包括:
创建用于触发对变化数据的捕获的触发器,并且所述触发器将所捕获的变化数据存储在捕获表中;
根据调度来执行所述数据同步任务包括:
根据所述数据同步任务中规定的任务开始时间和任务运行周期向所述数据库代理发送执行任务的命令;
响应于所述执行任务的命令,所述数据库代理从所述源数据库中抽取变化数据,并将所述变化数据加载到目标数据库。
2.如权利要求1所述的方法,其中,
所述数据库代理从所述源数据库中抽取变化数据包括:所述数据库代理根据所述抽取细节信息抽取所述捕获表中的变化数据,并将所述变化数据进行格式转换以保存在所述中间模板数据文件中;
将所述变化数据加载到目标数据库包括:根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换,并将格式转换后的变化数据加载到所述目标数据库。
3.如权利要求2所述的方法,其中,
所述源数据库的数据库代理为源数据库代理,所述目标数据库的数据库代理为目标数据库代理,所述源数据库代理和所述目标数据库代理是不同的数据库代理;
将所述抽取模型文件和所述加载模型文件发送到所述数据库代理包括:
将所述抽取模型文件发送到所述源数据库代理,将所述加载模型文件发送到所述目标数据库代理;
所述数据库代理从所述源数据库中抽取变化数据包括由所述源数据库代理执行的下列操作:
根据所述抽取细节信息抽取所述捕获表中的变化数据;
将所述变化数据进行格式转换以保存在所述中间模板数据文件中;
将所述中间模板数据文件上传到数据传输通道;以及
返回用于获取所述中间模板数据文件的回执消息;并且
将所述变化数据加载到目标数据库包括由所述目标数据库代理执行的下列操作:
根据所述回执消息从所述数据传输通道获取所述中间模板数据文件;
根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换;以及
将格式转换后的变化数据加载到所述目标数据库。
4.如权利要求3所述的方法,其中,
所述数据库代理从所述源数据库中抽取变化数据进一步包括由所述源数据库代理执行的下列操作:
在将所述中间模板数据文件上传到数据传输通道之前,对所述中间模板数据文件进行加密;
其中,所述回执消息包括解密密钥;并且
将所述变化数据加载到目标数据库进一步包括由所述目标数据库代理执行的下列操作:
在根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换之前,利用所述回执消息中的解密密钥对从所述数据传输通道获取的中间模板数据文件进行解密。
5.如权利要求1所述的方法,其中,
在所述数据库代理没有从所述源数据库中抽取到变化数据的情况下,返回任务结束的消息;和/或
在将所述变化数据加载到目标数据库的情况下,返回加载成功的消息。
6.如权利要求1所述的方法,其中,捕获源数据库中的变化数据还包括:
设置用于执行业务数据操作的连接用户和用于执行数据同步任务的交换用户;并且
所述触发器在触发对变化数据的捕获之前,判断所述变化数据所对应的用户是连接用户还是交换用户;
如果所述变化数据所对应的用户是连接用户,则所述触发器触发对变化数据的捕获;
如果所述变化数据所对应的用户是交换用户,则所述触发器不触发对变化数据的捕获。
7.如权利要求1所述的方法,其中,建立多个数据库之间的针对变化数据的数据同步任务还包括:
建立多个数据库之间的多个数据同步任务;并且
向所述数据库代理发送执行任务的命令包括:根据所述多个数据同步任务中的各个数据同步任务中规定的任务开始时间和任务运行周期向所述数据库代理发送执行相应任务的命令。
8.一种关系型数据库之间的同步系统,包括:
数据同步任务建模接口,用于建立多个数据库之间的针对变化数据的数据同步任务;所述数据同步任务包括用于描述将源数据库的变化数据同步到目标数据库的任务信息文件;
触发器,通过触发对变化数据的捕获,并且将所捕获的变化数据存储在捕获表中,以实现变化数据的捕获;
调度器,用于在所述数据同步任务先前未被执行过的情况下:将所述任务信息文件划分成用于抽取源数据库的变化数据的抽取模型文件和用于将变化数据加载到目标数据库的加载模型文件,其中所述抽取模型文件和所述加载模型文件之间通过中间模板数据文件实现格式转换;以及将所述抽取模型文件和所述加载模型文件发送到数据库代理;在所述数据同步任务先前已被执行过的情况下:将所述数据同步任务的标识号发送给所述数据库代理,以便所述数据库代理自行获取所述抽取模型文件和所述加载模型文件;
数据库代理,用于通过在获取所述抽取模型文件之后,对所述抽取模型文件进行解析以获取与从源数据库中抽取变化数据相关的抽取细节信息,来解析所述数据同步任务;
所述调度器通过向所述数据库代理发送执行任务的命令来调度所述数据库代理;
所述数据库代理响应于所述执行任务的命令,从所述源数据库中抽取变化数据,并将所述变化数据加载到目标数据库;
所述数据库代理在从所述源数据库中抽取变化数据时,根据所述抽取细节信息抽取所述捕获表中的变化数据,并将所述变化数据进行格式转换以保存在所述中间模板数据文件中;和/或
所述数据库代理将所述变化数据加载到目标数据库时,根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换,并将格式转换后的变化数据加载到所述目标数据库。
9.如权利要求8所述的系统,其特征在于,
所述源数据库的数据库代理为源数据库代理,所述目标数据库的数据库代理为目标数据库代理,所述源数据库代理和所述目标数据库代理是不同的数据库代理;
所述调度器将所述抽取模型文件发送到所述源数据库代理,将所述加载模型文件发送到所述目标数据库代理;
所述源数据库代理用于:
根据所述抽取细节信息抽取所述捕获表中的变化数据;
将所述变化数据进行格式转换以保存在所述中间模板数据文件中;
将所述中间模板数据文件上传到数据传输通道;以及
返回用于获取所述中间模板数据文件的回执消息;并且
所述目标数据库代理用于:
根据所述回执消息从所述数据传输通道获取所述中间模板数据文件;
根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换;以及
将格式转换后的变化数据加载到所述目标数据库。
10.如权利要求9所述的系统,其特征在于,
所述源数据库代理进一步用于:在将所述中间模板数据文件上传到数据传输通道之前,对所述中间模板数据文件进行加密;
所述回执消息包括解密密钥;并且
所述目标数据库代理进一步用于:在根据所述加载模型文件对所述中间模板数据文件中的变化数据进行格式转换之前,利用所述回执消息中的解密密钥对从所述数据传输通道获取的中间模板数据文件进行解密;
所述数据库代理进一步用于:在没有从所述源数据库中抽取到变化数据的情况下,向所述调度器返回任务结束的消息;和/或
在将所述变化数据加载到目标数据库的情况下,向所述调度器返回加载成功的消息。
11.如权利要求8所述的系统,其特征在于,
所述触发器进一步用于:触发对变化数据的捕获之前,判断所述变化数据所对应的用户是用于执行业务数据操作的连接用户还是用于执行数据同步任务的交换用户;如果所述变化数据所对应的用户是连接用户,则所述触发器触发对变化数据的捕获;如果所述变化数据所对应的用户是交换用户,则所述触发器不触发对变化数据的捕获;
所述调度器根据所述数据同步任务中规定的任务开始时间和任务运行周期向所述数据库代理发送执行任务的命令;
所述数据同步任务建模接口能够建立多个数据库之间的多个数据同步任务;并且
在所述数据同步任务建模接口建立多个数据同步任务的情况下,所述调度器根据所述多个数据同步任务中的各个数据同步任务中规定的任务开始时间和任务运行周期向所述数据库代理发送执行相应任务的命令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110415778.5A CN102542007B (zh) | 2011-12-13 | 2011-12-13 | 关系型数据库之间的同步方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110415778.5A CN102542007B (zh) | 2011-12-13 | 2011-12-13 | 关系型数据库之间的同步方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102542007A CN102542007A (zh) | 2012-07-04 |
CN102542007B true CN102542007B (zh) | 2014-06-25 |
Family
ID=46348899
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110415778.5A Active CN102542007B (zh) | 2011-12-13 | 2011-12-13 | 关系型数据库之间的同步方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102542007B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271444A (zh) * | 2018-08-10 | 2019-01-25 | 武汉达梦数据库有限公司 | 一种基于触发器的表级双向同步实现方法和系统 |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530290B (zh) * | 2012-07-03 | 2017-12-12 | 深圳市腾讯计算机系统有限公司 | 数据库间的数据迁移方法和系统 |
CN103778136A (zh) * | 2012-10-19 | 2014-05-07 | 阿里巴巴集团控股有限公司 | 一种跨机房数据库同步方法及系统 |
CN103297329B (zh) * | 2013-06-26 | 2016-09-07 | 北京金和软件股份有限公司 | 一种异构系统间消息的准实时双向同步方法 |
CN104346662A (zh) * | 2013-07-26 | 2015-02-11 | 镇江雅迅软件有限责任公司 | 一种业务数据继承的实现方法 |
CN103425769B (zh) * | 2013-08-08 | 2016-08-10 | 国电南瑞科技股份有限公司 | 一种基于同步关系数据二维表的多源多目的数据同步方法 |
CN103699580B (zh) * | 2013-12-03 | 2016-08-24 | 中国铁路总公司 | 数据库同步方法及装置 |
CN103685543A (zh) * | 2013-12-23 | 2014-03-26 | 中国电子科技集团公司第三十研究所 | 一种异构数据库间的数据同步方法及系统 |
CN104778175A (zh) * | 2014-01-13 | 2015-07-15 | 世纪禾光科技发展(北京)有限公司 | 一种实现异构数据库数据同步的方法及系统 |
CN103914526B (zh) * | 2014-03-27 | 2017-06-16 | 神华集团有限责任公司 | 一种用于sap erp系统与oracle erp系统的接口方法和装置 |
CN104156265A (zh) * | 2014-08-08 | 2014-11-19 | 乐得科技有限公司 | 定时任务的处理方法和处理装置 |
CN104503989B (zh) * | 2014-12-03 | 2019-04-19 | 中建材国际贸易有限公司 | 一种完成异构数据库归集的方法 |
CN104598531B (zh) * | 2014-12-25 | 2019-05-07 | 广东电子工业研究院有限公司 | 一种基于触发器的异构关系型数据库间增量数据迁移方法 |
CN104679894A (zh) * | 2015-03-17 | 2015-06-03 | 浪潮集团有限公司 | 一种erp系统中海量运维数据的采集方法 |
CN104699541B (zh) * | 2015-03-30 | 2018-07-10 | 北京奇虎科技有限公司 | 同步数据的方法、装置、数据传输组件及系统 |
CN104731956B (zh) * | 2015-04-02 | 2019-07-23 | 北京奇虎科技有限公司 | 同步数据的方法、系统及相关数据库 |
CN106155835A (zh) * | 2015-04-07 | 2016-11-23 | 北京中科同向信息技术有限公司 | 一种基于同步复制技术的容灾方法 |
CN105160015A (zh) * | 2015-09-24 | 2015-12-16 | 四川长虹电器股份有限公司 | 基于Flex映射XBRL数据关系的方法 |
CN105279261B (zh) * | 2015-10-23 | 2019-07-02 | 北京京东尚科信息技术有限公司 | 动态可扩展数据库归档方法和系统 |
CN106649378B (zh) * | 2015-11-02 | 2020-07-14 | 北大方正集团有限公司 | 一种数据同步方法及装置 |
CN107038195B (zh) * | 2015-12-17 | 2020-07-03 | 阿里巴巴集团控股有限公司 | 数据同步方法和装置 |
CN105653653B (zh) * | 2015-12-28 | 2019-12-06 | 上海瀚之友信息技术服务有限公司 | 一种订单数据同步方法及系统 |
CN105787057B (zh) * | 2016-02-29 | 2019-02-15 | 浪潮通用软件有限公司 | 一种异构系统间业务数据自动同步的实现方法 |
CN106055698A (zh) * | 2016-06-14 | 2016-10-26 | 智者四海(北京)技术有限公司 | 数据迁移方法、代理节点及数据库实例 |
CN106407309B (zh) * | 2016-08-31 | 2020-05-29 | 天津南大通用数据技术股份有限公司 | 支持多种数据源的集群数据库数据加载工具及方法 |
CN106339498A (zh) * | 2016-09-05 | 2017-01-18 | 北京微播易科技股份有限公司 | 数据同步方法、装置和系统 |
CN106446243A (zh) * | 2016-10-10 | 2017-02-22 | 山东浪潮云服务信息科技有限公司 | 一种关系型数据库的数据集成结构 |
CN106940716A (zh) * | 2017-03-13 | 2017-07-11 | 济南浪潮高新科技投资发展有限公司 | 一种数据处理方法、装置及系统 |
CN107343049B (zh) * | 2017-07-06 | 2020-03-24 | 上海观谷科技有限公司 | 数据同步方法及装置 |
CN107729366B (zh) | 2017-09-08 | 2021-01-05 | 广东省建设信息中心 | 一种普适多源异构大规模数据同步系统 |
CN108121757A (zh) * | 2017-11-10 | 2018-06-05 | 广州优视网络科技有限公司 | 一种数据同步方法、装置、系统、计算设备及存储介质 |
WO2019127282A1 (zh) * | 2017-12-28 | 2019-07-04 | 深圳配天智能技术研究院有限公司 | 一种数据库合并的方法以及装置 |
CN108304473B (zh) * | 2017-12-28 | 2020-09-04 | 石化盈科信息技术有限责任公司 | 数据源之间的数据传输方法和系统 |
CN108052681B (zh) * | 2018-01-12 | 2020-05-26 | 毛彬 | 一种关系型数据库间结构化数据的同步方法及系统 |
CN108446315B (zh) * | 2018-02-07 | 2021-11-05 | 中国平安人寿保险股份有限公司 | 大数据迁移方法、装置、设备及存储介质 |
CN108664659A (zh) * | 2018-05-21 | 2018-10-16 | 四川中电启明星信息技术有限公司 | 一种分布式异构数据库的数据同步方法及装置 |
CN109033193A (zh) * | 2018-06-16 | 2018-12-18 | 温州职业技术学院 | 一种数据库结构及其数据同步方法 |
CN108900497B (zh) * | 2018-06-25 | 2021-11-02 | 江苏欧软信息科技有限公司 | 一种异构系统间的数据同步方法及系统 |
CN108920664B (zh) * | 2018-07-05 | 2022-04-15 | 福建星瑞格软件有限公司 | 一种基于索引价值的数据库智能索引实现方法 |
CN109241191B (zh) * | 2018-09-13 | 2021-09-14 | 华东交通大学 | 一种分布式数据源异构同步平台及同步方法 |
CN109446380A (zh) * | 2018-11-02 | 2019-03-08 | 鲁班(北京)电子商务科技有限公司 | 一种基于xml描述两个数据表关系的方法 |
CN109657002B (zh) * | 2018-11-09 | 2022-04-08 | 山东中创软件商用中间件股份有限公司 | 一种多表批量数据同步方法、装置及设备 |
CN109669988B (zh) * | 2018-12-17 | 2020-10-30 | 武汉达梦数据库有限公司 | 一种查询建表事务的拆分同步方法及系统 |
CN109831372B (zh) * | 2019-02-12 | 2021-09-21 | 北京云中融信网络科技有限公司 | 消息同步方法及即时通讯系统 |
CN112084254A (zh) * | 2019-06-14 | 2020-12-15 | 北京京东尚科信息技术有限公司 | 一种数据同步方法和系统 |
CN110362632B (zh) * | 2019-07-22 | 2022-11-15 | 无限极(中国)有限公司 | 一种数据同步方法、装置、设备及计算机可读存储介质 |
CN111241194A (zh) * | 2020-01-02 | 2020-06-05 | 浙江口碑网络技术有限公司 | 一种数据同步方法及装置 |
CN113407601A (zh) * | 2020-03-17 | 2021-09-17 | 北京国双科技有限公司 | 数据采集方法、装置、存储介质和电子设备 |
CN112199443B (zh) * | 2020-09-30 | 2022-11-04 | 苏州达家迎信息技术有限公司 | 数据同步方法、装置、计算机设备和存储介质 |
CN112632185B (zh) * | 2020-12-16 | 2023-05-09 | 浪潮云信息技术股份公司 | 一种基于cpu环境的多类型数据库同步方法、装置及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6212557B1 (en) * | 1990-01-29 | 2001-04-03 | Compaq Computer Corporation | Method and apparatus for synchronizing upgrades in distributed network data processing systems |
JP4173447B2 (ja) * | 2001-10-24 | 2008-10-29 | ビーイーエイ システムズ, インコーポレイテッド | データ同期 |
CN101615199A (zh) * | 2009-07-31 | 2009-12-30 | 深圳市珍爱网信息技术有限公司 | 异构数据库同步方法及系统 |
CN102129478B (zh) * | 2011-04-26 | 2012-10-03 | 广州从兴电子开发有限公司 | 数据库同步方法及系统 |
CN102262674A (zh) * | 2011-08-11 | 2011-11-30 | 大唐移动通信设备有限公司 | 一种分布式内存数据库的数据同步方法及系统 |
-
2011
- 2011-12-13 CN CN201110415778.5A patent/CN102542007B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109271444A (zh) * | 2018-08-10 | 2019-01-25 | 武汉达梦数据库有限公司 | 一种基于触发器的表级双向同步实现方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102542007A (zh) | 2012-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102542007B (zh) | 关系型数据库之间的同步方法及系统 | |
CN107861859A (zh) | 一种基于微服务架构的日志管理方法及系统 | |
CN104317843B (zh) | 一种数据同步etl系统 | |
US8195605B2 (en) | Data cache techniques in support of synchronization of databases in a distributed environment | |
Isaacs et al. | Combing the communication hairball: Visualizing parallel execution traces using logical time | |
EP2015199A1 (en) | System and method for federated member-based data integration and reporting | |
EP2058733A2 (en) | Multi-tier interface for management of operational structured data | |
CN109919691B (zh) | 一种数据处理的系统、方法以及装置 | |
CN107103064B (zh) | 数据统计方法及装置 | |
CN108763234A (zh) | 一种数据实时同步方法及系统 | |
WO2011116471A1 (en) | Method and system for generating updated test data | |
US20150006469A1 (en) | Methodology supported business intelligence (BI) software and system | |
CN112988919A (zh) | 一种电网数据集市构建方法、系统、终端设备及存储介质 | |
Sinaeepourfard et al. | A survey on data lifecycle models: Discussions toward the 6Vs challenges | |
CN114218218A (zh) | 基于数据仓库的数据处理方法、装置、设备及存储介质 | |
US20140074526A1 (en) | Synchronizing data related to workflow | |
Brunette et al. | ODK tables: building easily customizable information applications on Android devices | |
Ivanov et al. | A hot decomposition procedure: Operational monolith system to microservices | |
CN106250467A (zh) | 一种实现动态抽取指标的方法及装置 | |
Hu | Information lifecycle modeling framework for construction project lifecycle management | |
Castellanos et al. | Automating the loading of business process data warehouses | |
Duan | Analysis of ERP enterprise management information system based on cloud computing mode | |
CN108121537A (zh) | 一种软件生产线系统及其生产方法 | |
Boynton et al. | Post-Fordist debate: a theoretical perspective to information technology and the firm | |
Berti et al. | StarStar models: Process analysis on top of databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |