CN108108431A - 数据同步方法和系统 - Google Patents
数据同步方法和系统 Download PDFInfo
- Publication number
- CN108108431A CN108108431A CN201711370677.4A CN201711370677A CN108108431A CN 108108431 A CN108108431 A CN 108108431A CN 201711370677 A CN201711370677 A CN 201711370677A CN 108108431 A CN108108431 A CN 108108431A
- Authority
- CN
- China
- Prior art keywords
- database
- manipulation
- systems
- state recording
- 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.)
- Granted
Links
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语句对应的数据库操作;根据第一数据库系统和第二数据库系统执行数据库操作的状态记录,第一数据库系统对其第一数据库进行数据库操作,以使第一数据库与第二数据库系统的第二数据库一致。通过本发明,解决了相关技术中数据库同步技术在远程同步领域效率低或不支持异构数据库的同步的问题,提高了数据库同步效率,降低了数据库同步开销,并且实现了对异构数据库的支持。
Description
技术领域
本发明涉及数据库同步领域,具体而言,涉及一种数据同步方法和系统。
背景技术
信息时代的数据呈井喷式增长,为此许多互联网、金融等企业建立多个跨区域的数据中心。而如果将大多数据中心如果仅仅作为灾备,实属浪费。因此,许多企业都在探索建设异地多活模式的数据中心,即异地数据中心不仅有容灾能力,还有业务分流作用,承担生产任务。实现异地多活的关键在于数据库同步的效率。
相关技术中的数据库同步方法是基于数据库的增量日志。如Oracle Streams集群系列利用高级队列技术,通过用LogMiner挖掘日志文件生成变更的逻辑记录,然后将这些变更应用到目标数据库上,从而实现数据库之间或一个数据库内部的数据同步,但它不支持某些特定的数据,且不能保证数据的零丢失,尤其是对系统开销较大。
另外,由于网络延迟,这些本地的集群技术并不适用于远程异地多活模式,且对异构数据库同步支持有局限性。
发明内容
本发明提供了一种数据同步方法、系统以及设备,以至少解决相关技术中数据库同步技术在远程同步领域效率低或不支持异构数据库的同步的问题。
为了解决上述问题,本发明提供的数据同步方法按顺序进行的下列步骤:
第一数据库系统获取应用程序发送给第二数据库系统的SQL语句;
所述第一数据库系统执行所述SQL语句对应的数据库操作;
根据所述第一数据库系统和所述第二数据库系统执行数据库操作的状态记录,所述第一数据库系统对其第一数据库进行数据库操作,以使所述第一数据库与所述第二数据库系统的第二数据库一致。
本发明提供的数据同步系统包括:应用程序、第一数据库系统、第二数据库系统,其中,所述第一数据库系统包括:
获取模块,用于获取应用程序发送给第二数据库系统的SQL语句;
执行模块,用于执行所述SQL语句对应的数据库操作;
同步模块,用于根据所述第一数据库系统和所述第二数据库系统执行数据库操作的状态记录,对所述第一数据库系统的第一数据库进行数据库操作,以使所述第一数据库与所述第二数据库系统的第二数据库一致。
本发明提供的数据同步设备包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现所述的方法。
本发明提供的计算机可读存储介质上存储有计算机程序指令,当所述计算机程序指令被处理器执行时实现所述的方法。
通过本发明的上述方法、系统、设备和计算机可读存储介质,采用第一数据库系统获取应用程序发送给第二数据库系统的SQL语句;第一数据库系统执行SQL语句对应的数据库操作;根据第一数据库系统和第二数据库系统执行数据库操作的状态记录,第一数据库系统对其第一数据库进行数据库操作,以使第一数据库与第二数据库系统的第二数据库一致的方式,解决了相关技术中数据库同步技术在远程同步领域效率低或不支持异构数据库的同步的问题,提高了数据库同步效率,降低了数据库同步开销,并且实现了对异构数据库的支持。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的数据同步方法的流程图;
图2是根据本发明实施例的数据同步系统的结构框图;
图3是根据本发明实施例的数据同步系统的优选结构框图;
图4是根据本发明实施例的数据同步设备的硬件结构示意图;
图5是根据本发明优选实施例的数据同步系统的结构示意图;
图6是根据本发明优选实施例的SQL语句捕获过程的示意图;
图7是根据本发明优选实施例的数据一致性校验过程的流程图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在本实施例中提供了一种数据同步方法,图1是根据本发明实施例的数据同步方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,第一数据库系统获取应用程序发送给第二数据库系统的SQL语句;
步骤S102,第一数据库系统执行SQL语句对应的数据库操作;
步骤S103,根据第一数据库系统和第二数据库系统执行数据库操作的状态记录,第一数据库系统对其第一数据库进行数据库操作,以使第一数据库与第二数据库系统的第二数据库一致。
通过上述步骤,相比于相关技术中的数据库同步都是在执行完数据库操作之后才开始执行数据库同步的方式而言,本方法从应用程序向第二数据库系统发送SQL语句开始执行数据库同步的操作,节省了数据库操作的时间,提高了数据同步的效率。由于数据库同步时以第一数据库系统和第二数据库系统执行数据库操作的状态记录作为依据,相比于相关技术中采用LogMiner挖掘日志文件生成变更的逻辑记录的方法而言,减少了对系统资源的占用。由于结构化查询语言(Structured Query Language,简称为SQL)是标准的关系型数据库通用语言,独立于数据库本身,因此,获取SQL语句进而实现数据库同步的方式能够适用于异构数据库之间的同步。
在本实施例中,第二数据库系统为主数据库系统,第一数据库系统为第二数据库系统的备数据库系统。并且,虽然在本实施例中是以两个数据库系统为例进行描述的,但是对于存在两个以上的数据库系统的情况下,仍然适用于本发明实施例的方案。其中,这两个以上的数据库系统中包括一个主数据库系统,两个或两个以上的备数据库系统。
可选地,在步骤S101中,第一数据库系统获取应用程序发送给第二数据库系统的SQL语句包括:通过数据库连接驱动程序中设置的SQL捕获器捕获SQL语句,数据库连接驱动程序用于将应用程序发送的SQL语句发送给第二数据库系统;第一数据库获取SQL语句。
可选地,上述的数据库连接驱动程序为Java数据库连接(Java DataBaseConnectivity,简称为JDBC)或者开放数据库连接(Open Database Connectivity,简称为ODBC)。
可选地,SQL语句为能使第二数据库的数据产生变化的SQL语句,对于不会对数据库的数据产生变化的SQL语句,例如查询SQL语句,可以不进行获取,从而降低将SQL语句发送给第一数据库系统的开销,尤其适用于远程数据库同步的场景下。
可选地,步骤S103包括:校验库记录第一数据库系统和第二数据库系统执行数据库操作的状态记录;校验库根据状态记录,校验出第一数据库系统和第二数据库系统不一致的数据库操作;第一数据库系统根据该不一致的数据库操作,对第一数据库进行数据库操作,以使第一数据库与第二数据库系统的第二数据库一致。在第一数据库系统和第二数据库系统对其各自的数据库进行数据库操作时,都将数据库操作的状态记录到校验库中,这些数据库操作的状态包括:数据库操作的内容及操作是否成功的结果,通过这样的方式,得以通过查询校验库中对应的数据库操作在第一数据库和第二数据库中操作是否成功,来判断第一数据库或者第二数据库在执行完数据库操作之后的数据库是否是一致的,并对第一数据库中与第二数据库不一致之处进行数据删除、事务回滚等方式,使之与第二数据库一致。
可选地,在记录状态记录时,可以不记录执行失败的数据库操作,以避免大量执行失败的数据库操作影响数据同步的性能。
可选地,在校验库根据状态记录,校验出第一数据库系统和第二数据库系统不一致的数据库操作时,在校验到表示第一数据库系统和第二数据库系统的数据库操作一致的状态记录时,则可以删除表示第一数据库系统和第二数据库系统的数据库操作一致的状态记录。数据库操作一致的状态记录是指:数据库操作内容相同,并且在第一数据库系统和第二数据库系统中均操作成功的状态记录。
如果第二数据库系统执行SQL语句对应的数据库操作失败,则在校验库中可能不存在第二数据库系统执行该条SQL语句的数据库操作的状态记录。而如果该条SQL语句在第一数据库中被成功执行,将会导致第一数据库和第二数据库不一致。为了避免这种情况的出现,在校验库根据状态记录,校验出第一数据库系统和第二数据库系统不一致的数据库操作之前,校验库比对其记录的状态记录与第二数据库中对应该状态记录的数据是否一致;以及校验库根据比对结果,更新校验库中记录的状态记录。通过上述方式,如果第一数据库中成功执行了一个在第二数据库中执行失败的数据库操作,则第一数据库执行该数据库操作的状态记录将会被记录在校验库中,此时,将校验库中对应的这条状态记录与第二数据库中对应该状态记录的数据进行比对;如果比对结果一致,则可以直接删除该条状态记录,此时第一数据库和第二数据库的数据一致;如果比对结果不一致,则对该条状态记录进行更新,以使第一数据库能够根据该条状态记录对不一致之处进行操作,以保持第一数据库和第二数据库的数据一致。
例如,第一数据库中新增了数据X,并将新增数据X的状态记录更新到的校验库中;校验库在对新增的状态记录与第二数据库中相应数据进行比对之后,确定在第二数据库中没有新增数据X,则校验库将新增数据X的状态记录更新为删除数据X;第一数据库根据更新后的删除数据X的状态记录,删除数据X,从而实现了第一数据库和第二数据库的数据同步。
可选地,校验库周期性地执行下列操作:校验库比对其记录的状态记录与第二数据库中对应该状态记录的数据是否一致;校验库根据比对结果,更新校验库中记录的状态记录;校验库根据状态记录,校验出第一数据库系统和第二数据库系统不一致的数据库操作。执行周期可以根据需要灵活设置。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种数据同步系统,该系统用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
在本实施例中提供了一种数据同步系统。图2是根据本发明实施例的数据同步系统的结构框图,如图2所示,该系统包括:应用程序21、第一数据库系统22、第二数据库系统23。
第一数据库系统22包括:获取模块221,用于获取应用程序21发送给第二数据库系统23的SQL语句;执行模块222,用于执行SQL语句对应的数据库操作;同步模块223,用于根据第一数据库系统22和第二数据库系统23执行数据库操作的状态记录,对第一数据库系统22的第一数据库进行数据库操作,以使第一数据库与第二数据库系统23的第二数据库一致。
图3是根据本发明实施例的数据同步系统的优选结构框图,如图3所示,可选地,该系统还包括:数据库连接驱动程序24,用于将应用程序21发送的SQL语句发送给第二数据库系统23;其中,数据库连接驱动程序24中设置有SQL捕获器241,SQL捕获器241用于捕获SQL语句;获取模块221,用于获取SQL捕获器241捕获的SQL语句。
可选地,系统还包括:校验库25,该校验库25包括:记录模块251和校验模块252,
记录模块251,用于记录第一数据库系统22和第二数据库系统23执行数据库操作的状态记录;
校验模块252,用于根据状态记录,校验出第一数据库系统22和第二数据库系统23不一致的数据库操作;
同步模块223,用于根据该不一致的数据库操作,对第一数据库进行数据库操作,以使第一数据库与第二数据库系统23的第二数据库一致。
可选地,校验库25还包括:
删除模块253,用于删除表示第一数据库系统22和第二数据库系统23的数据库操作一致的状态记录。
可选地,校验库25还包括:比对模块254和更新模块255,
比对模块254,用于比对其记录的状态记录与第二数据库中对应该状态记录的数据是否一致;
更新模块255,用于根据比对结果,更新校验库中记录的状态记录。
可选地,校验库的比对模块254、更新模块255和校验模块252周期性地运行。
另外,结合图1描述的本发明实施例的数据同步方法可以由数据同步设备来实现。图4是根据本发明实施例的数据同步设备的硬件结构示意图。数据同步设备可以包括处理器41以及存储有计算机程序指令的存储器42。具体地,上述处理器41可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,ASIC),或者可以被配置成实施本发明实施例的一个或多个集成电路。
存储器42可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器42可包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(Universal Serial Bus,USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器42可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器42可在数据处理装置的内部或外部。在特定实施例中,存储器42是非易失性固态存储器。在特定实施例中,存储器42包括只读存储器(ROM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或者两个或更多个以上这些的组合。
处理器41通过读取并执行存储器42中存储的计算机程序指令,以实现上述实施例中的任意一种数据同步方法。
在一个示例中,数据同步设备还可包括通信接口43和总线44。其中,如图4所示,处理器41、存储器42、通信接口43通过总线44连接并完成相互间的通信。
通信接口43,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。
总线44包括硬件、软件或两者,将数据同步设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(AGP)或其他图形总线、增强工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、无限带宽互连、低引脚数(LPC)总线、存储器总线、微信道架构(MCA)总线、外围组件互连(PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(SATA)总线、视频电子标准协会局部(VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线44可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。
另外,结合上述实施例中的数据同步方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种数据同步方法。
需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(ASIC)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、ROM、闪存、可擦除ROM(EROM)、软盘、CD-ROM、光盘、硬盘、光纤介质、射频(RF)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。
还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。
为了使本发明实施例的描述更加清楚,下面结合优选实施例进行描述和说明。
本发明优选实施例的目的在于提供一种高效的数据同步方法,以解决现有数据库同步技术在远程同步领域效率低、以及不支持异构数据库的同步。
需要说明的是,虽然本实施例中是以远程数据库同步为例进行描述和说明的,但是本发明实施例提供的数据同步方法不仅适用于远程数据库的同步,也适用于本地数据库的同步。
为解决上述问题,本发明优选实施例提出了基于驱动程序SQL捕获的远程数据库同步机制。通过在驱动程序中设置SQL捕获器,捕获对本地数据库数据产生变化的SQL语句,经消息服务器转发给异地数据库系统进行操作。同步之后在校验周期内根据校验库判断出异地数据库系统不一致的操作,对其进行删除或事务回滚,使其与主数据库数据一致,从而保证了数据的一致性。
图5是根据本发明优选实施例的数据同步系统的结构示意图,如图5所示,相比于图3所示的数据同步系统而言,主要区别在于图5所示的数据同步系统中增加了消息服务器,以实现SQL语句的集中转发。
图5的阴影部分是本优选实施例相对于相关技术中的数据同步系统而言新增的结构。应用程序是通过数据库连接驱动程序(JDBC,ODBC等)与数据库系统进行通信的。在连接驱动程序中设置捕获器,捕获对主数据库数据产生变化的结构化查询语言SQL,然后通过消息服务器转发给备数据库操作。校验库是校验主备数据库系统之间数据是否一致的数据库。
JDBC由于其平台无关性,应用十分广泛。以JDBC为对象进行SQL捕获方法研究。JDBC中的SQL捕获原理如图6所示。在应用程序调用连接驱动时,加载驱动类DriverManager,创建Connection连接通道之后,由Statement(PreparedStatement、CallableStatement)向数据库发送SQL语句。通过在驱动程序中设置捕获器来捕获SQL语句(查询等对数据库数据无变化的操作语句不捕获),以MySQL当前最新的JDBC版本mysql-connector-java-5.1.37为例。
对于Statement类,可以在它的com.mysql.jdbc包下面StatementImpl类中的executeUpdateInternal的方法中设置捕获器。
对于PreparedStatement类而言,只有在预编译之后才能捕获到完整的不带参数的SQL语句。fillSendPacket这个方法是将预编译之后的结果放在缓冲区,并在缓冲区添加参数的实际值,这样有效的保证了对数据库操作的安全性,防止SQL注入攻击等。可以在fillSendPacket方法中以字节流的形式将完整的SQL捕获出来。
对于存储过程用到的CallableStatement,它是继承PreparedStatement,可以将它的SQL语句完整的捕获出来。由于存储过程是保存在数据库系统内部的,应用程序层只是调用,并不好判断它内部的语句内容,对于其中的查询与非查询语句,可以都同步。或者都不同步,通过下面的一致性校验来弥补。
其它种类数据库的连接驱动由于都遵循JDBC规范,结构很相似。而像Hibernate等ORM框架,由于都是基于JDBC驱动程序的,因此通过修改JDBC源码都可以捕捉到完整的SQL语句。另外,像其它的连接驱动如ODBC等,都可以用JDBC桥接的方式进行连接。
本优选实施例中采用的数据一致性校验算法基本思想是:操作本地数据库系统完成后在校验库中记录这次操作的状态,然后再根据之后的对应的异地备数据库系统操作来将之前的标志位修改为对应的值。最后在校验周期内扫描校验数据中标志位为false的校验数据,并根据本地数据库系统的状况来将这些数据恢复到异地数据库中。
参考图7,数据一致性校验过程包括如下步骤:
步骤1,主数据库操作完成后,判断操作是否执行成功。若执行成功,在校验库中构造校验对象:操作记录为主键,操作时间戳和一个表示此操作是否应用到了备数据库中的标志位(这里值设置为false)。若执行失败,直接结束。
步骤2,异地数据库操作完成后,判断操作是否执行成功。若执行成功,查询校验库,按主键比较,如果校验库中存在该记录,更新该记录(将标志位false改成true);如果不存在,直接将该记录插入到校验库中(值默认为false)。若执行失败,直接结束。
步骤3,若本地数据库与异地数据库数据一致,则校验库中标志位都为true。若本地数据库操作成功,而异地数据库操作失败,则相应的操作记录的标志位为false。若本地数据库操作失败,而异地数据库操作操作成功,则相应的操作记录的标志位也为false。若标志位全是true,则本地数据库与异地数据库数据一致,校验结束。若标志位为false,且本地数据库中存在这些记录,则将该记录写入到异地数据库中。若标志位为false,但本地数据库中不存在这些记录(即本地数据库操作失败,异地数据库操作成功的记录),则将这些记录所对应的异地数据库中的数据删除。
步骤4,不论插入或者删除执行是否成功,都成标志位为true的记录删除,剩下的标志位为false的记录留到下一校验周期中校验。校验周期可以按实际生产情况及设备水平进行设置。
综上所述,本发明的上述实施例或者优选实施例与现有技术相比,具有以下优点:
(1)提高了同步效率。现有技术都是在数据库操作完成之后再开始同步,而本发明在数据库操作之前就开始同步,节省了数据库操作的时间,提高了同步效率。
(2)有助于异构数据库之间的同步。由于SQL是标准的关系型数据库通用语言,独立于数据库本身,因此该机制也适用于异构数据库之间的同步。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,该方法包括按顺序进行的下列步骤:
第一数据库系统获取应用程序发送给第二数据库系统的SQL语句;
所述第一数据库系统执行所述SQL语句对应的数据库操作;
根据所述第一数据库系统和所述第二数据库系统执行数据库操作的状态记录,所述第一数据库系统对其第一数据库进行数据库操作,以使所述第一数据库与所述第二数据库系统的第二数据库一致。
2.根据权利要求1所述的方法,其特征在于,所述的第一数据库系统获取应用程序发送给第二数据库系统的SQL语句的方法包括:
通过数据库连接驱动程序中设置的SQL捕获器捕获所述SQL语句,所述数据库连接驱动程序用于将所述应用程序发送的SQL语句发送给所述第二数据库系统;
所述第一数据库获取所述SQL语句。
3.根据权利要求2所述的方法,其特征在于,所述数据库连接驱动程序为Java数据库连接JDBC或者开放数据库连接ODBC。
4.根据权利要求1至3中任一项所述的方法,其特征在于,根据所述第一数据库系统和所述第二数据库系统执行数据库操作的状态记录,所述第一数据库系统对其第一数据库进行数据库操作,以使所述第一数据库与所述第二数据库系统的第二数据库一致的方法包括:
校验库记录所述第一数据库系统和所述第二数据库系统执行数据库操作的状态记录;
所述校验库比对其记录的状态记录与所述第二数据库中对应该状态记录的数据是否一致;
所述校验库根据比对结果,更新所述校验库中记录的状态记录;
所述校验库根据所述状态记录,校验出所述第一数据库系统和所述第二数据库系统不一致的数据库操作;
所述校验库删除表示所述第一数据库系统和所述第二数据库系统的数据库操作一致的状态记录;
所述第一数据库系统根据该不一致的数据库操作,对所述第一数据库进行数据库操作,以使所述第一数据库与所述第二数据库系统的第二数据库一致。
5.一种数据同步系统,其特征在于,所述系统包括:应用程序、第一数据库系统、第二数据库系统,其中,所述第一数据库系统包括:
获取模块,用于获取应用程序发送给第二数据库系统的SQL语句;
执行模块,用于执行所述SQL语句对应的数据库操作;
同步模块,用于根据所述第一数据库系统和所述第二数据库系统执行数据库操作的状态记录,对所述第一数据库系统的第一数据库进行数据库操作,以使所述第一数据库与所述第二数据库系统的第二数据库一致。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括:数据库连接驱动程序,用于将所述应用程序发送的SQL语句发送给所述第二数据库系统;其中,所述数据库连接驱动程序中设置有SQL捕获器,所述SQL捕获器用于捕获所述SQL语句;
所述获取模块,用于获取所述SQL捕获器捕获的所述SQL语句。
7.根据权利要求5或6所述的系统,其特征在于,所述系统还包括:校验库,所述校验库包括:记录模块、校验模块、同步模块和删除模块;所述记录模块,用于记录所述第一数据库系统和所述第二数据库系统执行数据库操作的状态记录;
所述校验模块,用于根据所述状态记录,校验出所述第一数据库系统和所述第二数据库系统不一致的数据库操作;
所述同步模块,用于根据该不一致的数据库操作,对所述第一数据库进行数据库操作,以使所述第一数据库与所述第二数据库系统的第二数据库一致;
删除模块,用于删除表示所述第一数据库系统和所述第二数据库系统的数据库操作一致的状态记录。
8.根据权利要求7所述的系统,其特征在于,所述校验库还包括:比对模块和更新模块;
所述比对模块,用于比对其记录的状态记录与所述第二数据库中对应该状态记录的数据是否一致;
所述更新模块,用于根据比对结果,更新所述校验库中记录的状态记录。
9.一种数据同步设备,其特征在于,包括:至少一个处理器、至少一个存储器以及存储在所述存储器中的计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如权利要求1至4中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,当所述计算机程序指令被处理器执行时实现如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711370677.4A CN108108431B (zh) | 2017-12-19 | 2017-12-19 | 数据同步方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711370677.4A CN108108431B (zh) | 2017-12-19 | 2017-12-19 | 数据同步方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108108431A true CN108108431A (zh) | 2018-06-01 |
CN108108431B CN108108431B (zh) | 2021-07-23 |
Family
ID=62210053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711370677.4A Active CN108108431B (zh) | 2017-12-19 | 2017-12-19 | 数据同步方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108431B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110225087A (zh) * | 2019-05-08 | 2019-09-10 | 平安科技(深圳)有限公司 | 基于全局负载均衡的云存取方法、装置及存储介质 |
CN111352766A (zh) * | 2018-12-21 | 2020-06-30 | 中国移动通信集团山东有限公司 | 一种数据库的双活实现方法及装置 |
CN112015812A (zh) * | 2020-08-10 | 2020-12-01 | 仁励家网络科技(杭州)有限公司 | 数据同步方法和数据同步装置 |
WO2021083371A1 (zh) * | 2019-11-01 | 2021-05-06 | 网联清算有限公司 | 数据库多活方法及装置 |
WO2023105373A1 (en) * | 2021-12-08 | 2023-06-15 | International Business Machines Corporation | Reduced latency query processing |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100106749A1 (en) * | 2008-10-29 | 2010-04-29 | International Business Machines Corporation | Reorganizing table-based data objects |
CN102063502A (zh) * | 2011-01-06 | 2011-05-18 | 天津神舟通用数据技术有限公司 | 实现异构数据库数据同步的方法 |
CN103020112A (zh) * | 2012-11-06 | 2013-04-03 | 深圳中兴网信科技有限公司 | 异构数据库同步系统和异构数据库同步方法 |
CN103886091A (zh) * | 2014-04-01 | 2014-06-25 | 无锡科技职业学院 | 一种基于记录标记的数据库同步方法 |
CN104346479A (zh) * | 2014-11-26 | 2015-02-11 | 北京奇虎科技有限公司 | 一种数据库同步方法及装置 |
CN106227822A (zh) * | 2016-07-22 | 2016-12-14 | 深圳市中润四方信息技术有限公司 | 一种数据分发方法及数据同步系统 |
CN107357920A (zh) * | 2017-07-21 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种增量式的多副本数据同步方法及系统 |
CN107423303A (zh) * | 2016-05-24 | 2017-12-01 | 北京京东尚科信息技术有限公司 | 数据同步的方法和系统 |
-
2017
- 2017-12-19 CN CN201711370677.4A patent/CN108108431B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100106749A1 (en) * | 2008-10-29 | 2010-04-29 | International Business Machines Corporation | Reorganizing table-based data objects |
CN102063502A (zh) * | 2011-01-06 | 2011-05-18 | 天津神舟通用数据技术有限公司 | 实现异构数据库数据同步的方法 |
CN103020112A (zh) * | 2012-11-06 | 2013-04-03 | 深圳中兴网信科技有限公司 | 异构数据库同步系统和异构数据库同步方法 |
CN103886091A (zh) * | 2014-04-01 | 2014-06-25 | 无锡科技职业学院 | 一种基于记录标记的数据库同步方法 |
CN104346479A (zh) * | 2014-11-26 | 2015-02-11 | 北京奇虎科技有限公司 | 一种数据库同步方法及装置 |
CN107423303A (zh) * | 2016-05-24 | 2017-12-01 | 北京京东尚科信息技术有限公司 | 数据同步的方法和系统 |
CN106227822A (zh) * | 2016-07-22 | 2016-12-14 | 深圳市中润四方信息技术有限公司 | 一种数据分发方法及数据同步系统 |
CN107357920A (zh) * | 2017-07-21 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种增量式的多副本数据同步方法及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111352766A (zh) * | 2018-12-21 | 2020-06-30 | 中国移动通信集团山东有限公司 | 一种数据库的双活实现方法及装置 |
CN110225087A (zh) * | 2019-05-08 | 2019-09-10 | 平安科技(深圳)有限公司 | 基于全局负载均衡的云存取方法、装置及存储介质 |
WO2021083371A1 (zh) * | 2019-11-01 | 2021-05-06 | 网联清算有限公司 | 数据库多活方法及装置 |
CN112015812A (zh) * | 2020-08-10 | 2020-12-01 | 仁励家网络科技(杭州)有限公司 | 数据同步方法和数据同步装置 |
CN112015812B (zh) * | 2020-08-10 | 2021-04-27 | 仁励家网络科技(杭州)有限公司 | 数据同步方法和数据同步装置 |
WO2023105373A1 (en) * | 2021-12-08 | 2023-06-15 | International Business Machines Corporation | Reduced latency query processing |
US11886437B2 (en) | 2021-12-08 | 2024-01-30 | International Business Machines Corporation | Reduced latency query processing |
Also Published As
Publication number | Publication date |
---|---|
CN108108431B (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108431A (zh) | 数据同步方法和系统 | |
CN106610854B (zh) | 一种模型更新方法及装置 | |
CN103559591B (zh) | 基于可信计算的软件管理系统和管理方法 | |
CN107609188B (zh) | 基于GoldenGate的数据同步校验方法 | |
CN109685502A (zh) | 一种适用于区块链网络的加速共识方法 | |
CN102487522B (zh) | 终端设备的管理方法和网关设备 | |
CN111737227B (zh) | 数据修改方法及系统 | |
CN112256315A (zh) | 一种升级方法、装置、设备及存储介质 | |
US20120142330A1 (en) | System and Method For Transactional Application Lifecycle Management For Mobile Devices | |
CN109508561A (zh) | 区块链网络和权限管理方法 | |
CN111026569A (zh) | 一种在联盟链中修复指定区块数据的方法 | |
CN111080250B (zh) | 流程回退补偿方法、装置、存储介质及电子设备 | |
CN113132790B (zh) | 一种视频转储方法及装置 | |
CN109714218B (zh) | 一种物联网服务器配置信息同步方法 | |
CN112764964A (zh) | 一种解决fota升级失败后无法重刷的方法及其系统 | |
CN112256978A (zh) | 一种基于数据模型的数据处理方法、装置、介质 | |
CN117539883B (zh) | 应用模版更新方法、装置、存储介质及设备 | |
CN112053243B (zh) | 一种区块链中智能合约升级的方法及装置 | |
CN110113746A (zh) | 白名单处理方法、企业用户终端和服务器 | |
CN110830387B (zh) | 一种pfd发送失败的处理方法、装置、设备及介质 | |
CN112416389B (zh) | 一种基于区块链技术的ota软件版本管理方法 | |
CN114138323B (zh) | 一种产品多版本开发的管理方法、装置、设备及可读介质 | |
CN113301062B (zh) | 数据模型的同步方法、通信设备以及具有存储功能的装置 | |
CN112860683B (zh) | 数据集实时清理方法、装置及系统 | |
CN114968445B (zh) | 用于app的车辆视图配置方法、系统及可读存储介质 |
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 |