CN109829011B - 一种分布式异构数据库的数据同步方法及装置 - Google Patents

一种分布式异构数据库的数据同步方法及装置 Download PDF

Info

Publication number
CN109829011B
CN109829011B CN201811148493.8A CN201811148493A CN109829011B CN 109829011 B CN109829011 B CN 109829011B CN 201811148493 A CN201811148493 A CN 201811148493A CN 109829011 B CN109829011 B CN 109829011B
Authority
CN
China
Prior art keywords
database
target
source
change sequence
registration information
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
Application number
CN201811148493.8A
Other languages
English (en)
Other versions
CN109829011A (zh
Inventor
宋卫平
佟振清
钟炳志
吴聚营
关霖
陈果
陈思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Zhongdian Aostar Information Technologies Co ltd
State Grid Information and Telecommunication Co Ltd
Original Assignee
Sichuan Zhongdian Aostar Information Technologies Co ltd
State Grid Information and Telecommunication Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Zhongdian Aostar Information Technologies Co ltd, State Grid Information and Telecommunication Co Ltd filed Critical Sichuan Zhongdian Aostar Information Technologies Co ltd
Priority to PCT/CN2018/111879 priority Critical patent/WO2019223228A1/zh
Publication of CN109829011A publication Critical patent/CN109829011A/zh
Priority to ZA2019/05486A priority patent/ZA201905486B/en
Application granted granted Critical
Publication of CN109829011B publication Critical patent/CN109829011B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, 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 (8)

1.一种分布式数据库的数据同步方法,其特征在于,包括:
建立源数据库中源表和目标数据库中目标表之间的数据映射关系;
如果从所述源表中捕获到变化序列,则根据所述数据映射关系对所述变化序列进行还原处理,得到所述目标表的SQL结构化查询语言语句;
将所述变化序列从所述源表分发至所述目标表,并利用所述SQL语句和所述变化序列对所述目标表进行更新操作;
所述建立源数据库中源表和目标数据库中目标表之间的数据映射关系,包括:分别获取源数据库的第一注册信息以及目标数据库的第二注册信息;根据所述第一注册信息使用预设数据库驱动对所述源数据库进行类型和版本的验证,以及根据所述第二注册信息使用所述预设数据库驱动对所述目标数据库进行类型和版本的验证;在所述源数据库和所述目标数据库均通过验证的情况下,在所述源数据库中源表和所述目标数据库中目标表之间建立数据类型和/或保留字和/或运算符之间的映射关系;其中,所述第一注册信息包括源数据库的服务器地址、实例、账号相关信息,所述第二注册信息包括目标数据库的服务器地址、将使用的实例、将使用的账号相关信息;
其中,根据所述第一注册信息使用预设数据库驱动对所述源数据库进行类型和版本的验证包括:结合所述预设数据库驱动的注册信息以及所述第一注册信息,通过连接测试确定所述预设数据库驱动是否与所述源数据库匹配,如果连接未超时则说明所述预设数据库驱动与所述源数据库匹配;
所述根据所述第二注册信息使用所述预设数据库驱动对所述目标数据库进行类型和版本的验证包括:结合所述预设数据库驱动的注册信息以及所述第二注册信息,通过连接测试确定所述预设数据库驱动是否与所述目标数据库匹配,如果连接未超时则说明所述预设数据库驱动与所述目标数据库匹配。
2.根据权利要求1所述的方法,其特征在于,所述从所述源表中捕获变化序列的过程,包括:
采用触发器发或者日志分析法捕获所述源表的变化序列。
3.根据权利要求1所述的方法,其特征在于,所述根据所述数据映射关系对所述变化序列进行还原处理,包括:
判断所述变化序列中是否存在多媒体类型的字段;
若否,基于SQL还原法和所述数据映射关系,对所述变化序列进行还原处理。
4.根据权利3所述的方法,其特征在于,还包括:
若是,基于所述目标数据库的DML语法和所述数据映射关系,对所述变化序列进行还原处理。
5.根据权利要求1所述的方法,其特征在于,所述利用所述SQL语句和所述变化序列对所述目标表进行更新操作,包括:
利用所述SQL语句对所述变化序列进行处理;
利用处理后的所述变化序列对所述目标表进行更新操作。
6.一种分布式数据库的数据同步装置,其特征在于,包括:
关系建立模块,用于建立源数据库中源表和目标数据库中目标表之间的数据映射关系;
数据还原模块,用于如果从所述源表中捕获到变化序列,则根据所述数据映射关系对所述变化序列进行还原处理,得到所述目标表的SQL结构化查询语言语句;
更新模块,用于将所述变化序列从所述源表分发至所述目标表,并利用所述SQL语句和所述变化序列对所述目标表进行更新操作;
所述关系建立模块,具体用于:分别获取源数据库的第一注册信息以及目标数据库的第二注册信息;根据所述第一注册信息使用预设数据库驱动对所述源数据库进行类型和版本的验证,以及根据所述第二注册信息使用所述预设数据库驱动对所述目标数据库进行类型和版本的验证;在所述源数据库和所述目标数据库均通过验证的情况下,在所述源数据库中源表和所述目标数据库中目标表之间建立数据类型和/或保留字和/或运算符之间的映射关系;其中,所述第一注册信息包括源数据库的服务器地址、实例、账号相关信息,所述第二注册信息包括目标数据库的服务器地址、将使用的实例、将使用的账号相关信息;
其中,根据所述第一注册信息使用预设数据库驱动对所述源数据库进行类型和版本的验证包括:结合所述预设数据库驱动的注册信息以及所述第一注册信息,通过连接测试确定所述预设数据库驱动是否与所述源数据库匹配,如果连接未超时则说明所述预设数据库驱动与所述源数据库匹配;
所述根据所述第二注册信息使用所述预设数据库驱动对所述目标数据库进行类型和版本的验证包括:结合所述预设数据库驱动的注册信息以及所述第二注册信息,通过连接测试确定所述预设数据库驱动是否与所述目标数据库匹配,如果连接未超时则说明所述预设数据库驱动与所述目标数据库匹配。
7.根据权利要求6所述的装置,其特征在于,用于根据所述数据映射关系对所述变化序列进行还原处理的所述数据还原模块,具体用于:
判断所述变化序列中是否存在多媒体类型的字段;若否,基于SQL还原法和所述数据映射关系,对所述变化序列进行还原处理。
8.根据权利要求6所述的装置,其特征在于,用于利用所述SQL语句和所述变化序列对所述目标表进行更新操作的所述更新模块,具体用于:
利用所述SQL语句对所述变化序列进行处理;利用处理后的所述变化序列对所述目标表进行更新操作。
CN201811148493.8A 2018-05-21 2018-09-29 一种分布式异构数据库的数据同步方法及装置 Active CN109829011B (zh)

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 CN109829011A (zh) 2019-05-31
CN109829011B true 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)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108664659A (zh) * 2018-05-21 2018-10-16 四川中电启明星信息技术有限公司 一种分布式异构数据库的数据同步方法及装置
CN109558452B (zh) * 2018-11-19 2020-12-08 武汉达梦数据库有限公司 一种查询建表操作的同步方法
CN110209741A (zh) * 2019-06-14 2019-09-06 上海中通吉网络技术有限公司 异构数据源间的数据同步方法、装置和设备
CN110765144B (zh) * 2019-10-11 2022-02-18 口碑(上海)信息技术有限公司 分布式异构数据库数据处理方法及装置
CN111061740B (zh) * 2019-12-17 2023-08-04 北京软通智慧科技有限公司 一种数据同步方法、设备和存储介质
CN112000732A (zh) * 2020-07-16 2020-11-27 北京计算机技术及应用研究所 一种基于触发器的异构数据库间相互同步方法
CN112306994A (zh) * 2020-11-10 2021-02-02 北京沃东天骏信息技术有限公司 数据库数据迁移方法、装置以及存储介质
CN112632183B (zh) * 2020-12-11 2023-07-11 广东电力通信科技有限公司 一种基于电网网络分区数据表准实时同步方法及系统
CN113220711A (zh) * 2021-05-19 2021-08-06 李坚白 一种同步异构机器人控制器数据库的方法及系统
CN115391459A (zh) * 2022-08-24 2022-11-25 南京领行科技股份有限公司 数据同步方法、装置、电子设备及计算机可读存储介质
CN115470294B (zh) * 2022-08-30 2023-05-12 昆仑数智科技有限责任公司 数据库同步方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 四川中电启明星信息技术有限公司 一种分布式异构数据库的数据同步方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
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 四川中电启明星信息技术有限公司 一种业务系统异构操作系统访问设计方法

