CN109829011A - 一种分布式异构数据库的数据同步方法及装置 - Google Patents
一种分布式异构数据库的数据同步方法及装置 Download PDFInfo
- Publication number
- CN109829011A CN109829011A CN201811148493.8A CN201811148493A CN109829011A CN 109829011 A CN109829011 A CN 109829011A CN 201811148493 A CN201811148493 A CN 201811148493A CN 109829011 A CN109829011 A CN 109829011A
- Authority
- CN
- China
- Prior art keywords
- database
- source
- change sequence
- data
- object table
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 99
- 230000008859 change Effects 0.000 claims abstract description 94
- 230000009467 reduction Effects 0.000 claims abstract description 38
- 238000013506 data mapping Methods 0.000 claims abstract description 32
- 230000008569 process Effects 0.000 claims description 14
- 238000013507 mapping Methods 0.000 claims description 11
- 238000004458 analytical method Methods 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 5
- 230000001360 synchronised effect Effects 0.000 abstract description 14
- 238000003780 insertion Methods 0.000 description 9
- 230000037431 insertion Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种分布式异构数据库的数据同步方法及装置,该方法包括:建立源数据库中源表和目标数据库中目标表之间的数据映射关系;如果从源表中捕获到变化序列,则根据数据映射关系对变化序列进行还原处理,得到目标表的SQL结构化查询语言语句;将变化序列从源表分发至目标表,并利用SQL语句和变化序列对目标表进行更新操作。以上本发明提供的一种分布式异构数据库的数据同步方法及装置,该方法可以基于SQL还原法完成分布式数据库之间的数据同步,并且由于SQL语句符合SQL92标准,因此可以使数据同步更具有有效性。
Description
本申请要求于2018年05月21日提交中国专利局、申请号为201810487831.4、发明名称为“一种分布式异构数据库的数据同步方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本发明涉及计算机数据库技术领域,更具体地说,涉及一种分布式异构数据库的数据同步方法及装置。
背景技术
随着信息化时代的迅速发展,数据库的使用越来越广泛,但因***开发环境以及数据库类型的差异,产生了许多相对独立的分布式异构数据库。
由于分布式异构数据库之间不少数据是相关联的,因此为保证数据库中各节点数据一致,亟需解决分布时异构数据库之间的数据同步问题。
发明内容
为解决上述问题,本申请提供一种分布式异构数据库的数据同步方法及装置,技术方案如下:
一种分布式数据库的数据同步方法,包括:
建立源数据库中源表和目标数据库中目标表之间的数据映射关系;
如果从所述源表中捕获到变化序列,则根据所述数据映射关系对所述变化序列进行还原处理,得到所述目标表的SQL结构化查询语言语句;
将所述变化序列从所述源表分发至所述目标表,并利用所述SQL语句和所述变化序列对所述目标表进行更新操作。
优选的,所述建立源数据库中源表和目标数据库中目标表之间的数据映射关系,包括:
分别获取源数据库的第一注册信息以及目标数据库的第二注册信息;
根据所述第一注册信息使用预设数据库驱动对所述源数据库进行类型和版本的验证,以及根据所述第二注册信息使用所述预设数据库驱动对所述目标数据库进行类型和版本的验证;
在所述源数据库和所述目标数据库均通过验证的情况下,在所述源数据库中源表和所述目标数据库中目标表之间建立数据类型和/或保留字和/或运算符之间的映射关系。
优选的,所述从所述源表中捕获变化序列的过程,包括:
采用触发器发或者日志分析法捕获所述源表的变化序列。
优选的,所述根据所述数据映射关系对所述变化序列进行还原处理,包括:
判断所述变化序列中是否存在多媒体类型的字段;
若否,基于SQL还原法和所述数据映射关系,对所述变化序列进行还原处理。
优选的,还包括:
若是,基于所述目标数据库的DML语法和所述数据映射关系,对所述变化序列进行还原处理。
优选的,所述利用所述SQL语句和所述变化序列对所述目标表进行更新操作,包括:
利用所述SQL语句对所述变化序列进行处理;
利用处理后的所述变化序列对所述目标表进行更新操作。
一种分布式数据库的数据同步装置,包括:
关系建立模块,用于建立源数据库中源表和目标数据库中目标表之间的数据映射关系;
数据还原模块,用于如果从所述源表中捕获到变化序列,则根据所述数据映射关系对所述变化序列进行还原处理,得到所述目标表的SQL结构化查询语言语句;
更新模块,用于将所述变化序列从所述源表分发至所述目标表,并利用所述SQL语句和所述变化序列对所述目标表进行更新操作。
优选的,所述关系建立模块,具体用于:
分别获取源数据库的第一注册信息以及目标数据库的第二注册信息;根据所述第一注册信息使用预设数据库驱动对所述源数据库进行类型和版本的验证,以及根据所述第二注册信息使用所述预设数据库驱动对所述目标数据库进行类型和版本的验证;在所述源数据库和所述目标数据库均通过验证的情况下,在所述源数据库中源表和所述目标数据库中目标表之间建立数据类型和/或保留字和/或运算符之间的映射关系。
优选的,用于根据所述数据映射关系对所述变化序列进行还原处理的所述数据还原模块,具体用于:
判断所述变化序列中是否存在多媒体类型的字段;若否,基于SQL还原法和所述数据映射关系,对所述变化序列进行还原处理。
优选的,用于利用所述SQL语句和所述变化序列对所述目标表进行更新操作的所述更新模块,具体用于:
利用所述SQL语句对所述变化序列进行处理;利用处理后的所述变化序列对所述目标表进行更新操作。
相较于现有技术,本发明实现的有益效果为:
以上本发明提供的一种分布式异构数据库的数据同步方法及装置,该方法可以基于SQL还原法完成分布式数据库之间的数据同步,并且由于SQL语句符合SQL92标准,因此可以使数据同步更具有有效性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的分布式数据库的数据同步方法的方法流程图;
图2为本发明实施例提供的分布式数据库的数据同步方法的部分方法流程图;
图3为本发明实施例提供的分布式数据库的数据同步方法的另一部分方法流程图;
图4为本发明实施例提供的分布式数据库的数据同步方法的再一部分方法流程图;
图5为本发明实施例提供的分布式数据库的数据同步装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前大多数数据库都支持SQL(Structured Query Language)92标准,“基于SQL还原法”同步技术的变化捕获结果是按照SQL92标准的SQL语句形式出现的,可以给任何支持SQL92标准的数据库作同步。如果不用标准的SQL语句,就必须写对应的数据库DML操作,这样一来就必须知道是哪种数据库,因为不同数据库的DML语句不尽相同。“基于SQL还原法”做的事情就是从源数据库获取变更操作的SQL语句,在目标数据库执行该SQL语句实施更新。
本申请实施例提供一种分布式数据库的数据同步方法,该方法的方法流程图如图1所示,包括如下步骤:
S10,建立源数据库中源表和目标数据库中目标表之间的数据映射关系;
本申请实施例中,数据映射关系包括数据类型、保留字和运算符中任意一个或多个组合的映射关系。以数据类型为映射关系为例,Mysql的decimal类型对应着Oracle的number,在建立两者的对应关系后,在同步时就可以确定数据如何转换。
在具体实现过程中,步骤S10“建立源数据库中源表和目标数据库中目标表之间的数据映射关系”可以采用如下步骤,方法流程图如图2所示:
S101,分别获取源数据库的第一注册信息以及目标数据库的第二注册信息;
本实施例中,第一注册信息包括源数据库的服务器地址、实例、账号相关信息等;第二注册信息包括目标数据库的服务器地址、将使用的实例、将使用的账号相关信息等。
S102,根据第一注册信息使用预设数据库驱动对源数据库进行类型和版本的验证,以及根据第二注册信息使用预设数据库驱动对目标数据库进行类型和版本的验证;
***包含常用数据库驱动程序或者非常用数据库驱动下载网址。通过读取注册表可以确定本地数据库驱动是否存在,如不存在,则将从所配置的驱动下载网址进行下载,然后进行静默安装,从而对数据库驱动进行注册。
本实施例中,可以结合数据库驱动的注册信息以及第一注册信息,通过连接测试确定数据库驱动是否与源数据库匹配,如果连接超时则说明数据库驱动与源数据库不匹配,反之,则匹配;如果匹配上再查询源数据库的版本信息;
本实施例中,可以结合数据库驱动的注册信息以及第二注册信息,通过连接测试确定数据库驱动是否与目标数据库匹配,如果连接超时则说明数据库驱动与目标数据库不匹配,反之,则匹配;如果匹配上再查询目标数据库的版本信息。
S103,在源数据库和目标数据库均通过验证的情况下,在源数据库中源表和目标数据库中目标表之间建立数据类型和/或保留字和/或运算符之间的映射关系。
S20,如果从源表中捕获到变化序列,则根据数据映射关系对变化序列进行还原处理,得到目标表的SQL结构化查询语言语句;
本实施例中,可利用变化捕获技术捕获源表的变化序列。以下对变化捕获技术进行简单介绍:
变化捕获技术是捕获源表的变化序列的过程。由于绝大多数数据库的日志格式不公开,直接读取逻辑日志有困难,所以要对源数据库中源表的变化进行跟踪、捕获。仔细分析变化捕获技术中快照法、触发器法、日志法、API法、影子表法和控制表变化法,申请人确定大部分的方法(除去影子表法的其他同步方法)归根结底还是依赖于触发器或日志,因此触发器法和日志法是最基本的变化捕获的方法。而目前流行的商用数据库都提供触发器机制或日志分析工具,因此本申请可以采用触发器发或者日志分析法捕获源表的变化序列。
以下分别介绍快照法、触发器法、日志法、API(Application ProgrammingInterface,应用程序编程接口)法、影子表法和控制表变化法:
快照法,快照(Snapshot)是数据库中存储对象在某一时刻的即时映像,通过为同步对象定义一个快照或采用类似方法,可以将它的当前映像作为更新副本的内容。
触发器法,在源数据库为需要同步的每一个源表分别创建***(INSERT)、删除(DELETE)、和修改(UPDATA)三个触发器,当源表发生***、删除或修改操作时触发器被启动,利用触发器中记录影响行变化的临时表来获取源表的变化信息,将发生的操作还原为SQL语句,并记录日志文件,日志文件应至少包含操作时间、被还原的SQL语句等必要信息。
日志法,数据库日志作为维护数据完整性和数据库恢复的重要工具,其中已经包含了全部成功提交的操作记录信息,基于日志法就是通过分析数据库日志的信息来捕获同步对象的变化序列。
API法,一些小型数据库和非关系型的数据库没有触发器和日志机制,可以在应用程序和数据库之间引入一类中间件,由它提供一系列API(包括ODBC驱动程序),在API上来完成应用程序对数据库修改的同时,记录下同步对象的变化序列。
影子表法,许多情况下源数据库无须了解同步对象的每一次操作,只要知道最后总共发生了什么变化就足够了。因此,可以在初始化时为同步对象表T建立一个影子(shadow)表S,也就是作一份当时的拷贝,以后就可以在适当时机通过发前T和S的内容来获取净变化信息。
控制表变化法,就是为每个要同步的源表T创建一个控制表C,C只包含T的主键字段Pk和一些控制信息字段,当T中某个记录发生变化时,C中同主键Pk的记录也随即被修改。这一过程通常可以通过触发器实现,到时候只需根据C就能知道T的变化信息。
此外,本实施例中,在源表的变化序列之后,就可以结合源表与目标表的数据映射关系,还原出目标表的SQL语句。由于几乎所有的流行数据库都支持SQL92标准,“基于SQL还原法”将统一按照SQL92标准进行SQL语句还原,而不针对某一具体的数据DML。
以数据类型为映射关系为例,“基于SQL还原法”采用接口的方式来同一转换,接口内预置有一张Oralce、SQLServer、DB2、Sybase、MySql等流行数据库的数据类型与SQL92标准的数据类型的映射表。
还原SQL语句包括如下三种情况:如果源表是***操作,则被还原成目标表的INSERT语句;如果源表是删除操作,则被还原成目标表的DELETE语句;如果源表是修改操作,有两种情况,若是采用触发器发,则被还原成目标表的DELETE和INSERT两个语句,即UPDATE语句被拆分为先删除后***两个子操作,因为从触发器的两个临时表可以直接还原出DELETE和INSERT两个语句;若是采用日志分析法,则被直接还原成目标表的UPADTE语句,因为日志分析的结果就是UPDATE语句,没有必要拆分成两个语句。
在具体实现过程中,步骤S20中“根据数据映射关系对变化序列进行还原处理”可以采用如下步骤,方法流程图如图3所示:
S201,判断变化序列中是否存在多媒体类型的字段;若否,则执行步骤S202;
S202,基于SQL还原法和数据映射关系,对更新数据进行还原处理。
由于SQL92标准里没有对媒体类型进行定义,所以如果变化序列中不含有多媒体类型的字段,可以直接基于SQL还原法和数据映射关系,对变化序列进行还原处理。
而如果变化序列中含有多媒体类型的字段,则只能根据目标数据库的DML语法来还原处理多媒体类型的字段。
S30,将变化序列从源表分发至目标表,并利用SQL语句和变化序列对目标表进行更新操作;
本实施例中,可利用数据分发技术将变化序列从源表分发至目标表,也就是将源表作为源节点、将目标表作为目标节点。以下对数据分发技术进行简单介绍:
数据分发技术,有时也称为传播(Propagate),负责节点之间的数据发送和接收。其连接方式一般认为有基于消息(Message-based)式和基于会话(Session-based)式两种:
(1)基于消息式连接又称消息队列(MessageQueuing)式或保存并转发(Store-and-Forward)连接。源节点事先把要分发的数据保存在要地日志中,到时再按照发送和接收消息包的方式来传递数据,传递消息包通过源节点和目标节点的出/入(Outbound/Inbound)消息队列来完成。典型的有通过Ftp,Email或使用诸如MQ这样的消息中间件来实现。
(2)基于会话式连接也称点对点(Peer-to-Peer)连接。该方式不需要事先准备分发数据,允许在颁发时才捕获变化。节点之间的数据传播以会话方式进行,每个节点可以同时发送和接收数据。基于会话式连接在效率、可标量性等方面优于基于消息式连接,但在可靠性方面却不如基于消息式连接。
此外,其分发模型一般分为分成推式(Push)、拉式(Pull)、推拉结合等三类模型:
(1)推式模型:如果由源节点承担分发任务,传播内容表现为由源节点主动地改善给目标节点,称为“推式(Push)”模型。推式模型的优势在于效率较高;但可高度性差,它的传播信息都是事先定好的。
(2)拉式模型:如果由目标节点承担颁发任务,传播内容表现为由目标节点向源节点申请而来,称为“拉式(Pull)”模型,拉式模型的优势在于容易高度,源节点可以减少传播信息,随着参与节点数量的增多面表现得更为明显;但是它的效率较差,且不能实现实时的信息传播。
(3)推拉结合模型:如果分发任务由第三节点承担称为“推拉结合”模型。当节点增多而又有大量同步任务,特别是需要把同步工作独立出来时,推拉结合模式最为合适。而当节点数目比较少或同步任务比较轻松时,它的性能和成本都不合算。
此外,本实施例中可以利用数据更新技术对目标表进行更新操作,数据更新是指根据源表的变化序列来修改目标表,从而保证数据的一致性。
在具体实现过程中,步骤S30中“利用SQL语句和变化序列对目标表进行更新操作”可以采用如下步骤,方法流程图如图4所示:
S301,利用SQL语句对变化序列进行处理;
本实施例中,对于变化序列的处理包括完全拷贝、序列再变化或净变化。按照不同的操作处理时,对于主键的要求也不一样,以下对主键进行简单介绍:
主键也叫主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。
(1)CREATE操作:用更新数据创建一个新表,一般用于初始化。源表和目标表是否有主键以及主键是否等价都非必要条件。
(2)INSERT操作:将更新数据作为新记录***已存在的表。有两种情况,已定义主键时,目标表的主键字段数据一定多于或等于源表;而没有定义主键时,目标表包含重复记录的现象就不可避免。
(3)DELETE操作:删除已存在表的相关记录。源表和目标表必须有主键而且主键域必须等价。
(4)UPDATE操作:修改已存在表的相关记录。只有在更新数据是完全拷贝的情况下,才可以不定义主键;否则源表和目标表都必须有主键而且主键域必须等价。
S302,利用处理后的变化序列对目标表进行更新操作。
此外,由于传输中继超时、硬件故障以及违反原有的约束条件等,更新操作可能失败,其中有部分可以通过DBMS(database management system,数据库管理***)的恢复机制得到解决,这里把不能恢复的更新失败称为“例外(Exception)”。例外的产生会延长数据不一致性的潜在期(Latency),严重时会造成数据库挂起,甚至引起***崩溃。
如何处理例外主要取决于例外对数据一致性的破坏程度以及用户承受程序的影响,一般可供选择的处理方式有:
(1)Redo方式:要求重新分发更新数据;
(2)Ignore方式:忽略本次例外,留待下次同步时解决;
(3)Execute方式:执行预先定义的一组指令,这是一种最为灵活的处理方式。
以上步骤S101~步骤S103仅仅是本发明实施例公开的步骤S10“建立源数据库中源表和目标数据库中目标表之间的数据映射关系”过程的一种优选的实现方式,有关此过程的具体实现方式可根据自己的需求任意设置,在此不做限定。
以上步骤S201~步骤S202仅仅是本发明实施例公开的步骤S20中“根据数据映射关系对变化序列进行还原处理”过程的一种优选的实现方式,有关此过程的具体实现方式可根据自己的需求任意设置,在此不做限定。
以上步骤S301~步骤S302仅仅是本发明实施例公开的步骤S30中“利用SQL语句和变化序列对目标表进行更新操作”过程的一种优选的实现方式,有关此过程的具体实现方式可根据自己的需求任意设置,在此不做限定。
本发明实施例提供的分布式异构数据库的数据同步方法,可以基于SQL还原法完成分布式数据库之间的数据同步,并且由于SQL语句符合SQL92标准,因此可以使数据同步更具有有效性。
基于上述实施例提供的分布式异构数据库的数据同步方法,本发明实施例则对应提供执行上述分布式异构数据库的数据同步方法的装置,该装置的结构示意图如图5所示,包括:
关系建立模块10,用于建立源数据库中源表和目标数据库中目标表之间的数据映射关系;
数据还原模块20,用于如果从源表中捕获到变化序列,则根据数据映射关系对变化序列进行还原处理,得到目标表的SQL结构化查询语言语句;
更新模块30,用于将变化序列从源表分发至目标表,并利用SQL语句和变化序列对目标表进行更新操作。
在其他一些实施例中,关系建立模块10,具体用于:
分别获取源数据库的第一注册信息以及目标数据库的第二注册信息;根据第一注册信息使用预设数据库驱动对源数据库进行类型和版本的验证,以及根据第二注册信息使用预设数据库驱动对目标数据库进行类型和版本的验证;在源数据库和目标数据库均通过验证的情况下,在源数据库中源表和目标数据库中目标表之间建立数据类型和/或保留字和/或运算符之间的映射关系。
在其他一些实施例中,数据还原模块20从源表中捕获变化序列的过程,包括:
采用触发器发或者日志分析法捕获源表的变化序列。
在其他一些实施例中,用于根据数据映射关系对变化序列进行还原处理的数据还原模块20,具体用于:
判断变化序列中是否存在多媒体类型的字段;若否,基于SQL还原法和数据映射关系,对变化序列进行还原处理。
在其他一些实施例中,用于根据数据映射关系对变化序列进行还原处理的数据还原模块20,还具体用于:
若是,基于目标数据库的DML语法和数据映射关系,对变化序列进行还原处理。
在其他一些实施例中,用于利用SQL语句和变化序列对目标表进行更新操作的更新模块30,具体用于:
利用SQL语句对变化序列进行处理;利用处理后的变化序列对目标表进行更新操作。
本发明实施例提供的分布式异构数据库的数据同步装置,可以基于SQL还原法完成分布式数据库之间的数据同步,并且由于SQL语句符合SQL92标准,因此可以使数据同步更具有有效性。
以上对本发明所提供的一种分布式异构数据库的数据同步方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备所固有的要素,或者是还包括为这些过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种分布式数据库的数据同步方法,其特征在于,包括:
建立源数据库中源表和目标数据库中目标表之间的数据映射关系;
如果从所述源表中捕获到变化序列,则根据所述数据映射关系对所述变化序列进行还原处理,得到所述目标表的SQL结构化查询语言语句;
将所述变化序列从所述源表分发至所述目标表,并利用所述SQL语句和所述变化序列对所述目标表进行更新操作。
2.根据权利要求1所述的方法,其特征在于,所述建立源数据库中源表和目标数据库中目标表之间的数据映射关系,包括:
分别获取源数据库的第一注册信息以及目标数据库的第二注册信息;
根据所述第一注册信息使用预设数据库驱动对所述源数据库进行类型和版本的验证,以及根据所述第二注册信息使用所述预设数据库驱动对所述目标数据库进行类型和版本的验证;
在所述源数据库和所述目标数据库均通过验证的情况下,在所述源数据库中源表和所述目标数据库中目标表之间建立数据类型和/或保留字和/或运算符之间的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述从所述源表中捕获变化序列的过程,包括:
采用触发器发或者日志分析法捕获所述源表的变化序列。
4.根据权利要求1所述的方法,其特征在于,所述根据所述数据映射关系对所述变化序列进行还原处理,包括:
判断所述变化序列中是否存在多媒体类型的字段;
若否,基于SQL还原法和所述数据映射关系,对所述变化序列进行还原处理。
5.根据权利4所述的方法,其特征在于,还包括:
若是,基于所述目标数据库的DML语法和所述数据映射关系,对所述变化序列进行还原处理。
6.根据权利要求1所述的方法,其特征在于,所述利用所述SQL语句和所述变化序列对所述目标表进行更新操作,包括:
利用所述SQL语句对所述变化序列进行处理;
利用处理后的所述变化序列对所述目标表进行更新操作。
7.一种分布式数据库的数据同步装置,其特征在于,包括:
关系建立模块,用于建立源数据库中源表和目标数据库中目标表之间的数据映射关系;
数据还原模块,用于如果从所述源表中捕获到变化序列,则根据所述数据映射关系对所述变化序列进行还原处理,得到所述目标表的SQL结构化查询语言语句;
更新模块,用于将所述变化序列从所述源表分发至所述目标表,并利用所述SQL语句和所述变化序列对所述目标表进行更新操作。
8.根据权利要求7所述的装置,其特征在于,所述关系建立模块,具体用于:
分别获取源数据库的第一注册信息以及目标数据库的第二注册信息;根据所述第一注册信息使用预设数据库驱动对所述源数据库进行类型和版本的验证,以及根据所述第二注册信息使用所述预设数据库驱动对所述目标数据库进行类型和版本的验证;在所述源数据库和所述目标数据库均通过验证的情况下,在所述源数据库中源表和所述目标数据库中目标表之间建立数据类型和/或保留字和/或运算符之间的映射关系。
9.根据权利要求7所述的装置,其特征在于,用于根据所述数据映射关系对所述变化序列进行还原处理的所述数据还原模块,具体用于:
判断所述变化序列中是否存在多媒体类型的字段;若否,基于SQL还原法和所述数据映射关系,对所述变化序列进行还原处理。
10.根据权利要求7所述的装置,其特征在于,用于利用所述SQL语句和所述变化序列对所述目标表进行更新操作的所述更新模块,具体用于:
利用所述SQL语句对所述变化序列进行处理;利用处理后的所述变化序列对所述目标表进行更新操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/111879 WO2019223228A1 (zh) | 2018-05-21 | 2018-10-25 | 一种分布式异构数据库的数据同步方法及装置 |
ZA2019/05486A ZA201905486B (en) | 2018-05-21 | 2019-08-20 | Data synchronization method and device for distributed heterogeneous databases |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2018104878314 | 2018-05-21 | ||
CN201810487831.4A CN108664659A (zh) | 2018-05-21 | 2018-05-21 | 一种分布式异构数据库的数据同步方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109829011A true CN109829011A (zh) | 2019-05-31 |
CN109829011B CN109829011B (zh) | 2024-01-30 |
Family
ID=63776994
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810487831.4A Pending CN108664659A (zh) | 2018-05-21 | 2018-05-21 | 一种分布式异构数据库的数据同步方法及装置 |
CN201811148493.8A Active CN109829011B (zh) | 2018-05-21 | 2018-09-29 | 一种分布式异构数据库的数据同步方法及装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810487831.4A Pending CN108664659A (zh) | 2018-05-21 | 2018-05-21 | 一种分布式异构数据库的数据同步方法及装置 |
Country Status (3)
Country | Link |
---|---|
CN (2) | CN108664659A (zh) |
WO (1) | WO2019223228A1 (zh) |
ZA (1) | ZA201905486B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209741A (zh) * | 2019-06-14 | 2019-09-06 | 上海中通吉网络技术有限公司 | 异构数据源间的数据同步方法、装置和设备 |
CN112000732A (zh) * | 2020-07-16 | 2020-11-27 | 北京计算机技术及应用研究所 | 一种基于触发器的异构数据库间相互同步方法 |
CN113220711A (zh) * | 2021-05-19 | 2021-08-06 | 李坚白 | 一种同步异构机器人控制器数据库的方法及*** |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108664659A (zh) * | 2018-05-21 | 2018-10-16 | 四川中电启明星信息技术有限公司 | 一种分布式异构数据库的数据同步方法及装置 |
CN109558452B (zh) * | 2018-11-19 | 2020-12-08 | 武汉达梦数据库有限公司 | 一种查询建表操作的同步方法 |
CN110765144B (zh) * | 2019-10-11 | 2022-02-18 | 口碑(上海)信息技术有限公司 | 分布式异构数据库数据处理方法及装置 |
CN111061740B (zh) * | 2019-12-17 | 2023-08-04 | 北京软通智慧科技有限公司 | 一种数据同步方法、设备和存储介质 |
CN112306994A (zh) * | 2020-11-10 | 2021-02-02 | 北京沃东天骏信息技术有限公司 | 数据库数据迁移方法、装置以及存储介质 |
CN112632183B (zh) * | 2020-12-11 | 2023-07-11 | 广东电力通信科技有限公司 | 一种基于电网网络分区数据表准实时同步方法及*** |
CN115391459A (zh) * | 2022-08-24 | 2022-11-25 | 南京领行科技股份有限公司 | 数据同步方法、装置、电子设备及计算机可读存储介质 |
CN115470294B (zh) * | 2022-08-30 | 2023-05-12 | 昆仑数智科技有限责任公司 | 数据库同步方法、装置、电子设备及存储介质 |
CN117971984B (zh) * | 2024-03-29 | 2024-06-21 | 天津南大通用数据技术股份有限公司 | 分布式数据库集群间表数据的同步方法及*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及*** |
CN104346377A (zh) * | 2013-07-31 | 2015-02-11 | 克拉玛依红有软件有限责任公司 | 一种基于唯一标识的数据集成和交换方法 |
CN104376062A (zh) * | 2014-11-11 | 2015-02-25 | 中国有色金属长沙勘察设计研究院有限公司 | 一种异构数据库平台数据的同步方法 |
CN104572672A (zh) * | 2013-10-15 | 2015-04-29 | 北大方正集团有限公司 | 异构数据库的同步方法和应用*** |
CN107122187A (zh) * | 2017-04-26 | 2017-09-01 | 四川中电启明星信息技术有限公司 | 一种业务***异构操作***访问设计方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102542007B (zh) * | 2011-12-13 | 2014-06-25 | 中国电子科技集团公司第十五研究所 | 关系型数据库之间的同步方法及*** |
GB201516727D0 (en) * | 2015-09-22 | 2015-11-04 | Ibm | Distributed merging of data sets |
CN107330003A (zh) * | 2017-06-12 | 2017-11-07 | 上海藤榕网络科技有限公司 | 数据同步方法、***、存储器及数据同步设备 |
CN108664659A (zh) * | 2018-05-21 | 2018-10-16 | 四川中电启明星信息技术有限公司 | 一种分布式异构数据库的数据同步方法及装置 |
-
2018
- 2018-05-21 CN CN201810487831.4A patent/CN108664659A/zh active Pending
- 2018-09-29 CN CN201811148493.8A patent/CN109829011B/zh active Active
- 2018-10-25 WO PCT/CN2018/111879 patent/WO2019223228A1/zh active Application Filing
-
2019
- 2019-08-20 ZA ZA2019/05486A patent/ZA201905486B/en unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104346377A (zh) * | 2013-07-31 | 2015-02-11 | 克拉玛依红有软件有限责任公司 | 一种基于唯一标识的数据集成和交换方法 |
CN104572672A (zh) * | 2013-10-15 | 2015-04-29 | 北大方正集团有限公司 | 异构数据库的同步方法和应用*** |
CN103761318A (zh) * | 2014-01-27 | 2014-04-30 | 中国工商银行股份有限公司 | 一种关系型异构数据库数据同步的方法及*** |
CN104376062A (zh) * | 2014-11-11 | 2015-02-25 | 中国有色金属长沙勘察设计研究院有限公司 | 一种异构数据库平台数据的同步方法 |
CN107122187A (zh) * | 2017-04-26 | 2017-09-01 | 四川中电启明星信息技术有限公司 | 一种业务***异构操作***访问设计方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209741A (zh) * | 2019-06-14 | 2019-09-06 | 上海中通吉网络技术有限公司 | 异构数据源间的数据同步方法、装置和设备 |
CN112000732A (zh) * | 2020-07-16 | 2020-11-27 | 北京计算机技术及应用研究所 | 一种基于触发器的异构数据库间相互同步方法 |
CN113220711A (zh) * | 2021-05-19 | 2021-08-06 | 李坚白 | 一种同步异构机器人控制器数据库的方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN108664659A (zh) | 2018-10-16 |
ZA201905486B (en) | 2020-07-29 |
CN109829011B (zh) | 2024-01-30 |
WO2019223228A1 (zh) | 2019-11-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109829011A (zh) | 一种分布式异构数据库的数据同步方法及装置 | |
US10095499B2 (en) | Optimization for multi-project package manager | |
Preguiça et al. | A commutative replicated data type for cooperative editing | |
CN106933703B (zh) | 一种数据库数据备份的方法、装置及电子设备 | |
CN102037463B (zh) | 使用全局确认的提交进行分布式事务的基于日志的复制 | |
US6681382B1 (en) | Method and system for using virtual labels in a software configuration management system | |
US8548947B2 (en) | Systems and methods for file maintenance | |
US8146054B2 (en) | Hybrid data object model | |
US7523141B2 (en) | Synchronization operations involving entity identifiers | |
US20160306799A1 (en) | Atomic incremental load for map-reduce systems on append-only file systems | |
CN105574187B (zh) | 一种异构数据库复制事务一致性保障方法及*** | |
CN107835983A (zh) | 使用一致的数据库快照在分布式数据库中进行备份和还原 | |
US10089374B2 (en) | Meta model driven data base replication and synchronization | |
CN104731943B (zh) | 一种服务器和数据处理方法 | |
TW201737126A (zh) | 執行資料恢復操作的方法及裝置 | |
US20080034012A1 (en) | Extending hierarchical synchronization scopes to non-hierarchical scenarios | |
US7702641B2 (en) | Method and system for comparing and updating file trees | |
CN102667720B (zh) | 没有排序依赖的一致性 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US8380663B2 (en) | Data integrity in a database environment through background synchronization | |
EP3538999B1 (en) | Advanced retry mechanism for transmitting large datasets | |
JP2007122643A (ja) | データ検索システム、メタデータ同期方法およびデータ検索装置 | |
CN109144785A (zh) | 用于备份数据的方法和装置 | |
CN107943618B (zh) | 仿真***的数据快速恢复方法及存储介质 | |
CN109325016A (zh) | 数据迁移方法、装置、介质及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |