CN116821232A - 一种数据同步方法及相关装置 - Google Patents
一种数据同步方法及相关装置 Download PDFInfo
- Publication number
- CN116821232A CN116821232A CN202210283849.9A CN202210283849A CN116821232A CN 116821232 A CN116821232 A CN 116821232A CN 202210283849 A CN202210283849 A CN 202210283849A CN 116821232 A CN116821232 A CN 116821232A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronized
- operation data
- data center
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 230000001360 synchronised effect Effects 0.000 claims abstract description 260
- 230000000694 effects Effects 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims abstract description 18
- 230000008859 change Effects 0.000 claims description 21
- 238000012217 deletion Methods 0.000 claims description 21
- 230000037430 deletion Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 11
- 238000001514 detection method Methods 0.000 claims description 6
- 238000003780 insertion Methods 0.000 claims description 6
- 230000037431 insertion Effects 0.000 claims description 6
- 238000010586 diagram Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 11
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据同步方法及相关装置,其中该方法应用于多活数据中心架构下的目标数据中心,目标数据中心为架构下多个数据中心中的任一个,多个数据中心具有各自对应的数据库。该方法包括:接收其它数据中心发送的待同步操作数据,待同步操作数据配置有版本信息,版本信息是根据待同步操作数据的产生时间确定的;根据待同步操作数据和参考操作数据各自的版本信息,确定待同步操作数据是否有效;若确定待同步操作数据有效,则根据待同步操作数据,在对应的数据库中进行基于目标数据的变更处理;若确定待同步操作数据无效,则忽略待同步操作数据。该方法能够解决因发生数据冲突导致的数据误覆盖问题,保证各数据中心之间的数据完全同步。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据同步方法及相关装置。
背景技术
多活数据中心架构是一种包括多个数据中心的网络架构,多活数据中心架构中部署在不同物理区域的多个数据中心可以同时对外提供服务。
在多活数据中心架构中,各个数据中心之间会进行数据同步。图1为一种示例性的多活数据中心架构的示意图;如图1所示,该架构包括位于不同物理区域的A、B、C三个数据中心的数据库,每个数据中心向其数据库写入数据,同时,对于写入的数据,还会通过数据同步链路将其同步给其它数据中心,从而保证每个数据中心都拥有全量的数据集合。在该种数据同步机制下,当架构中的某个数据中心出现灾难性事故时,可以相应地将该数据中心的流量划拨到其它数据中心,从而实现业务的快速转移,保证业务正常运行。
在上述数据同步机制中最核心的问题就是不能发生数据冲突,所谓数据冲突是指同时接收到多个数据中心发送的待同步数据。如若存在数据冲突,则极有可能因数据同步顺序出现问题,而导致在时序上后产生的数据被先产生的数据所覆盖,从而得到非预期的结果。在很多情况下,即使是很小的数据冲突也可能导致很严重的后果,例如,导致多活数据中心架构发生错乱,进而影响该多活数据中心架构下业务的正常运行。
发明内容
本申请实施例提供了一种数据同步方法及相关装置,能够有效地解决因发生数据冲突而导致的数据误覆盖的问题,保证多活数据中心架构中各数据中心之间的数据完全同步。
有鉴于此,本申请第一方面提供了一种数据同步方法,应用于多活数据中心架构下的目标数据中心,所述多活数据中心架构包括多个数据中心,所述目标数据中心为所述多个数据中心中的任一个,所述多个数据中心具有其各自对应的数据库;所述方法包括:
接收所述多活数据中心架构下的其它数据中心发送的待同步操作数据;所述待同步操作数据用于指示基于目标数据进行变更处理,所述待同步操作数据配置有版本信息,所述版本信息是根据所述待同步操作数据的产生时间确定的;
根据所述待同步操作数据的版本信息和参考操作数据的版本信息,确定所述待同步操作数据是否有效;所述参考操作数据包括所述目标数据中心已执行的操作数据、和所述目标数据中心已接收但未执行的操作数据中的至少一种;
若确定所述待同步操作数据有效,则根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理;若确定所述待同步操作数据无效,则忽略所述待同步操作数据。
本申请第二方面提供了一种数据同步装置,部署于多活数据中心架构下的目标数据中心,所述多活数据中心架构包括多个数据中心,所述目标数据中心为所述多个数据中心中的任一个,所述多个数据中心具有其各自对应的数据库;所述装置包括:
数据接收模块,用于接收所述多活数据中心架构下的其它数据中心发送的待同步操作数据;所述待同步操作数据用于指示基于目标数据进行变更处理,所述待同步操作数据配置有版本信息,所述版本信息是根据所述待同步操作数据的产生时间确定的;
数据检测模块,用于根据所述待同步操作数据的版本信息和参考操作数据的版本信息,确定所述待同步操作数据是否有效;所述参考操作数据包括所述目标数据中心已执行的操作数据、和所述目标数据中心已接收但未执行的操作数据中的至少一种;
数据变更模块,用于若确定所述待同步操作数据有效,则根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理;若确定所述待同步操作数据无效,则忽略所述待同步操作数据。
本申请第三方面提供了一种计算机设备,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序,执行如上述第一方面所述的数据同步方法的步骤。
本申请第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面所述的数据同步方法的步骤。
本申请第五方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面所述的数据同步方法的步骤。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种数据同步方法,该方法应用于多活数据中心架构下的目标数据中心,多活数据中心架构中包括多个数据中心,该目标数据可以是这多个数据中心中的任一个,并且多活数据中心架构下各个数据中心均具有其各自对应的数据库。目标数据中心可以接收多活数据中心架构下的其它数据中心发送的待同步操作数据,该待同步操作数据用于指示基于目标数据进行变更处理,并且该待同步操作数据配置有版本信息,该版本信息是根据该待同步操作数据的产生时间确定的;然后,目标数据中心可以根据该待同步操作数据的版本信息和参考操作数据的版本信息,确定该待同步操作数据是否有效,此处参考操作版本数据可以包括目标数据中心已执行的操作数据、以及目标数据中心已接收但未执行的操作数据中的至少一种;若确定该待同步操作数据有效,则可以根据该待同步操作数据在目标数据中心对应的数据库中进行基于目标数据的变更处理,若确定该待同步操作数据无效,则可以忽略该待同步操作数据。如此,根据各项操作数据的产生时间相应地为各项操作数据配置对应的版本信息,并基于各项操作数据各自对应的版本信息进行数据同步,以保证多活数据中心架构下的各数据中心基于最新版本的操作数据实现数据同步操作,在该种情况下,即使发生数据冲突,也可以因各数据中心均基于最新版本的操作数据实现数据同步,而保证各数据中心之间的数据一致性。
附图说明
图1为一种示例性的多活数据中心架构的示意图;
图2为一种示例性的将操作数据误写入其它数据中心的场景示意图;
图3为本申请实施例提供的多活数据中心架构的工作原理示意图;
图4为本申请实施例提供的数据同步方法的流程示意图;
图5为本申请实施例提供的一种情况下的数据同步示意图;
图6为本申请实施例提供的多活数据中心架构的同步原理示意图;
图7为本申请实施例提供的数据同步装置的结构示意图;
图8为本申请实施例提供的服务器的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
云技术(Cloud technology)是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络***的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台***进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的***后盾支撑,只能通过云计算来实现。
数据库(Database),简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。
数据库管理***(Database Management System,DBMS)是为管理数据库而设计的电脑软件***,一般具有存储、截取、安全保障、备份等基础功能。数据库管理***可以依据它所支持的数据库模型来作分类,例如关系式、XML(Extensible Markup Language,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例如SQL(结构化查询语言(Structured Query Language)、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些DBMS能够跨类别,例如,同时支持多种查询语言。
本申请实施例提供的数据同步方法即涉及云技术中的数据库技术。
对于多活数据中心架构来说,其中各数据中心间基于数据同步机制进行数据同步时,最核心的问题就是不能发生数据冲突,一旦发生数据冲突,极有可能引发很严重的后果,影响多活数据中心架构整体的正常运行。
相关技术中,避免发生数据冲突的方式主要有两种:一种是针对不同的数据中心设置与其对应的数据记录表,将与该数据中心相关的数据(如针对该数据中心存储的数据进行变更的操作数据等)写入该数据中心对应的数据记录表中,多活数据中心架构中各数据中心基于其各自对应的数据记录表,进行各数据中心之间的数据同步。另一种在单个数据记录表中为不同的数据中心分配不同的键值区间,例如,针对数据中心A分配键值区间1、4、7、……,针对数据中心B分配键值区间2、5、8、……,针对数据中心C分配键值区间3、6、9、……;针对每个数据中心,将与该数据中心相关的数据写入对应的键值区间中,多活数据中心架构中各数据中心基于该数据记录表中各数据中心各自对应的各键值区间,进行各数据中心之间的数据同步。
然而,上述避免发生数据冲突的方式对整个多活数据中心架构的使用和运维带来了很大的挑战,访问不同数据中心的业务需要感知其使用的是哪个数据中心,需要将数据写入哪个表或哪个键值区间,以避免数据写错,这对业务的设计和部署都带来了诸多不便,增加了业务使用数据库和运维业务的复杂度。此外,在极端情况下,如果业务部署错误,可能导致整个多活数据中心架构混乱,可能需要人为接入恢复整个***;由于多活数据中心架构中链路配置本身就比较复杂,因此恢复到正常数据也非常复杂,导致业务恢复的时间较长。
图2为一种示例性的将操作数据误写入其它数据中心的场景示意图。具体的,假设业务侧针对数据中心A存储的数据触发了两次更新操作,第一次为将(1,a)修改为(1,b),第二次为将(1,b)修改为(1,c);在该场景中误将第一次更新操作(即(1,a)→(1,b))发送到了数据中心B,导致数据中心A只接收到了第二次更新操作的操作数据,并直接执行第二次更新将其存储的数据a修改为数据c。数据中心B接收到将(1,a)修改为(1,b)的操作数据后,还会将该操作数据同步给数据中心A;在数据中心A已基于第二次更新操作的操作数据将其存储的数据a修改为数据c的情况下,数据中心A接收到数据中心B同步的将(1,a)修改为(1,b)的操作数据后,会误将已修改好的数据c再修改为数据b,即使得数据b覆盖数据c,而这与业务侧期望的数据结果并不一致,从而导致多活数据中心架构下数据的错乱。
为了解决上述相关技术存在的问题,有效地应对多活数据中心架构下的数据冲突问题,本申请实施例提供了一种数据同步方法。该方法应用于多活数据中心架构下的目标数据中心,多活数据中心架构中包括多个数据中心,该目标数据可以是这多个数据中心中的任一个,并且多活数据中心架构下各个数据中心均具有其各自对应的数据库。
在该数据同步方法中,目标数据中心可以接收多活数据中心架构下的其它数据中心发送的待同步操作数据,该待同步操作数据用于指示基于目标数据进行变更处理,并且该待同步操作数据配置有版本信息,该版本信息是根据该待同步操作数据的产生时间确定的。然后,目标数据中心可以根据该待同步操作数据的版本信息和参考操作数据的版本信息,确定该待同步操作数据是否有效,此处参考操作版本数据可以包括目标数据中心已执行的操作数据、以及目标数据中心已接收但未执行的操作数据中的至少一种。若确定该待同步操作数据有效,则可以根据该待同步操作数据在目标数据中心对应的数据库中进行基于目标数据的变更处理;若确定该待同步操作数据无效,则可以忽略该待同步操作数据。
上述数据同步方法,根据各项操作数据的产生时间相应地为各项操作数据配置对应的版本信息,并基于各项操作数据各自对应的版本信息进行数据同步,以保证多活数据中心架构下的各数据中心基于最新版本的操作数据实现数据同步操作;在该种情况下,即使发生数据冲突,也可以因各数据中心均基于最新版本的操作数据实现数据同步,而保证各数据中心之间的数据一致性。也就是说,在多活数据中心架构下即使发生了数据冲突,该架构下的各数据中心也可以根据预先配置的策略自动解决该数据冲突,从而提高了整个多活数据中心架构的鲁棒性。此外,相较于相关技术中针对不同的数据中心设置对应的数据记录表,或者针对不同的数据中心分配数据记录表中不同的键值区间的方案,本申请实施例提供的方案也不会增加业务侧使用数据库和运维业务的复杂度。
需要说明的是,在本申请实施例中,多活数据中心架构下的各数据中心具体可以为服务器,该服务器以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。多活数据中心架构下的各数据中心可以与终端对接,为终端提供对应的服务器,该终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
为了便于理解本申请实施例提供的数据同步方法,下面先对本申请实施例提供的数据同步方法适用的应用场景进行示例性介绍。
参见图3,图3为本申请实施例提供的多活数据中心架构300的工作原理示意图,也即本申请实施例提供的数据同步方法的应用场景示意图。如图3所示,多活数据中心架构300下包括多个数据中心,分别为数据中心310、数据中心320、数据中心330、……、数据中心3n0,每个数据中心均具有其对应的数据库,如数据中心310对应于数据库311、数据中心320对应于数据库321、数据中心330对应于数据库331、……、数据中心3n0对应于数据库3n1;应理解,数据中心对应的数据库具体可以是独立于数据中心的存储设备,也可以是集成在数据中心内部的存储部件。
本实施例以数据中心310为目标数据中心为例,对本申请实施例提供的数据同步方法进行场景性示例介绍。
如图3所示,数据中心310可以接收数据中心320通过数据同步链路发送的待同步操作数据;该待同步操作数据用于指示基于目标数据进行变更处理,例如,该待同步操作数据可以用于指示在数据库311中***该目标数据,又例如,该待同步操作数据可以用于指示删除数据库311中原本存储的目标数据,再例如,该待同步操作数据可以用于指示将数据库311中原本存储的目标数据更新为目标更新数据,等等。此外,该待同步操作数据配置有版本信息,该版本信息是根据该待同步操作数据的产生时间确定的;应理解,该待同步操作数据的产生时间越晚,该待同步操作数据的版本信息对应的版本越高。
进而,数据中心310可以根据该待同步操作数据的版本信息和参考操作数据的版本信息,来确定该待同步操作数据是否有效。此处的参考操作数据可以包括数据中心310已执行的操作数据、以及数据中心310已接收但尚未执行的操作数据中的至少一种;其中,数据中心310已执行的操作数据可以理解为已根据该操作数据对数据库311中的数据进行变更;数据中心310已接收但尚未执行的操作数据可以理解为尚未根据该操作数据对数据库311中的数据进行变更,该操作数据可以来自多活数据中心架构下的任一数据中心。具体根据待同步操作数据的版本信息和参考操作数据的版本信息,确定该待同步操作数据是否有效时,数据中心310可以判断该待同步操作数据的版本信息是否高于参考操作数据的版本信息,若是,则说明该待同步操作数据的产生时间相对较晚,该待同步操作数据有效,若否,则说明该待同步操作数据的产生时间相对较早,该待同步操作数据无效。
数据中心310若通过上述操作确定待同步操作数据有效,则可以根据该待同步操作数据,在数据库311中进行基于目标数据的变更处理,例如***、更新或删除目标数据。反之,数据中心310若通过上述操作确定待同步操作数据无效,则可以忽略该待同步操作数据,即不针对数据库311进行该待同步操作数据指示的操作。
应理解,图3所示的应用场景仅为示例,在实际应用中,本申请实施例提供的数据同步方法还可以应用于其它场景,本申请对此不做任何限定。
下面通过方法实施例对本申请提供的数据同步方法进行详细介绍。
参见图4,图4为本申请实施例提供的数据同步方法的流程示意图。该数据同步方法应用于多活数据中心架构下的目标数据中心,如图4所示,该数据同步方法包括以下步骤:
步骤401:接收所述多活数据中心架构下的其它数据中心发送的待同步操作数据;所述待同步操作数据用于指示基于目标数据进行变更处理,所述待同步操作数据配置有版本信息,所述版本信息是根据所述待同步操作数据的产生时间确定的。
在多活数据中心架构下,为了保证其中各数据中心之间的数据同步,各数据中心之间需要通过数据同步链路进行数据同步,以使各数据中心各自对应的数据库中均存储有多活数据中心架构下全量的数据。
对于多活数据中心架构下的目标数据中心(其可以为多活数据中心架构下的任意一个数据中心),其可以接收该多活数据中心架构下的其它数据中心通过数据同步链路发送的待同步操作数据;应理解,目标数据中心可以同时接收多个数据中心发送的待同步操作数据,也可以只接收一个数据中心发送的待同步操作数据,本申请在此不对所接收的待同步操作数据的数量做任何限定。
需要说明的是,在本申请实施例中,待同步操作数据用于指示基于目标数据进行变更处理;例如,该待同步操作数据可以用于指示在目标数据中心对应的数据库中***该目标数据,又例如,该待同步操作数据可以用于指示删除目标数据中心对应的数据库中原本存储的目标数据,再例如,该待同步操作数据可以用于指示将目标数据中心对应的数据库中原本存储的目标数据更新为目标更新数据,等等。上述待同步操作数据具体可以表现为SQL语言集中的数据操作语言(Data Manipulation Language,DML),该DML是负责对数据库对象进行数据访问工作的指令集。
此外,在本申请实施例中,待同步操作数据配置有版本信息,该版本信息是根据该待同步操作数据的产生时间确定的;应理解,待同步操作数据的产生时间越高,该待同步操作数据的版本信息应该越高。示例性的,待同步操作数据的版本信息具体可以表现为时间戳,待同步操作数据的产生时间越晚,该待同步操作数据的时间戳指示的时间越靠后。示例性的,待同步操作数据的版本信息具体也可以表现为版本编号,待同步操作数据的产生时间越晚,该待同步操作数据的版本编号越大。本申请在此不对待同步操作数据的版本信息的形式做任何限定。
此外,在本申请实施例中,待同步操作数据还可以配置有源数据中心标识,该源数据中心标识对应的数据中心即为最初产生该待同步操作数据的数据中心。示例性的,可以预先为多活数据中心架构中各个数据中心配置对应的数据中心标识,某数据中心向目标数据中心发送待同步操作数据时,除了可以为该待同步操作数据配置版本信息外,还可以为该待同步操作数据配置源数据中心标识,该源数据中心标识指示的即是最初产生该待同步操作数据的源头数据中心。
应理解,在本申请实施例中,在多活数据中心架构中产生的各操作数据,均可以配置对应的版本信息和源数据中心标识。即,在多活数据中心架构下产生的各操作数据,均属于需要向其它数据中心同步的操作数据,也即上文中的待同步操作数据,相应地,对于在多活数据中心架构中产生的各操作数据,均需要配置对应的版本信息和源数据中心标识。
需要说明的是,本申请实施例提供的方法可以应用于基于数据记录表记录操作数据的多活数据中心架构。此处的数据记录表即为上文相关技术中的数据记录表;该数据记录表可以是针对不同的数据中心单独配置的,用于记录与该数据中心相关的操作数据;该数据记录表也可以是针对多活数据中心架构下各数据中心统一配置的,其中包括各数据中心各自对应的键值区间,针对每个数据中心在其对应的键值区间内记录与该数据中心相关的操作数据。
当本申请实施例提供的方法应用于基于数据记录表记录操作数据的多活数据中心架构下时,可以在数据记录表中增加两列,一列用于承载操作数据的版本信息,另一列用于承载操作数据的源数据中心标识。
步骤402:根据所述待同步操作数据的版本信息和参考操作数据的版本信息,确定所述待同步操作数据是否有效;所述参考操作数据包括所述目标数据中心已执行的操作数据、和所述目标数据中心已接收但未执行的操作数据中的至少一种。
目标数据中心接收到其它数据中心发送过来的待同步操作数据后,可以根据该待同步操作数据的版本信息和参考操作数据的版本信息,确定该待同步操作数据是否有效。
需要说明的是,参考操作数据可以包括目标数据中心已执行的操作数据、以及目标数据中心已接收但未执行的操作数据中的至少一种。对于目标数据中心已执行的操作数据,可以理解为目标数据中心已根据该操作数据,对其对应的数据库中存储的数据进行了变更,例如,目标数据中心已根据该操作数据执行完成数据***、数据删除、数据更新等变更操作。对于目标数据中心已接收但未执行的操作数据,可以理解为目标数据中心已接收到该操作数据,但尚未根据该操作数据对其对应的数据库中存储的数据进行变更。
应理解,参考操作数据同样也配置有版本信息,该版本信息是根据参考操作数据最初产生的时间确定的。也就是说,参考操作数据本质上是目标数据中心在接收到待同步操作数据之前获取到的操作数据,此类操作数据可以是业务侧直接写入目标数据中心的,也可以是多活数据中心架构中其它数据中心传输给该目标数据中心的,在本申请实施例中,在多活数据中心架构下产生的各操作数据均配置有对应的版本信息。
在本申请实施例中,操作数据的产生时间越晚,那么该操作数据的版本信息越高。在此基础上,目标数据中心具体确定待同步操作数据是否有效时,可以判断待同步操作数据的版本信息是否高于参考操作数据的版本信息。若待同步操作数据的版本信息高于参考操作数据的版本信息,则确定该待同步操作数据有效;若待同步操作数据的版本信息低于参考操作数据的版本信息,则确定该待同步操作数据无效。
具体的,若待同步操作数据的版本信息高于参考操作数据的版本信息,则说明该待同步操作数据的产生时间晚于该参考操作数据的产生时间,该待同步操作数据仍是有效的,即可以确定该待同步操作数据有效。反之,若该待同步操作数据的版本信息低于参考操作数据的版本信息,则说明该待同步操作数据的产生时间早于该参考操作数据的产生时间,该待同步操作数据的有效性已被参考操作数据替代,即可以确定该待同步操作数据无效。
正如上文中步骤401所介绍的,在本申请实施例中,除了可以为待同步操作数据配置版本信息外,还可以为待同步操作数据配置源数据中心标识,在一些可能的情况下,目标数据中心根据待同步操作数据的版本信息和参考操作数据的版本信息,可能无法确定待同步操作数据是否有效,此时,即可根据待同步操作数据的源数据中心标识和参考操作数据的源数据中心标识,确定该待同步操作数据是否有效。
在实际应用中,多活数据中心架构运行过程中各个数据中心上可能产生大量的操作数据,因此容易发生在相同时间点同时产生多个操作数据的情况,对于同时产生的多个操作数据,由于其产生时间相同,因此其各自对应的版本信息也会相同。当参考操作数据的版本信息与待同步操作数据的版本信息相同时,目标数据中心将无法单纯地依靠参考操作数据的版本信息与待同步操作数据的版本信息,来确定待同步操作数据的有效性。
此时,目标数据中心可以进一步借助待同步操作数据的源数据中心标识和参考操作数据的源数据中心标识,来确定待同步操作数据的有效性。
具体的,对于多活数据中心架构,其中的各个数据中心均配置有对应的优先级,并且各个数据中心各自对应的优先级之间具有全序关系,即各个数据中心各自对应的优先级之间的大小关系固定,并且具有可比性。在此基础上,目标数据中心可以确定待同步操作数据的源数据中心标识对应的数据中心,作为第一数据中心,确定参考操作数据的源数据中心标识对应的数据中心,作为第二数据中心;进而,目标数据中心可以判断该第一数据中心的优先级是否高于该第二数据中心的优先级,若是,则可以确定待同步操作数据有效,若否,则可以确定该待同步操作数据无效。
也就是说,在本申请实施例中,可以预先指定多活数据中心架构下各个数据中心各自对应的优先级之间的大小关系,所指定的优先级之间的大小关系需要在整个同步链路(即多活数据中心架构下的各个数据中心组成的链路)内保证唯一性和可比性。基于此,目标数据中心在仅根据待同步操作数据的版本信息和参考操作数据的版本信息,无法确定待同步操作数据的有效性的情况下,进一步借助产生待同步操作数据的数据中心的优先级和产生参考操作数据的数据中心的优先级,来确定该待同步操作数据的有效性,若产生待同步操作数据的数据中心的优先级高于产生参考操作数据的数据中心的优先级,则确定该待同步操作数据有效,若产生待同步操作数据的数据中心的优先级低于产生参考操作数据的数据中心的优先级,则确定该待同步操作数据无效。
如此,基于版本信息和源数据中心标识对应的数据中心的优先级这两层参考信息,确定所接收的待同步数据的有效性,可以保证唯一可靠地确定出待同步操作数据是否有效。
步骤403:若确定所述待同步操作数据有效,则根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理;若确定所述待同步操作数据无效,则忽略所述待同步操作数据。
通过上述操作,目标数据中心若确定待同步操作数据有效,则可以根据该待同步操作数据,在目标数据中心对应的数据库中进行基于目标数据的变更处理。反之,若目标数据中心若确定该待同步操作数据无效,则可以忽略该待同步操作数据,即不在目标数据中心对应的数据库中执行该待同步操作数据指示的变更处理。
DML中的操作数据主要包括***(INSERT)语句、更新(UPDATE)语句和删除(DELETE)语句,通常情况下,针对DML的数据同步是根据二进制日志实现的。对于INSERT语句,二进制日志中只有后镜像,也即***后的数据;对于UPDATE语句,二进制日志中既有前镜像,又有后镜像,即更新前后的数据都有;对于DELETE语句,二进制日志中只有前镜像,而没有后镜像,因为数据已经被删除。
在本申请实施例中,操作数据的版本信息依赖于操作数据的产生时间,因此其一定存在于后镜像中,但是DELETE语句是没有后镜像的,因此针对传统的DML中的DELETE语句无法配置对应的版本信息,而这也将影响本申请实施例提供的方法的实现。图5为本申请实施例提供的该种情况对应的示例性示意图。
如图5所示,其中包括数据中心A和数据中心M,图5中数据中心A和数据中心M下的时间轴均是由下往上的,insert 1A表示数据中心A在对应的数据库中***版本号为1的数据,insert 2A表示数据中心A在对应的数据库中***版本号为2的数据,delete 3M表示数据中心M针对对应的数据库中的数据进行了删除操作。通过观察图5所示的数据中心A和数据中心M下方的时间轴可以发现,数据中心A上最终没有数据,而数据中心M上最终的数据版本为2A。
之所以出现上述数据中心A和数据中心M最终的数据不同步的情况,是因为delete3M属于DELETE操作,而DELETE操作没有办法携带后镜像,也就没有办法携带对应的版本信息;相应地,当insert 1A同步至数据中心M时,数据中心M会误认为没有更高版本的操作数据操作,而执行insert 1A指示的数据变更处理,进一步地,当insert 2A同步至数据中心M时,由于其版本信息高于insert 1A,因此也会被执行。
为了避免上述情况发生,本申请实施例对原本的DELETE语句进行了调整,使得DELETE语句对应的操作数据可以携带对应的版本信息。具体的,调整后的DELETE语句对应的操作数据,可以包括前镜像(即DELETE语句指示删除的数据,也即被删除的数据)、删除标识(用于标识前镜像为被删除的数据)、以及版本信息和源数据中心标识。该调整后的DELETE语句对应的操作数据,可以理解为另一种形式的UPDATE语句对应的操作数据,即在原本的UPDATE语句对应的操作数据的基础上,将后镜像调整为了删除标识。
在待同步操作数据有效的情况下,当待同步操作数据指示删除目标数据时,即当待同步操作数据是对应于DELETE语句(该DELETE语句指示删除目标数据)的操作数据时,目标数据中心可以针对其对应的数据库中的目标数据,标记删除标识,同时标记该待同步操作数据的版本信息,以及标记该待同步操作,此处所标记的删除标识用于表征数据库中当前的目标数据失效。后续满足预设时间条件时,目标数据中心可以删除标记有删除标识的该目标数据。
具体的,本申请实施例除了对DELETE语句对应的操作数据进行了调整外,还对该DELETE语句对应的操作方式进行了一定程度的调整,以使执行完DELETE语句后仍能体现该DELETE语句删除的数据,方便标记该DELETE语句的执行时间,进而方便将其与后续接收的待同步操作数据进行对比,以确定后续接收的待同步操作数据的有效性。
也就是说,当待同步操作数据为用于指示删除目标数据的DELETE语句对应的操作数据时,目标数据中心执行该待同步操作数据指示的变更处理时,可以针对其对应的数据库中的目标数据标记删除标识,通过标记该删除标识,来表示数据库中的该目标数据已失效,不支持对该目标数据再进行任何处理,同时通过标记该删除标识,还可以体现该DELETE语句,从而方便标记该待同步操作数据的版本信息和源数据中心标识。这种通过标记删除标识来体现DELETE语句的方式,也可以理解为软删除操作。
满足预设时间条件时,如距离软删除操作的执行时间间隔预设时长后,目标数据中心可以针对目标数据执行真正的删除操作,即删除该标记有删除标识的目标数据。应理解,满足上述预设时间条件后,通常不会再存在版本信息相近的待同步数据,即无需利用目标数据的版本信息和源数据中心标识来检测后续接收的待同步操作数据的有效性,因此,可以执行真正的删除操作,将该目标数据删除。
在待同步操作数据有效的情况下,当待同步操作数据指示***目标数据时,即当待同步操作数据是对应于INSERT语句(该INSERT语句指示在数据库中***目标数据)的操作数据时,目标数据中心可以在其对应的数据库中***该目标数据,并且针对所***的目标数据,标记该待同步操作数据的版本信息,以及标记该待同步操作数据的源数据中心标识。
对于INSERT语句对应的操作数据,目标数据中心执行该操作数据指示的***操作时,与执行传统的INSERT语句指示的***操作的方式相类似,区别仅在于,在本申请实施例中,目标数据中心执行待同步操作数据指示的***操作,在对应的数据库中***目标数据后,还会针对该目标数据配置该待同步操作数据的版本信息和源数据中心标识,从而方便将该目标数据作为参考操作数据与目标数据中心后续接收的待同步操作数据进行对比,检测该后续接收的待同步操作数据的有效性。
对于INSERT操作,底层的操作代码改写如下:
INSERT IGNORE INTO table1 VALUES(id_src,c1_src,ts_src,node_name_src)
UPDATE table1 SET c1=c1_src,ts=ts_src,node_name=node_name_srcWHERE id=id_src AND(ts,node_name)<=(ts_src,node_name_src)
在待同步操作数据有效的情况下,当待同步操作数据指示将目标数据更新为目标更新数据时,即当待同步操作数据是对应于UPDATE语句(该UPDATE语句指示将数据库中原本存储的目标数据更新为目标更新数据)的操作数据时,目标数据中心可以其对应的数据库中的目标数据更新为目标更新数据;并且,针对该目标更新数据,标记该待同步数据的版本信息,以及标记该待同步数据的源数据中心标识。
对于UPDATE语句对应的操作数据,目标数据中心执行该操作数据指示的更新操作时,与执行传统的UPDATE语句指示的更新操作的方式相类似,区别仅在于,在本申请实施例中,目标数据中心执行待同步操作数据指示的更新操作,在对应的数据库中将目标数据更新为目标更新数据后,还会针对该目标更新数据配置该待同步操作数据的版本信息和源数据中心标识,从而方便将该目标更新数据作为参考操作数据与目标数据中心后续接收的待同步操作数据进行对比,检测该后续接收的待同步操作数据的有效性。
对于UPDATE操作,底层的操作代码改写如下:
INSERT IGNORE INTO table1 VALUES(id_src_new,c1_src_new,ts_src_new,node_name_src_new)UPDATE table1 SET c1=c1_src_new,ts=ts_src_new,node_name=node_name_src_new WHERE id=id_src_new AND(ts,node_name)<=(ts_src_new,node_name_src_new)
基于本申请实施例提供的数据同步方法工作的多活数据中心架构的同步原理示意图如图6所示,其中,数据中心A、数据中心B和数据中心C之间进行数据同步时,均基于条件覆盖实现数据同步,所谓条件覆盖即是根据参考操作数据和待同步操作数据各自的版本信息和源数据中心标识,来确定是否同步待同步数据。
上述数据同步方法,根据各项操作数据的产生时间相应地为各项操作数据配置对应的版本信息,并基于各项操作数据各自对应的版本信息进行数据同步,以保证多活数据中心架构下的各数据中心基于最新版本的操作数据实现数据同步操作;在该种情况下,即使发生数据冲突,也可以因各数据中心均基于最新版本的操作数据实现数据同步,而保证各数据中心之间的数据一致性。也就是说,在多活数据中心架构下即使发生了数据冲突,该架构下的各数据中心也可以根据预先配置的策略自动解决该数据冲突,从而提高了整个多活数据中心架构的鲁棒性。
针对上文描述的数据同步方法,本申请还提供了对应的数据同步装置,以使上述数据同步方法在实际中得以应用及实现。
参见图7,图7是与上文图4所示的数据同步方法对应的数据同步装置700的结构示意图,该数据同步装置部署于多活数据中心架构下的目标数据中心,所述多活数据中心架构包括多个数据中心,所述目标数据中心为所述多个数据中心中的任一个,所述多个数据中心具有其各自对应的数据库。如图7所示,该数据同步装置700包括:
数据接收模块701,用于接收所述多活数据中心架构下的其它数据中心发送的待同步操作数据;所述待同步操作数据用于指示基于目标数据进行变更处理,所述待同步操作数据配置有版本信息,所述版本信息是根据所述待同步操作数据的产生时间确定的;
数据检测模块702,用于根据所述待同步操作数据的版本信息和参考操作数据的版本信息,确定所述待同步操作数据是否有效;所述参考操作数据包括所述目标数据中心已执行的操作数据、和所述目标数据中心已接收但未执行的操作数据中的至少一种;
数据变更模块703,用于若确定所述待同步操作数据有效,则根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理;若确定所述待同步操作数据无效,则忽略所述待同步操作数据。
可选的,操作数据的产生时间越晚,所述操作数据的版本信息越高;则所述数据检测模块702具体用于:
若所述待同步操作数据的版本信息高于所述参考操作数据的版本信息,则确定所述待同步操作数据有效;若所述待同步操作数据的版本信息低于所述参考操作数据的版本信息,则确定所述待同步操作数据无效。
可选的,所述待同步操作数据还配置有源数据中心标识,所述源数据中心标识对应的数据中心为最初产生所述待同步操作数据的数据中心;所述数据检测模块702还用于:
在根据所述待同步操作数据的版本信息和所述参考操作数据的版本信息,无法确定所述待同步操作数据是否有效的情况下,根据所述待同步操作数据的源数据中心标识和所述参考操作数据的源数据中心标识,确定所述待同步操作数据是否有效。
可选的,所述多活数据中心架构中各个数据中心配置有各自对应的优先级;所述数据检测模块702具体用于:
确定所述待同步操作数据的源数据中心标识对应的第一数据中心,确定所述参考操作数据的源数据中心标识对应的第二数据中心;
若所述第一数据中心对应的优先级高于所述第二数据中心对应的优先级,则确定所述待同步操作数据有效;若所述第一数据中心对应的优先级低于所述第二数据中心对应的优先级,则确定所述待同步操作数据无效。
可选的,当所述待同步操作数据指示删除所述目标数据时,所述数据变更模块703具体用于:
针对所述目标数据中心对应的数据库中的所述目标数据,标记删除标识,标记所述待同步数据的版本信息,标记所述待同步数据的源数据中心标识;所述删除标识用于表征所述数据库中当前的所述目标数据失效;
满足预设时间条件时,删除标记有所述删除标识的所述目标数据。
可选的,当所述待同步操作数据指示***所述目标数据时,所述数据变更模块703具体用于:
在所述目标数据中心对应的数据库中***所述目标数据;
针对所述目标数据,标记所述待同步操作数据的版本信息,标记所述待同步操作数据的源数据中心标识。
可选的,当所述待同步操作数据指示将所述目标数据更新为目标更新数据时,所述数据变更模块703具体用于:
将所述目标数据中心对应的数据库中的所述目标数据更新为所述目标更新数据;
针对所述目标更新数据,标记所述待同步数据的版本信息,标记所述待同步数据的源数据中心标识。
上述数据同步装置,根据各项操作数据的产生时间相应地为各项操作数据配置对应的版本信息,并基于各项操作数据各自对应的版本信息进行数据同步,以保证多活数据中心架构下的各数据中心基于最新版本的操作数据实现数据同步操作;在该种情况下,即使发生数据冲突,也可以因各数据中心均基于最新版本的操作数据实现数据同步,而保证各数据中心之间的数据一致性。也就是说,在多活数据中心架构下即使发生了数据冲突,该架构下的各数据中心也可以根据预先配置的策略自动解决该数据冲突,从而提高了整个多活数据中心架构的鲁棒性。
本申请实施例还提供了一种用于实现数据同步的计算机设备,该设备具体可以是者服务器,下面将从硬件实体化的角度对本申请实施例提供的服务器进行介绍。
参见图8,图8为本申请实施例提供的一种服务器800的结构示意图。该服务器800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(centralprocessing units,CPU)822(例如,一个或一个以上处理器)和存储器832,一个或一个以上存储应用程序842或数据844的存储介质830(例如一个或一个以上海量存储设备)。其中,存储器832和存储介质830可以是短暂存储或持久存储。存储在存储介质830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器822可以设置为与存储介质830通信,在服务器800上执行存储介质830中的一系列指令操作。
服务器800还可以包括一个或一个以上电源826,一个或一个以上有线或无线网络接口850,一个或一个以上输入输出接口858,和/或,一个或一个以上操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图8所示的服务器结构。
其中,CPU 822用于执行如下步骤:
接收所述多活数据中心架构下的其它数据中心发送的待同步操作数据;所述待同步操作数据用于指示基于目标数据进行变更处理,所述待同步操作数据配置有版本信息,所述版本信息是根据所述待同步操作数据的产生时间确定的;
根据所述待同步操作数据的版本信息和参考操作数据的版本信息,确定所述待同步操作数据是否有效;所述参考操作数据包括所述目标数据中心已执行的操作数据、和所述目标数据中心已接收但未执行的操作数据中的至少一种;
若确定所述待同步操作数据有效,则根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理;若确定所述待同步操作数据无效,则忽略所述待同步操作数据。
可选的,CPU 822还可以用于执行本申请实施例提供的数据同步方法的任意一种实现方式的步骤。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行前述各个实施例所述的一种数据同步方法中的任意一种实施方式。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前述各个实施例所述的一种数据同步方法中的任意一种实施方式。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文全称:Read-OnlyMemory,英文缩写:ROM)、随机存取存储器(英文全称:Random Access Memory,英文缩写:RAM)、磁碟或者光盘等各种可以存储计算机程序的介质。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (11)
1.一种数据同步方法,其特征在于,应用于多活数据中心架构下的目标数据中心,所述多活数据中心架构包括多个数据中心,所述目标数据中心为所述多个数据中心中的任一个,所述多个数据中心具有其各自对应的数据库;所述方法包括:
接收所述多活数据中心架构下的其它数据中心发送的待同步操作数据;所述待同步操作数据用于指示基于目标数据进行变更处理,所述待同步操作数据配置有版本信息,所述版本信息是根据所述待同步操作数据的产生时间确定的;
根据所述待同步操作数据的版本信息和参考操作数据的版本信息,确定所述待同步操作数据是否有效;所述参考操作数据包括所述目标数据中心已执行的操作数据、和所述目标数据中心已接收但未执行的操作数据中的至少一种;
若确定所述待同步操作数据有效,则根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理;若确定所述待同步操作数据无效,则忽略所述待同步操作数据。
2.根据权利要求1所述的方法,其特征在于,操作数据的产生时间越晚,所述操作数据的版本信息越高;则所述根据所述待同步操作数据的版本信息和参考操作数据的版本信息,确定所述待同步操作数据是否有效,包括:
若所述待同步操作数据的版本信息高于所述参考操作数据的版本信息,则确定所述待同步操作数据有效;若所述待同步操作数据的版本信息低于所述参考操作数据的版本信息,则确定所述待同步操作数据无效。
3.根据权利要求1所述的方法,其特征在于,所述待同步操作数据还配置有源数据中心标识,所述源数据中心标识对应的数据中心为最初产生所述待同步操作数据的数据中心;所述方法还包括:
在根据所述待同步操作数据的版本信息和所述参考操作数据的版本信息,无法确定所述待同步操作数据是否有效的情况下,根据所述待同步操作数据的源数据中心标识和所述参考操作数据的源数据中心标识,确定所述待同步操作数据是否有效。
4.根据权利要求3所述的方法,其特征在于,所述多活数据中心架构中各个数据中心配置有各自对应的优先级;所述根据所述待同步操作数据的源数据中心标识和所述参考操作数据的源数据中心标识,确定所述待同步操作数据是否有效,包括:
确定所述待同步操作数据的源数据中心标识对应的第一数据中心,确定所述参考操作数据的源数据中心标识对应的第二数据中心;
若所述第一数据中心对应的优先级高于所述第二数据中心对应的优先级,则确定所述待同步操作数据有效;若所述第一数据中心对应的优先级低于所述第二数据中心对应的优先级,则确定所述待同步操作数据无效。
5.根据权利要求3所述的方法,其特征在于,当所述待同步操作数据指示删除所述目标数据时,所述根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理,包括:
针对所述目标数据中心对应的数据库中的所述目标数据,标记删除标识,标记所述待同步数据的版本信息,标记所述待同步数据的源数据中心标识;所述删除标识用于表征所述数据库中当前的所述目标数据失效;
满足预设时间条件时,删除标记有所述删除标识的所述目标数据。
6.根据权利要求3所述的方法,其特征在于,当所述待同步操作数据指示***所述目标数据时,所述根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理,包括:
在所述目标数据中心对应的数据库中***所述目标数据;
针对所述目标数据,标记所述待同步操作数据的版本信息,标记所述待同步操作数据的源数据中心标识。
7.根据权利要求3所述的方法,其特征在于,当所述待同步操作数据指示将所述目标数据更新为目标更新数据时,所述根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理,包括:
将所述目标数据中心对应的数据库中的所述目标数据更新为所述目标更新数据;
针对所述目标更新数据,标记所述待同步数据的版本信息,标记所述待同步数据的源数据中心标识。
8.一种数据同步装置,其特征在于,部署于多活数据中心架构下的目标数据中心,所述多活数据中心架构包括多个数据中心,所述目标数据中心为所述多个数据中心中的任一个,所述多个数据中心具有其各自对应的数据库;所述装置包括:
数据接收模块,用于接收所述多活数据中心架构下的其它数据中心发送的待同步操作数据;所述待同步操作数据用于指示基于目标数据进行变更处理,所述待同步操作数据配置有版本信息,所述版本信息是根据所述待同步操作数据的产生时间确定的;
数据检测模块,用于根据所述待同步操作数据的版本信息和参考操作数据的版本信息,确定所述待同步操作数据是否有效;所述参考操作数据包括所述目标数据中心已执行的操作数据、和所述目标数据中心已接收但未执行的操作数据中的至少一种;
数据变更模块,用于若确定所述待同步操作数据有效,则根据所述待同步操作数据,在所述目标数据中心对应的数据库中进行基于所述目标数据的变更处理;若确定所述待同步操作数据无效,则忽略所述待同步操作数据。
9.一种计算机设备,其特征在于,所述设备包括处理器及存储器;
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1至7任一项所述的数据同步方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1至7中任一项所述的数据同步方法。
11.一种计算机程序产品,包括计算机程序或者指令,其特征在于,所述计算机程序或者所述指令被处理器执行时,实现权利要求1至7中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210283849.9A CN116821232A (zh) | 2022-03-22 | 2022-03-22 | 一种数据同步方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210283849.9A CN116821232A (zh) | 2022-03-22 | 2022-03-22 | 一种数据同步方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116821232A true CN116821232A (zh) | 2023-09-29 |
Family
ID=88120811
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210283849.9A Pending CN116821232A (zh) | 2022-03-22 | 2022-03-22 | 一种数据同步方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116821232A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117424893A (zh) * | 2023-12-19 | 2024-01-19 | 深圳竹云科技股份有限公司 | 数据传输方法、装置、计算机设备、存储介质 |
-
2022
- 2022-03-22 CN CN202210283849.9A patent/CN116821232A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117424893A (zh) * | 2023-12-19 | 2024-01-19 | 深圳竹云科技股份有限公司 | 数据传输方法、装置、计算机设备、存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7113040B2 (ja) | 分散型データストアのバージョン化された階層型データ構造 | |
US9971526B1 (en) | Volume-based key-value store | |
CN113396407A (zh) | 用于利用区块链技术扩充数据库应用的***和方法 | |
US20090012932A1 (en) | Method and System For Data Storage And Management | |
US10891302B2 (en) | Scalable synchronization with cache and index management | |
US9158804B1 (en) | Method and system for efficient file-based backups by reverse mapping changed sectors/blocks on an NTFS volume to files | |
US11487714B2 (en) | Data replication in a data analysis system | |
CN111414403B (zh) | 数据访问方法和装置、数据存储方法和装置 | |
CN105393243A (zh) | 事务定序 | |
US10726042B2 (en) | Replication control using eventually consistent meta-data | |
US9075722B2 (en) | Clustered and highly-available wide-area write-through file system cache | |
EP3438845A1 (en) | Data updating method and device for a distributed database system | |
EP3818454B1 (en) | Asynchronous cache coherency for mvcc based database systems | |
CN111881223A (zh) | 数据管理方法、设备、***及存储介质 | |
CN113010549A (zh) | 基于异地多活***的数据处理方法、相关设备及存储介质 | |
CN108958969B (zh) | 数据库灾备方法、装置及灾备*** | |
CN110008197A (zh) | 一种数据处理方法、***及电子设备和存储介质 | |
CN116821232A (zh) | 一种数据同步方法及相关装置 | |
US20100100527A1 (en) | Forgetting items with knowledge based synchronization | |
CN110121712B (zh) | 一种日志管理方法、服务器和数据库*** | |
CN111639087B (zh) | 数据库中数据更新方法、装置和电子设备 | |
US11461362B2 (en) | Merkle super tree for synchronizing data buckets of unlimited size in object storage systems | |
CN112800060A (zh) | 数据处理方法、装置、计算机可读存储介质及电子设备 | |
US10474534B1 (en) | Method and system for efficient file indexing by reverse mapping changed sectors/blocks on an NTFS volume to files | |
CN116303789A (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 |