Also Published As

Publication number Publication date
CN109829011A (zh) 2019-05-31
CN108664659A (zh) 2018-10-16
ZA201905486B (en) 2020-07-29
WO2019223228A1 (zh) 2019-11-28

Similar Documents

Publication Publication Date Title
CN109829011B (zh) 一种分布式异构数据库的数据同步方法及装置
US9432455B2 (en) Synchronizing events between mobile devices and servers
US7958088B2 (en) Dynamic data reorganization to accommodate growth across replicated databases
CN111078504A (zh) 一种分布式调用链跟踪方法、装置、计算机设备及存储介质
CN111324610A (zh) 一种数据同步的方法及装置
WO2012034440A1 (zh) 一种数据库升级脚本的生成方法和装置
US8645502B2 (en) Dynamic interface to read database through remote procedure call
CN109086382B (zh) 一种数据同步方法、装置、设备及存储介质
CN108205560B (zh) 一种数据同步方法以及装置
US9128974B2 (en) Methods for tracking database changes and devices thereof
WO2020238597A1 (zh) 基于Hadoop的数据更新方法、装置、系统及介质
US20200104404A1 (en) Seamless migration of distributed systems
CN114036119A (zh) 一种基于kettle和数据库日志的数据同步方法
CN111143470A (zh) 跨平台数据库数据同步比对方法及装置
US7636873B2 (en) Enhancement of assured event delivery mechanism to eliminate external XA store requirement
CN115934855A (zh) 一种全链路字段级血缘解析方法、系统、设备及存储介质
CN110188114A (zh) 一种数据操作的优化方法、装置、系统、设备和存储介质
CN108090056B (zh) 数据查询方法、装置及系统
JP6329552B2 (ja) 単一テーブルから複数テーブルへの参照データセグメント化
US20100293143A1 (en) Initialization of database for synchronization
CN112800060A (zh) 数据处理方法、装置、计算机可读存储介质及电子设备
CN112416944A (zh) 一种同步业务数据的方法和设备
CN114297216B (zh) 数据同步方法及其装置、计算机存储介质、电子设备
CN107577680B (zh) 基于HBase大数据的实时全文检索系统及其实现方法
US10255237B2 (en) Isolation level support in distributed database system

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