CN112988883A - 数据库的数据同步方法、装置以及存储介质 - Google Patents
数据库的数据同步方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN112988883A CN112988883A CN201911296442.4A CN201911296442A CN112988883A CN 112988883 A CN112988883 A CN 112988883A CN 201911296442 A CN201911296442 A CN 201911296442A CN 112988883 A CN112988883 A CN 112988883A
- Authority
- CN
- China
- Prior art keywords
- transaction
- global
- database
- data
- data nodes
- 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
Images
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
-
- 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
- G06F16/275—Synchronous replication
-
- 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
- G06F16/273—Asynchronous replication or reconciliation
-
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据库的数据同步方法、装置以及存储介质,所述方法包括在所述多个数据节点反馈的事务响应结果均为成功的情况下,接收所述客户端发送的事务提交请求消息,并向事务处理表写入全局事务ID;将所述事务提交请求消息发送给所述多个数据节点;接收所述多个数据节点反馈的事务提交结果;在所述多个数据节点反馈的事务提交结果均为成功的情况下,向全局事务管理器申请释放所述全局事务ID。本申请可以实现异构数据库系统中分布式数据库与单机数据库间的数据同步,采用单向同步以及将待处理事务信息与事务本身提交成功与否绑定的方式,解决了同时向两个数据库发送请求导致的不一致问题,大大提高了数据同步的可靠性。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种数据库的数据同步方法、装置以及存储介质。
背景技术
异构数据库系统是相关的多个数据库系统的集合,例如分布式数据库系统和单机数据库系统的集合。在异构数据库系统的一种数据同步场景中,需要将客户端的数据同步至分布式数据库和单机数据库中。现有的一种可应用于该场景的数据同步方式是在客户端和数据库之间设置代理(Proxy),由Proxy接收客户端的事务数据,并由Proxy将事务数据改写成能相应被分布式数据库和单机数据库执行的结构化语言,并将相应的结构化语言发送给分布式数据库和单机数据库,进而实现将客户端的数据同步至分布式数据库和单机数据库中。上述同步方式的弊端是如果分布式数据库和单机数据库接收到请求后反馈不同的响应结果,则Proxy无法处理,甚至可能会堵塞客户端的事务请求。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
一方面,本申请实施例提供了一种数据库的数据同步方法、装置以及存储介质,可实现异构数据库系统中分布式数据库和单机数据库间的数据同步。
另一方面,本申请实施例提供了一种数据库的数据同步方法,包括:
接收客户端发送的事务启动请求;
响应于所述事务启动请求,向全局事务管理器申请全局事务ID;
接收所述全局事务管理器反馈的全局事务ID,反馈事务启动成功消息给所述客户端;
在接收到所述全局事务管理器反馈的全局事务ID的情况下,接收所述客户端发送的事务请求消息,所述事务请求消息携带有待执行的第一事务语句;
将所述全局事务ID及所述事务请求消息发送给分布式数据库的多个数据节点;
接收所述多个数据节点反馈的事务响应结果;
在所述多个数据节点反馈的事务响应结果均为成功的情况下,反馈事务响应成功消息给所述客户端;
接收所述客户端发送的事务提交请求消息,并向事务处理表写入全局事务ID;
将所述事务提交请求消息发送给所述多个数据节点;
接收所述多个数据节点反馈的事务提交结果;
在所述多个数据节点反馈的事务提交结果均为成功的情况下,反馈事务提交成功消息给所述客户端,向全局事务管理器申请释放所述全局事务ID,以使同步模块能够根据释放的所述全局事务ID,从所述多个数据节点获取与所述全局事务ID对应的第一事务语句。
另一方面,本申请实施例提供了一种数据库的数据同步方法,包括:
从事务处理表获取待处理事务及与所述待处理事务对应的全局事务ID;
向全局事务管理器查询所述待处理事务的全局事务ID是否已释放;
对于全局事务ID已释放的待处理事务,从分布式数据库的多个数据节点获取与所述全局事务ID对应的第一事务语句;
将获取的所述第一事务语句转换成适配单机数据库执行的第二事务语句;
将所述第二事务语句发送给单机数据库;
将所述事务处理表中与所述全局事务ID对应的待处理事务更新为处理完毕。
另一方面,本申请实施例提供了一种装置,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的程序,当所述处理器执行所述存储器存储的程序时,所述处理器用于执行如上所述的任一种数据库的数据同步方法。
再一方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述的任一种数据库的数据同步方法。
本申请实施例,一方面,通过事务处理表记录客户端发送的事务的全局事务ID,并通过适配分布式数据库执行的第一事务语句将事务交由分布式数据库执行和提交,以使分布式数据库同步与事务相关的数据。当分布式数据库完成该事务提交后,释放该事务的全局事务ID。另一方面,从事务处理表中获取未处理的事务,然后根据已释放的全局事务ID,从分布式数据库各数据节点中获取与全局事务ID对应的第一事务语句,通过对这些第一事务语句转换成适配单机数据库的第二事务语句后,发送给单机数据库进行同步,并在事务处理表中将该事务更新为处理完毕。基于本申请实施例的技术方案,可以实现异构数据库系统中分布式数据库与单机数据库间的数据同步,采用单向同步以及将待处理事务信息与事务本身提交成功与否绑定的方式,解决了同时向两个数据库发送请求导致的不一致问题,大大提高了数据同步的可靠性。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1是本申请实施例提供的数据库的数据同步方法的应用场景示意图;
图2是本申请实施例提供的一种数据库的数据同步方法的流程示意图;
图3是本申请实施例提供的另一种数据库的数据同步方法的流程示意图;
图4是本申请实施例提供的一种装置的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
应了解,在本申请实施例的描述中,多个(或多项)的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到“第一”、“第二”等只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
异构数据库系统是相关的多个数据库系统的集合,例如分布式数据库系统和单机数据库系统的集合。在异构数据库系统的一种数据同步场景中,需要将客户端的数据同步至分布式数据库和单机数据库中。现有的一种可应用于该场景的数据同步方式是在客户端和数据库之间设置代理(Proxy),由Proxy接收客户端的同步请求,并由Proxy将请求改写成能相应被分布式数据库和单机数据库执行的结构化语言,并将相应的结构化语言请求发送给分布式数据库和单机数据库,进而实现二者的数据同步。上述同步方式的弊端是如果分布式数据库和单机数据库接收到请求后反馈不同的响应结果,则Proxy无法处理,甚至可能会堵塞客户端的事务请求。
本申请实施例提供了数据库的数据同步方法、装置以及存储介质,可实现异构数据库系统中分布式数据库和单机数据库间的数据同步。
图1示出了本申请实施例提供的数据库的数据同步方法的应用场景示意图。该场景架构包括客户端(Client)、分布式数据库、单机数据库、代理(Proxy)、同步模块和全局事务管理器(Global Transaction Manager,简称GTM)。
客户端用于发起事务,以通过事务命令数据库执行增、删和改的数据同步操作。
分布式数据库包含多个数据节点,每个数据节点可用于执行来自客户端的事务,实现对与事务相关的数据同步。
单机数据库是只能运行在单机上,不提供网络功能的数据库。比如ACCESS、FOXPRO等都是单机数据库
代理Proxy用于将客户端发送的事务中的语句转发给分布式数据库执行,以使分布式数据库同步与事务相关的数据。
同步模块用于从分布式数据库的数据节点中获取与全局事务ID(GlobalTransaction ID,简称GTID)对应的事务语句,并将该事务语句转换成适配单机数据库的语句后,发送给单机数据库执行,以最终实现分布式数据库和单机数据库间的数据同步。
全局事务管理器GTM用于对全局事务的生命周期进行管理(创建/释放/查询),并为全局事务分配GTID,实现事务之间的隔离性。
图2示出了本申请实施例提供的一种数据库的数据同步方法。该方法可以由图1所示场景中的代理Proxy执行。如图2所示,所述方法包括但不限于如下步骤。
S101,接收客户端发送的事务启动请求。
当客户端需要将业务数据同步至数据库时,发送事务启动请求至Proxy,Proxy接收来自客户端的该事务启动请求。
S102,响应于事务启动请求,向GTM申请GTID。
Proxy接收到客户端发送的事务启动请求后,向GTM申请GTID。
S103,接收GTM反馈的GTID。
GTM收到Proxy发送的GTID申请后,为事务分配GTID,并将该GTID反馈给Proxy,Proxy接收来自GTM的该GTID。
S104,反馈事务启动成功消息给客户端。
当Proxy接收到GTM反馈的GTID,向客户端反馈事务启动成功消息,以使客户端接收到Proxy发送的事务启动成功消息后,进一步发送事务请求消息。
S105,接收客户端发送的与GTID对应的事务请求消息,该事务请求消息携带有待执行的第一事务语句。
Proxy接收客户端发送的与GTID对应的事务请求消息。该事务请求消息携带有待执行的第一事务语句,这里的第一事务语句为适配分布式数据库执行的语句,例如可以是SQL语句。
S106,将GTID及事务请求消息发送给分布式数据库的多个数据节点。
示例性的,Proxy根据接收到来自客户端的事务请求消息后,向分布式数据库中的多个数据节点发送GTID及事务请求消息,并等待各数据节点的响应。事务请求消息用于询问各数据节点是否可以执行事务的提交操作。应理解,这里的多个数据节点为与客户端所发起事务相关的事务参与者。
各个数据节点接收到GTID及事务请求消息后,对事务请求信息进行解析,以执行事务请求消息中的第一事务语句,并将GTID和对应的第一事务语句记入事务日志(Log)。
S107,接收多个数据节点反馈的事务响应结果。
示例性的,各个数据节点反馈事务响应结果给Proxy,如果数据节点成功执行了事务,向Proxy反馈“成功”,表示事务可以执行;如果数据节点没有成功执行事务,向Proxy反馈“失败”,表示事务不可以执行。Proxy接收上述各个数据节点反馈的事务响应结果,并判断是否所有数据节点反馈的事务响应结果均为“成功”。
S108,反馈事务响应成功消息给客户端。
Proxy接收到上述多个数据节点反馈的事务响应结果后,如果所有数据节点向Proxy反馈的事务响应结果均为“成功”,Proxy反馈事务响应成功消息给客户端,以使客户端收到Proxy发送的事务响应成功消息后,进一步发送事务提交(Commit)请求消息给Proxy。
应理解,一旦有一个数据节点向Proxy反馈的事务响应结果为“失败”,Proxy则不执行步骤S107至S114。
在分布式事务处理场景中,一个完整的事务往往需要调用多个服务。例如,常见的“转账”业务中,需要调用:1、创建交易订单;2、创建支付订单;3、A账户扣款、B账户入款。每个服务可以分别通过步骤S105至S108完成,客户端发送与服务相应的第一事务语句给参与的数据节点。因此本领域技术人员应理解,可以在步骤S104和S109之间重复执行多次步骤S105至S108,以完成整个事务。
S109,接收客户端发送的事务提交请求消息。
S110,向事务处理表写入GTID。
在所有数据节点反馈的事务响应结果均为“成功”的情况下,Proxy接收客户端发送的事务提交请求消息,并向事务处理表写入GTID。应理解,这里步骤S109和S110的顺序可以互换。
示例性的,事务处理表可以由Proxy创建,并随后与事务提交请求消息一并发送给数据节点。也可以设置独立管理事务处理表的组件,由该组件对事务处理表进行诸如创建、更新等操作。
可选的,当向事务处理表写入GTID,还可以向事务处理表写入数据节点信息。在事务处理表中写入参与事务的数据节点信息,以便于后续步骤中同步模块查找参与匹配GTID的事务的数据节点,以将相关数据同步至单机数据库。
可选的,当向事务处理表写入GTID,还可以向事务处理表写入在事务处理表中写入事务处理状态,以便于后续步骤中同步模块从事务处理表获取未处理事务,以将相关数据同步至单机数据库。当然,也可以不在事务处理表中写入事务处理状态,而是将处理完毕的事务从事务处理表中删除,这样同样能达到同步模块从事务处理表获取未处理事务的目的。
S111,将事务提交请求消息发送给多个数据节点。
本申请实施例,Proxy接收到来自客户端的事务提交请求消息后,将该事务提交请求消息发送给所有参与事务的数据节点。
可选的,在一些实施例中,在步骤S111中,当将事务提交请求消息发送给多个数据节点,还将事务处理表发送给多个数据节点,使得事务处理表随事务提交请求消息一并发送给数据节点,以便数据节点可以根据事务处理表中记录的GTID执行对应的事务提交操作。
本申请实施例,在事务提交前,先向各个数据节点发送事务请求消息,询问是否可以执行事务的提交操作,在确定所有数据节点均可以执行事务的提交操作的情况下,才执行事务提交操作,以确保分布式数据库的数据同步过程中的一致性。
S112,接收多个数据节点反馈的事务提交结果。
各个数据节点接收到事务提交请求消息后,执行事务提交操作,并在完成后向Proxy反馈事务提交结果,Proxy接收各个数据节点反馈的事务提交结果,当各数据节点反馈的事务提交结果均为“成功”的情况下,执行步骤S113和S114。
S113,Proxy反馈事务提交成功消息给客户端。
Proxy反馈事务提交成功消息给客户端,通知客户端事务已成功提交至分布式数据库,以使客户端启动下一个事务,避免客户端的事务堵塞。
S114,在多个数据节点反馈的事务提交结果均为成功的情况下,向GTM申请释放GTID。
示例性的,如果所有数据节点向Proxy反馈的提交结果均为“成功”,Proxy则向GTM申请将该事务的GTID释放。如果有一个数据节点向Proxy反馈的提交结果为“失败”,则继续将该事务的GTID保持在占用状态。GTID释放后,同步模块能够利用该释放的GTID,从多个数据节点获取与GTID对应的第一事务语句。
应理解,步骤S113和步骤S114可以互换顺序。
本申请实施例,通过事务处理表记录客户端发送的事务的GTID,并通过适配分布式数据库执行的第一事务语句将事务交由分布式数据库执行和提交,以实现分布式数据库同步与事务相关的数据。当分布式数据库完成该事务提交后,向GTM申请释放该事务的GTID。这里释放与事务对应的GTID的作用是使得同步模块从事务处理表中获取到未处理的事务,同时可以通过判断未处理事务的GTID是否释放,来确定要从分布式数据库各数据节点中获取的第一事务语句,进而将这些第一事务语句转换成适配单机数据库的第二事务语句后,发送给单机数据库进行同步。
图3示出了本申请实施例提供的另一种数据库的数据同步方法。该方法可以由图1所示场景中的同步模块执行。如图3所示,方法包括但不限于如下步骤。
S201,从事务处理表获取待处理事务及与待处理事务对应的GTID。
这里待处理事务是指未同步至单机数据库的事务。待处理事务及与该待处理事务对应的GTID均可以从事务处理表获取。在一些实施例中,事务处理表除记录GTID外,还记录与GTID对应的事务处理状态,根据该事务处理状态即可得知哪些是未处理事务。也有一些实施例,当事务处理完毕后,便会从事务处理表中删除,因此事务处理表上的所有事务均是未处理事务。
S202,向GTM查询待处理事务的GTID是否已释放。
同步模块根据获取到的待处理事务的GTID,向GTM查询该GTID是否已经释放。
S203,对于GTID已释放的待处理事务,从分布式数据库的多个数据节点获取与GTID对应的第一事务语句。
示例性的,对于GTID已释放的待处理事务,同步模块可以从分布式数据库中参与该事务的数据节点中获取相应的第一事务语句。
S204,将获取的第一事务语句转换成适配单机数据库执行的第二事务语句。
S205,将第二事务语句发送给单机数据库。
示例性的,同步模块将由第一事务语句转换成的第二事务语句发送给单机数据库,以由单机数据库执行第二事务语句,达到将与待处理事务相关的数据同步至单机数据库的目的。
在一种可能的实现方式中,同步模块将所有第二事务语句组装成单个完整事务,将单个完整事务发送给单机数据库,以由单机数据库执行该单个完整事务。
S206,将事务处理表中与GTID对应的待处理事务更新为处理完毕。
在与待处理事务相关的数据已全部同步至单机数据库的情况下,将事务处理表中与GTID对应的待处理事务更新为处理完毕。例如可以将事务处理表中与GTID对应的事务处理状态项更新为处理完毕,也可以从事务处理表中直接删除与GTID对应的表项。
本申请实施例中,同步模块从事务处理表中获取未处理的事务,然后根据已释放的全局事务ID,从分布式数据库各数据节点中获取与全局事务ID对应的第一事务语句,通过对这些第一事务语句转换成适配单机数据库的第二事务语句后,发送给单机数据库进行同步,并在事务处理表中将该事务更新为处理完毕。基于本申请实施例的技术方案,可以实现异构数据库系统中分布式数据库与单机数据库间的数据同步,采用单向同步以及将待处理事务信息与事务本身提交成功与否绑定的方式,解决了同时向两个数据库发送请求导致的不一致问题,大大提高了数据同步的可靠性。
图4示出了本申请实施例提供的装置300。如图4所示,该装置300包括但不限于:
存储器320,用于存储程序;
处理器310,用于执行存储器320存储的程序,当处理器310执行存储器320存储的程序时,处理器310用于执行上述的任一种数据库的数据同步方法。
处理器310和存储器320可以通过总线或者其他方式连接。
存储器320作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请实施例描述的数据灾备演练方法。处理器310通过运行存储在存储器320中的非暂态软件程序以及指令,从而实现上述的任一种数据库的数据同步方法。
存储器320可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、功能所需要的应用程序;存储数据区可存储执行上述的任一种数据库的数据同步方法。此外,存储器320可以包括高速随机存取存储器,还可以包括非暂态存储器,例如磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器320可选包括相对于处理器310远程设置的存储器,这些远程存储器可以通过网络连接至该装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述的任一种数据库的数据同步方法所需的非暂态软件程序以及指令存储在存储器320中,当被一个或者多个处理器310执行时,执行上述的任一种数据库的数据同步方法,例如,执行图2中描述的方法步骤S101至S114,图3中描述的方法步骤S201至S206。
本申请实施例还提供了计算机可读存储介质,存储有计算机可执行指令,计算机可执行指令用于执行上述的任一种数据库的数据同步方法。
在一实施例中,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器310执行,例如,被上述装置300中的一个处理器310执行,可使得上述一个或多个处理器310执行上述的任一种数据库的数据同步方法,例如,执行图2中描述的方法步骤S101至S114,图3中描述的方法步骤S201至S206。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的共享条件下还可作出种种等同的变形或替换,这些等同的变形或替换均包括在本申请权利要求所限定的范围内。
Claims (7)
1.数据库的数据同步方法,包括:
接收客户端发送的事务启动请求;
响应于所述事务启动请求,向全局事务管理器申请全局事务ID;
接收所述全局事务管理器反馈的全局事务ID,反馈事务启动成功消息给所述客户端;
在接收到所述全局事务管理器反馈的全局事务ID的情况下,接收所述客户端发送的事务请求消息,所述事务请求消息携带有待执行的第一事务语句;
将所述全局事务ID及所述事务请求消息发送给分布式数据库的多个数据节点;
接收所述多个数据节点反馈的事务响应结果;
在所述多个数据节点反馈的事务响应结果均为成功的情况下,反馈事务响应成功消息给所述客户端;
接收所述客户端发送的事务提交请求消息,并向事务处理表写入全局事务ID;
将所述事务提交请求消息发送给所述多个数据节点;
接收所述多个数据节点反馈的事务提交结果;
在所述多个数据节点反馈的事务提交结果均为成功的情况下,反馈事务提交成功消息给所述客户端,向全局事务管理器申请释放所述全局事务ID,以使同步模块能够根据释放的所述全局事务ID,从所述多个数据节点获取与所述全局事务ID对应的第一事务语句。
2.根据权利要求1所述的方法,其特征在于,还包括:
当向所述事务处理表写入全局事务ID,还向所述事务处理表写入如下至少一项内容:
数据节点信息;
事务处理状态。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
当将所述事务提交请求消息发送给所述多个数据节点,还将所述事务处理表发送给所述多个数据节点。
4.数据库的数据同步方法,包括:
从事务处理表获取待处理事务及与所述待处理事务对应的全局事务ID;
向全局事务管理器查询所述待处理事务的全局事务ID是否已释放;
对于全局事务ID已释放的待处理事务,从分布式数据库的多个数据节点获取与所述全局事务ID对应的第一事务语句;
将获取的所述第一事务语句转换成适配单机数据库执行的第二事务语句;
将所述第二事务语句发送给单机数据库;
将所述事务处理表中与所述全局事务ID对应的待处理事务更新为处理完毕。
5.根据权利要求4所述的方法,其特征在于,所述将所述第二事务语句发送给单机数据库,包括:
将所有第二事务语句组装成单个完整事务,将所述单个完整事务发送给所述单机数据库。
6.一种装置,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的程序,当所述处理器执行所述存储器存储的程序时,所述处理器用于执行如下之一:
权利要求1至3中任一项所述的方法;
权利要求4至5中任一项所述的方法。
7.一种计算机可读存储介质,其特征在于,存储有计算机可执行指令,所述计算机可执行指令用于执行如下之一:
权利要求1至3中任一项所述的方法;
权利要求4至5中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911296442.4A CN112988883B (zh) | 2019-12-16 | 2019-12-16 | 数据库的数据同步方法、装置以及存储介质 |
PCT/CN2020/131181 WO2021120995A1 (zh) | 2019-12-16 | 2020-11-24 | 数据库的数据同步方法、装置以及存储介质 |
EP20904001.3A EP4064152A4 (en) | 2019-12-16 | 2020-11-24 | DATA SYNCHRONIZATION METHOD AND DEVICE FOR DATABASES AND STORAGE MEDIUM |
US17/782,855 US11836154B2 (en) | 2019-12-16 | 2020-11-24 | Data synchronization method and device for databases, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911296442.4A CN112988883B (zh) | 2019-12-16 | 2019-12-16 | 数据库的数据同步方法、装置以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988883A true CN112988883A (zh) | 2021-06-18 |
CN112988883B CN112988883B (zh) | 2023-03-10 |
Family
ID=76343471
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911296442.4A Active CN112988883B (zh) | 2019-12-16 | 2019-12-16 | 数据库的数据同步方法、装置以及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11836154B2 (zh) |
EP (1) | EP4064152A4 (zh) |
CN (1) | CN112988883B (zh) |
WO (1) | WO2021120995A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268471A (zh) * | 2021-06-24 | 2021-08-17 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
CN114254036A (zh) * | 2021-11-12 | 2022-03-29 | 阿里巴巴(中国)有限公司 | 数据处理方法以及系统 |
CN114510495A (zh) * | 2022-04-21 | 2022-05-17 | 北京安华金和科技有限公司 | 一种数据库业务数据一致性处理方法和系统 |
CN115329006A (zh) * | 2022-08-31 | 2022-11-11 | 保利和悦生活科技服务有限公司 | 一种网络商城后台与第三方接口的数据同步方法及系统 |
WO2023165318A1 (zh) * | 2022-03-03 | 2023-09-07 | 阿里巴巴(中国)有限公司 | 资源处理系统以及方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113625965B (zh) * | 2021-07-19 | 2024-02-20 | 济南浪潮数据技术有限公司 | 分布式存储系统的数据存储方法、系统、装置及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120102006A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
CN105608086A (zh) * | 2014-11-17 | 2016-05-25 | 中兴通讯股份有限公司 | 分布式数据库系统的事务处理方法及装置 |
CN106547781A (zh) * | 2015-09-21 | 2017-03-29 | 南京中兴新软件有限责任公司 | 一种实现分布式事务的方法、装置及数据库服务器 |
US20170177698A1 (en) * | 2015-12-21 | 2017-06-22 | Sap Se | Decentralized transaction commit protocol |
CN108647237A (zh) * | 2018-03-30 | 2018-10-12 | 厦门海迈科技股份有限公司 | 异构关系型数据库间的数据同步方法 |
CN109522098A (zh) * | 2018-11-28 | 2019-03-26 | 星环信息科技(上海)有限公司 | 分布式数据库中的事务处理方法、装置、系统和储存介质 |
CN109819048A (zh) * | 2019-02-27 | 2019-05-28 | 北京字节跳动网络技术有限公司 | 数据同步方法、装置、终端及存储介质 |
US20190197174A1 (en) * | 2017-12-22 | 2019-06-27 | Warevalley Co., Ltd. | Method and system for replicating data to heterogeneous database and detecting synchronization error of heterogeneous database through sql packet analysis |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6438582B1 (en) * | 1998-07-21 | 2002-08-20 | International Business Machines Corporation | Method and system for efficiently coordinating commit processing in a parallel or distributed database system |
JP2013033345A (ja) * | 2011-08-01 | 2013-02-14 | Internatl Business Mach Corp <Ibm> | トランザクション処理システム、方法及びプログラム |
US11429675B2 (en) * | 2018-06-20 | 2022-08-30 | Mongodb, Inc. | Systems and methods for managing transactional operation |
CN103902617B (zh) * | 2012-12-28 | 2017-06-09 | 华为技术有限公司 | 分布式数据库同步方法和系统 |
US9600500B1 (en) * | 2013-06-21 | 2017-03-21 | Amazon Technologies, Inc. | Single phase transaction commits for distributed database transactions |
US9519674B2 (en) * | 2014-09-10 | 2016-12-13 | Amazon Technologies, Inc. | Stateless datastore-independent transactions |
CN105893386B (zh) * | 2015-01-04 | 2021-08-06 | 伊姆西Ip控股有限责任公司 | 用于在同步复制系统中处理事务的方法和装置 |
CN106033562B (zh) * | 2015-03-16 | 2019-12-06 | 阿里巴巴集团控股有限公司 | 事务处理方法、事务参与节点及事务协调节点 |
CN106156174A (zh) * | 2015-04-16 | 2016-11-23 | 中国移动通信集团山西有限公司 | 一种数据库事务处理的系统和方法 |
US10268743B2 (en) * | 2015-06-19 | 2019-04-23 | Sap Se | Distributed database transaction protocol |
CN106598992B (zh) | 2015-10-15 | 2020-10-23 | 南京中兴软件有限责任公司 | 数据库的操作方法及装置 |
US10339127B2 (en) | 2016-01-28 | 2019-07-02 | Oracle International Corporation | Guaranteed commit outcome in a distributed transaction processing system |
US10503725B2 (en) * | 2016-10-13 | 2019-12-10 | Futurewei Technologies, Inc. | Decentralized distributed database consistency |
US10936578B2 (en) * | 2017-06-01 | 2021-03-02 | Sap Se | Client-driven commit of distributed write transactions in a database environment |
US10810268B2 (en) * | 2017-12-06 | 2020-10-20 | Futurewei Technologies, Inc. | High-throughput distributed transaction management for globally consistent sharded OLTP system and method of implementing |
CN108932338B (zh) * | 2018-07-11 | 2021-08-10 | 北京百度网讯科技有限公司 | 数据更新方法、装置、设备和介质 |
CN111190935B (zh) * | 2019-08-27 | 2022-10-14 | 中国人民大学 | 数据读取方法、装置、计算机设备及存储介质 |
-
2019
- 2019-12-16 CN CN201911296442.4A patent/CN112988883B/zh active Active
-
2020
- 2020-11-24 EP EP20904001.3A patent/EP4064152A4/en active Pending
- 2020-11-24 US US17/782,855 patent/US11836154B2/en active Active
- 2020-11-24 WO PCT/CN2020/131181 patent/WO2021120995A1/zh unknown
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120102006A1 (en) * | 2010-10-20 | 2012-04-26 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
CN105608086A (zh) * | 2014-11-17 | 2016-05-25 | 中兴通讯股份有限公司 | 分布式数据库系统的事务处理方法及装置 |
CN106547781A (zh) * | 2015-09-21 | 2017-03-29 | 南京中兴新软件有限责任公司 | 一种实现分布式事务的方法、装置及数据库服务器 |
US20170177698A1 (en) * | 2015-12-21 | 2017-06-22 | Sap Se | Decentralized transaction commit protocol |
US20190197174A1 (en) * | 2017-12-22 | 2019-06-27 | Warevalley Co., Ltd. | Method and system for replicating data to heterogeneous database and detecting synchronization error of heterogeneous database through sql packet analysis |
CN108647237A (zh) * | 2018-03-30 | 2018-10-12 | 厦门海迈科技股份有限公司 | 异构关系型数据库间的数据同步方法 |
CN109522098A (zh) * | 2018-11-28 | 2019-03-26 | 星环信息科技(上海)有限公司 | 分布式数据库中的事务处理方法、装置、系统和储存介质 |
CN109819048A (zh) * | 2019-02-27 | 2019-05-28 | 北京字节跳动网络技术有限公司 | 数据同步方法、装置、终端及存储介质 |
Non-Patent Citations (1)
Title |
---|
王玉标等: "基于Web服务的异构数据库共享及同步机制", 《计算机工程与设计》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113268471A (zh) * | 2021-06-24 | 2021-08-17 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
CN113268471B (zh) * | 2021-06-24 | 2023-09-22 | 京东科技控股股份有限公司 | 处理分布式事务的方法、代理连接池、系统、设备及介质 |
CN114254036A (zh) * | 2021-11-12 | 2022-03-29 | 阿里巴巴(中国)有限公司 | 数据处理方法以及系统 |
WO2023165318A1 (zh) * | 2022-03-03 | 2023-09-07 | 阿里巴巴(中国)有限公司 | 资源处理系统以及方法 |
CN114510495A (zh) * | 2022-04-21 | 2022-05-17 | 北京安华金和科技有限公司 | 一种数据库业务数据一致性处理方法和系统 |
CN115329006A (zh) * | 2022-08-31 | 2022-11-11 | 保利和悦生活科技服务有限公司 | 一种网络商城后台与第三方接口的数据同步方法及系统 |
CN115329006B (zh) * | 2022-08-31 | 2023-08-04 | 保利和悦生活科技服务有限公司 | 一种网络商城后台与第三方接口的数据同步方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112988883B (zh) | 2023-03-10 |
WO2021120995A1 (zh) | 2021-06-24 |
US11836154B2 (en) | 2023-12-05 |
EP4064152A4 (en) | 2023-01-18 |
US20230004576A1 (en) | 2023-01-05 |
EP4064152A1 (en) | 2022-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112988883B (zh) | 数据库的数据同步方法、装置以及存储介质 | |
US11288253B2 (en) | Allocation method and device for a distributed lock | |
US8185493B2 (en) | Solution method of in-doubt state in two-phase commit protocol of distributed transaction | |
CN105512266A (zh) | 一种实现分布式数据库操作一致性的方法及装置 | |
CN103870570B (zh) | 一种基于远程日志备份的 HBase 数据可用性及持久性的方法 | |
CN106933550B (zh) | 全局信息获取、处理及更新方法、装置和系统 | |
CN111225012A (zh) | 事务处理方法、装置和设备 | |
CN109491765B (zh) | 对跨域业务请求的处理方法及装置 | |
CN107612950B (zh) | 一种提供服务的方法、装置、系统、电子设备 | |
CN112367149B (zh) | 消息获取方法、装置、设备及存储介质 | |
CN110008041B (zh) | 一种消息处理方法及装置 | |
CN113268471B (zh) | 处理分布式事务的方法、代理连接池、系统、设备及介质 | |
CA3041211C (en) | Utilizing nonce table to resolve concurrent blockchain transaction failure | |
CN108228581B (zh) | Zookeeper兼容通信方法、服务器及系统 | |
WO2022001750A1 (zh) | 数据同步处理方法、电子设备以及存储介质 | |
US20180024896A1 (en) | Information processing system, information processing apparatus, and information processing method | |
US20180349432A1 (en) | Database system, transaction management node, method, and medium | |
KR20140047230A (ko) | 분산 시스템에서 분산 트랜잭션의 최적화를 위한 방법 및 트랜잭션을 최적화한 분산 시스템 | |
CN112822091A (zh) | 一种消息处理方法和装置 | |
CN112632093A (zh) | 工单处理方法、设备、系统、存储介质及程序产品 | |
CN112328560A (zh) | 一种文件调度方法和系统 | |
CN111127088A (zh) | 实现最终一致性的方法、装置、计算机设备及存储介质 | |
CN112749172A (zh) | 一种缓存与数据库之间的数据同步方法及系统 | |
CN112860746B (zh) | 一种基于缓存削减的方法、设备及系统 | |
CN115643271A (zh) | 一种云上多应用数据同步方法、装置、服务器及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220117 Address after: 100176 floor 18, building 8, courtyard 10, KEGU 1st Street, Beijing Economic and Technological Development Zone, Daxing District, Beijing (Yizhuang group, high-end industrial area of Beijing Pilot Free Trade Zone) Applicant after: Jinzhuan Xinke Co.,Ltd. Address before: 518057 Zhongxing building, science and technology south road, Nanshan District hi tech Industrial Park, Guangdong, Shenzhen Applicant before: ZTE Corp. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |