CN114238499A - 数据同步方法、装置、计算机设备及计算机可读存储介质 - Google Patents
数据同步方法、装置、计算机设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114238499A CN114238499A CN202111496625.8A CN202111496625A CN114238499A CN 114238499 A CN114238499 A CN 114238499A CN 202111496625 A CN202111496625 A CN 202111496625A CN 114238499 A CN114238499 A CN 114238499A
- Authority
- CN
- China
- Prior art keywords
- data
- operation log
- data center
- database
- unique identification
- 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
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
- 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/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种数据同步方法、装置、计算机设备及计算机可读存储介质,应用于第一数据中心的数据操作***,所述方法包括:读取第一数据中心数据库的操作日志;检测所述操作日志中是否包括源数据库的唯一标识字段;若所述操作日志中包括源数据库的唯一标识字段,则丢弃所述操作日志;若所述操作日志中不包括源数据库的唯一标识字段,则在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以得到目标操作日志;向消息队列上传所述目标操作日志,以使所述第二数据中心从所述消息队列同步获得所述目标操作日志。通过为操作日志添加源数据库的唯一标识字段的方式,能够有效解决多数据中心之间进行数据同步时的环形复制问题。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种数据同步方法、装置、计算机设备及计算机可读存储介质。
背景技术
现有基于数据变更捕获(Change Data Capture,简称CDC)技术的数据增量同步框架通常只能支持单向同步,而无法直接支持双向多数据中心对等同步,其原因在于环形复制问题。
环形复制问题是指,一个数据库的数据可能会包含不同来源,如果数据同步过程没有相应的措施,可能会导致数据的环形复制,比如A的数据复制到B,又被从B复制到A,导致对同一条数据操作的复制陷入死循环无法停止。
为解决环形复制问题,目前主要通过有研发能力企业修改数据库代码实现数据库的同步过程中阻断因数据同步而产生的新数据操作被循环广播的机会,该方式需要大量投入研发测试资源,并对每一种数据库都需要按照该模式进行修改,一般企业的应用场景无法承受其复杂度和成本。
因此,亟需一种简单、可靠的数据同步方法以解决多数据中心之间进行数据同步时出现环形复制的问题。
发明内容
为解决上述技术问题,本申请实施例提供的一种数据同步方法、装置、计算机设备及计算机可读存储介质,具体方案如下:
第一方面,本申请实施例提供了一种数据同步方法,应用于第一数据中心的数据操作***,所述第一数据中心通过消息队列与第二数据中心进行通信,所述第一数据中心与所述第二数据中心的数据库互为镜像数据库,所述方法包括:
读取第一数据中心数据库的操作日志;
检测所述操作日志中是否包括源数据库的唯一标识字段;
若所述操作日志中包括源数据库的唯一标识字段,则丢弃所述操作日志;
若所述操作日志中不包括源数据库的唯一标识字段,则在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以得到目标操作日志;
向消息队列上传所述目标操作日志,以使所述第二数据中心从所述消息队列同步获得所述目标操作日志。
根据本申请实施例的一种具体实施方式,所述读取第一数据中心数据库的操作日志的步骤之后,所述方法还包括:
判断所述操作日志的操作类型;
若所述操作日志的操作类型为删除或查询,则直接跳转执行向消息队列上传所述操作日志的步骤;若所述操作日志的操作类型为修改或添加,则跳转执行所述检测所述操作日志中是否包括源数据库的唯一标识字段的步骤。
根据本申请实施例的一种具体实施方式,所述唯一标识字段为对应各数据中心数据库的唯一ID信息;
所述在所述操作日志中添加所述第一数据中心数据库的唯一标识字段的步骤包括:
选取所述操作日志中任一部分可添加字段;
将所述第一数据中心数据库的唯一ID信息注入所述可添加字段中,作为第一数据中心数据库的唯一标识字段。
根据本申请实施例的一种具体实施方式,所述第一数据中心还包括数据操作执行器,所述数据操作执行器与所述数据操作***通信连接,所述方法还包括:
按照预设读取顺序从所述消息队列中读取数据同步信息;
解析所述数据同步信息中第二数据中心数据库的操作日志;
向所述数据操作执行器发送所述第二数据中心数据库的操作日志,以使所述数据操作执行器根据所述操作日志对所述第一数据中心数据库执行数据同步操作。
根据本申请实施例的一种具体实施方式,所述读取第一数据中心数据库的操作日志的步骤,包括:
实时监测所述第一数据中心数据库中的存储数据;
当所述存储数据被所述第一数据中心调用时,捕捉对应被调用的所述存储数据的操作日志。
根据本申请实施例的一种具体实施方式,所述向消息队列上传所述目标操作日志的步骤,包括:
查询消息队列中的消息排列顺序;
在所述消息排列顺序的末尾上传所述目标操作日志。
第二方面,本申请实施例提供了一种数据同步装置,应用于第一数据中心的数据操作***,所述第一数据中心通过消息队列与第二数据中心进行通信,所述第一数据中心与所述第二数据中心的数据库互为镜像数据库,所述装置包括:
读取模块,用于读取第一数据中心数据库的操作日志;
检测模块,用于检测所述操作日志中是否包括源数据库的唯一标识字段;
第一执行模块,用于若所述操作日志中包括源数据库的唯一标识字段,则忽略所述操作日志;
第二执行模块,用于若所述操作日志中不包括源数据库的唯一标识字段,则在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以得到目标操作日志;
上传模块,用于向消息队列上传所述目标操作日志,以使所述第二数据中心从所述消息队列同步获得所述目标操作日志。
根据本申请实施例的一种具体实施方式,所述装置还包括:
判断模块,用于判断所述操作日志的操作类型;若所述操作日志的操作类型为删除或查询,则直接跳转执行所述上传模块;若所述操作日志的操作类型为修改或添加,则跳转执行所述检测模块。
第三方面,本申请实施例提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行第一方面所述的数据同步方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行第一方面所述的数据同步方法。
本申请实施例提供了一种数据同步方法、装置、计算机设备及计算机可读存储介质,应用于第一数据中心的数据操作***,所述第一数据中心通过消息队列与第二数据中心进行通信,所述第一数据中心与所述第二数据中心的数据库互为镜像数据库,所述方法包括:读取第一数据中心数据库的操作日志;检测所述操作日志中是否包括源数据库的唯一标识字段;若所述操作日志中包括源数据库的唯一标识字段,则丢弃所述操作日志;若所述操作日志中不包括源数据库的唯一标识字段,则在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以得到目标操作日志;向消息队列上传所述目标操作日志,以使所述第二数据中心从所述消息队列同步获得所述目标操作日志。通过为操作日志添加源数据库的唯一标识字段的方式,能够有效解决多数据中心之间进行数据同步时的环形复制问题。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对本发明保护范围的限定。在各个附图中,类似的构成部分采用类似的编号。
图1示出了本申请实施例提供的一种数据同步方法的方法流程示意图;
图2示出了本申请实施例提供的一种数据同步方法的应用场景交互示意图;
图3示出了本申请实施例提供的一种数据同步装置的装置模块示意图;
图4示出了本申请实施例提供的一种数据同步装置的另一装置模块示意图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
在下文中,可在本发明的各种实施例中使用的术语“包括”、“具有”及其同源词仅意在表示特定特征、数字、步骤、操作、元件、组件或前述项的组合,并且不应被理解为首先排除一个或更多个其它特征、数字、步骤、操作、元件、组件或前述项的组合的存在或增加一个或更多个特征、数字、步骤、操作、元件、组件或前述项的组合的可能性。
此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
除非另有限定,否则在这里使用的所有术语(包括技术术语和科学术语)具有与本发明的各种实施例所属领域普通技术人员通常理解的含义相同的含义。所述术语(诸如在一般使用的词典中限定的术语)将被解释为具有与在相关技术领域中的语境含义相同的含义并且将不被解释为具有理想化的含义或过于正式的含义,除非在本发明的各种实施例中被清楚地限定。
在当前的数据库***生态中,大部分***都指出多个节点间的数据同步机制。跨多个数据中心的数据同步,在业务层、应用层显得更为重要,这种方法使得集团型企业在多数据中心布局下工业数字化需求成为可能,同时数据中心间的数据同步能够实现同城多机房的负载均衡,多机房的互备,能够实现异地多数据中心的容灾和多活。
数据中心间的数据同步有两种模式:
1.单向同步:在单向同步模式下,多个数据中心中存在一个主数据中心,所有的数据变更会发生在主数据中心,而其他数据中心随时同步来自主数据中心的数据变更。
2.双向同步:在双向同步模式下,多个数据中心彼此之间地位对等,数据变更可以发生在任何一个数据中心,而其他数据中心需要同步所有数据中心的数据变更,以保证数据一致性。
环形复制问题往往发生在双向同步的过程中,当多个数据中心发生数据变更时,容易引发多个数据中心反复处理同一个数据操作,从而使得整个数据同步过程出现死循环。本申请提出的数据同步方法,即能有效解决多数据中心在双向同步过程中的环形复制问题。
参考图1,为本申请实施例提供的一种数据同步方法的方法流程示意图,本申请实施例提供的一种数据同步方法,应用于第一数据中心的数据操作***,所述第一数据中心通过消息队列与第二数据中心进行通信,所述第一数据中心与所述第二数据中心的数据库互为镜像数据库,如图1所示,所述数据同步方法包括:
步骤S101,读取第一数据中心数据库的操作日志;
在具体实施例中,所述第一数据中心和所述第二数据中心可以是同一联邦架构中的数据中心,其中所述第二数据中心指通过消息队列与所述第一数据中心进行通信的数据中心。所述第一数据中心和所述第二数据中心的地位相同,均能独立进行数据处理和数据存储步骤。所述第二数据中心的数量可以为一个,也可以为多个,此处不作具体限定。
具体的,所述第一数据中心与所述第二数据中心的数据库互为镜像数据库,即所述第一数据中心数据库与所述第二数据中心数据库中存储的内容相同。
所述第一数据中心和所述第二数据中心中均包括数据操作***、数据执行器和数据中心数据库,其中,所述数据中心数据库用于存储数据,所述数据执行器用于接收操作命令,并执行所述操作命令中的数据操作。所述数据操作***为一种基于数据变更捕获(Change Data Capture,简称CDC)框架的装置,所述数据操作***用于监听所属数据中心数据库的数据操作。
所述消息队列为第一数据中心和第二数据中心进行数据通信的中转空间,所述消息队列可以为kafka消息队列,也可以为其它类型的用于数据中转的消息队列,此处不作唯一限定。
当所述第一数据中心数据库中存储的数据被调用,并生成相应的操作日志时,所述数据***立即捕捉所述操作日志,并读取所述操作日志中的具体内容。
根据本申请实施例的一种具体实施方式,所述读取第一数据中心数据库的操作日志的步骤,包括:
实时监测所述第一数据中心数据库中的存储数据;
当所述存储数据被所述第一数据中心调用时,捕捉对应被调用的所述存储数据的操作日志。
在具体实施例中,所述数据操作***对所述第一数据中心数据库中存储的数据进行实时监测,当用户通过第一数据中心的控制服务端对所述第一数据中心数据库中的数据进行增删改查的调用操作时,所述数据操作***则立即捕捉对应被调用的所述存储数据的操作日志,以进行后续的多数据中心间的数据同步操作。
根据本申请实施例的一种具体实施方式,所述读取第一数据中心数据库的操作日志的步骤之后,所述方法还包括:
判断所述操作日志的操作类型;
若所述操作日志的操作类型为删除或查询,则直接跳转执行向消息队列上传所述操作日志的步骤;若所述操作日志的操作类型为修改或添加,则跳转执行所述检测所述操作日志中是否包括源数据库的唯一标识字段的步骤。
在具体实施例中,如图2所示,在所述数据操作***读取所述第一数据中心数据库的操作日志后,所述数据***还需要根据所述操作日志的类型进行对应的动作。
当所述操作日志的操作类型为查询或删除时,第一数据中心在上传所述操作日志后,其它数据中心根据所述操作日志进行查询或删除后,不会再向消息队列中上传所述操作日志,各数据中心根据所述操作日志仅执行一次查询或删除的动作,即能完成对数据中心数据库的变更。
当所述操作日志的操作类型为修改或添加时,第一数据中心在上传所述操作日志后,其它数据中心根据所述操作日志进行修改或添加后,会在各自的数据中心再次生成所述修改或添加的操作日志,将所述操作日志上传至消息队列,第一数据中心会根据新的操作日志再次执行所述修改或添加的动作,由此重复出现重复修改的动作。
举例来说,当A数据中心数据库中包括C数据,B数据中心数据库中也包括C数据,当A数据中心数据库删除所述C数据后,B数据中心数据库根据A数据中心发送的操作日志将C数据删除,B不会再次将删除操作日志发送至A数据中心,因为此时A数据中心已经不存在C数据,A数据中心和B数据中心无需再次同步。
而当A数据中心数据库添加D数据后,B数据中心数据库根据A数据中心发送的操作日志添加D数据,B数据中心会再次生成添加D数据的操作日志,所述A数据中心会根据B数据中心发送的操作日志再次添加D数据,从而会使得数据同步过程中A数据中心和B数据中心反复执行添加D数据动作,而造成环形复制问题。
本申请实施例中的数据操作***会在检测到所述操作日志的类型为删除或查询时,直接跳转执行向消息队列上传所述操作日志的步骤。而当所述数据操作***检测到所述操作日志的类型为修改或添加时,进一步执行检测所述操作日志中是否包括源数据库的唯一标志字段步骤。
步骤S102,检测所述操作日志中是否包括源数据库的唯一标识字段;
在具体实施例中,所述源数据库的唯一标识字段即对应第一次产生所述操作日志的数据中心数据库的标识信息。
所述标识信息可以为能够认证所述数据中心数据库的任意具有唯一性的数据字段信息,如所述数据中心数据库主键经过预设计算处理后的字段信息或对应数据中心数据库的ID信息。
如图2所示,所述数据操作***会根据检测结果的不同,对所述操作日志执行不同的操作。
步骤S103,若所述操作日志中包括源数据库的唯一标识字段,则丢弃所述操作日志;
在具体实施例中,当所述数据操作***检测到所述操作日志中包括第二数据中心数据库的唯一标识字段时,说明此步骤已经在第二数据中心中执行过一次,因此,所述第一数据中心无需再次将所述操作日志上传至消息队列中,仅需要在本地数据库中执行对应的数据操作即可。
而当所述数据操作***检测到所述操作日志中包括第一数据中心数据库的唯一标识字段时,说明第二数据中心将第一数据中心上传的操作日志再次发送会所述第一数据中心了,此时所述第一数据中心直接丢弃所述操作日志。从而结束所述操作日志在数据中心之间的传播。
步骤S104,若所述操作日志中不包括源数据库的唯一标识字段,则在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以得到目标操作日志;
在具体实施例中,若所述数据操作***检测所述操作日志中不包括源数据库的唯一标识字段时,会向所述数据操作执行器发送所述操作日志,以使所述数据操作执行器根据所述操作日志对第一数据中心数据库执行对应的数据同步操作。
且进一步的,若所述数据操作***检测到所述操作日志不包括源数据库的唯一标识字段,则说明此操作日志是所述第一数据中心数据库生成的,所述数据操作***会在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以对所述操作日志进行标记动作。
根据本申请实施例的一种具体实施方式,所述唯一标识字段为对应各数据中心数据库的唯一ID信息;
所述在所述操作日志中添加所述第一数据中心数据库的唯一标识字段的步骤包括:
选取所述操作日志中任一部分可添加字段;
将所述第一数据中心数据库的唯一ID信息注入所述可添加字段中,作为第一数据中心数据库的唯一标识字段。
在具体实施例中,所述操作日志中包括数据表ID信息、操作类型、数据内容和姓名等信息,所述数据操作***能够选取所述操作日志中数据内容payload中任一部分添加数据库ID信息。
在具体实施例中,每一数据中心数据库均具有唯一的数据库ID信息,将所述数据库ID信息添加至所述操作日志的数据内容payload中,即能够将对应被添加字段部分作为第一数据中心数据库的唯一标识字段,以供其它数据中心的数据操作***进行检测。
步骤S105,向消息队列上传所述目标操作日志,以使所述第二数据中心从所述消息队列同步获得所述目标操作日志。
在具体实施例中,所述数据操作***按照消息队列的类型以及所述消息队列的广播规则设定上传操作日志的步骤。所述第一数据中心的数据操作***将所述目标操作日志上传至消息队列后,所述第二数据中心根据所述消息队列的读取规则读取所述消息队列广播的操作日志,以实现第一数据中心和第二数据中心之间的同步。
根据本申请实施例的一种具体实施方式,所述向消息队列上传所述目标操作日志的步骤,包括:
查询消息队列中的消息排列顺序;
在所述消息排列顺序的末尾上传所述目标操作日志。
在具体实施例中,当所述消息队列为kafka消息队列时,所述数据操作***先查询所述kafka消息队列中待广播消息的排列顺序,并在所述kafka消息队列待广播消息的末尾添加所述目标操作日志。
所述第二数据中心的数据操作***从所述消息队列中读取目标操作日志时,同样是按照kafka消息队列广播消息的排列顺序进行读取。
从而能够实现按照上传顺序进行数据中心间的数据同步,不会造成数据中心之间同步时步骤混乱的情况。
根据本申请实施例的一种具体实施方式,所述第一数据中心还包括数据操作执行器,所述数据操作执行器与所述数据操作***通信连接,所述方法还包括:
按照预设读取顺序从所述消息队列中读取数据同步信息;
解析所述数据同步信息中第二数据中心数据库的操作日志;
向所述数据操作执行器发送所述第二数据中心数据库的操作日志,以使所述数据操作执行器根据所述操作日志对所述第一数据中心数据库执行数据同步操作。
在具体实施例中,当所述第一数据中心作为被同步方时,所述第一数据中心会根据所述消息队列中广播消息的排列顺序读取数据同步信息,并通过上述实施例中的数据同步方法解析消息队列中的操作日志,即第二数据中心数据库的操作日志。
在经过上述数据同步步骤的处理后,所述数据操作***将所述第二数据中心数据库的操作日志发送至数据操作执行器中,以使所述数据操作执行器根据所述操作日志执行数据同步操作。
本实施例提出的数据同步方法能够在不需要大量改动数据变更捕获框架的情况下,通过注入源数据库ID标识字段的方式解决多数据中心间数据同步过程易出现的环形复制问题。从而能够有效保障数据中心之间数据同步过程的稳定进行,降低开发和测试成本。
参考图3,为本申请实施例提供的一种数据同步装置300的装置模块示意图,本申请提供的数据同步装置300,应用于第一数据中心的数据操作***,所述第一数据中心通过消息队列与第二数据中心进行通信,所述第一数据中心与所述第二数据中心的数据库互为镜像数据库,如图3所示,所述数据同步装置300包括:
读取模块301,用于读取第一数据中心数据库的操作日志;
检测模块302,用于检测所述操作日志中是否包括源数据库的唯一标识字段;
第一执行模块303,用于若所述操作日志中包括源数据库的唯一标识字段,则忽略所述操作日志;
第二执行模块304,用于若所述操作日志中不包括源数据库的唯一标识字段,则在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以得到目标操作日志;
上传模块305,用于向消息队列上传所述目标操作日志,以使所述第二数据中心从所述消息队列同步获得所述目标操作日志。
如图4所示,根据本申请实施例的一种具体实施方式,所述数据同步装置300还包括:
判断模块306,用于判断所述操作日志的操作类型;若所述操作日志的操作类型为删除或查询,则直接跳转执行所述上传模块;若所述操作日志的操作类型为修改或添加,则跳转执行所述检测模块。
本申请实施例提供了一种计算机设备,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行上述实施例中的数据同步方法。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行上述实施例中的数据同步方法。
综上所述,本公开实施例提供了一种数据同步方法、装置、计算机设备及计算机可读存储介质,通过改变数据中心中基于数据变更捕获框架的数据操作***的逻辑结构,在所述数据操作***与消息队列的通信过程中,加入审核是否包括源数据中心的唯一标识字段的方式,并在操作日志中不包括源数据中心的唯一标识字段时为其加上对应数据中心的唯一标志ID信息,从而有效避免了当数据中心与数据中心之间进行数据同步时,因为重复处理一条修改数据而引发的环形复制问题。本申请实施例中的数据同步方法对数据变更捕获框架的改动具有普适性,业务入侵小,无需修改数据库本身代码,降低了开发和测试的成本。所提供的数据同步装置、计算机设备及计算机可读存储介质的具体实施过程,可以参见上述方法实施例的具体实施过程,在此不再一一赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和结构图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,结构图和/或流程图中的每个方框、以及结构图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块或单元可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或更多个模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是智能手机、个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种数据同步方法,其特征在于,应用于第一数据中心的数据操作***,所述第一数据中心通过消息队列与第二数据中心进行通信,所述第一数据中心与所述第二数据中心的数据库互为镜像数据库,所述方法包括:
读取第一数据中心数据库的操作日志;
检测所述操作日志中是否包括源数据库的唯一标识字段;
若所述操作日志中包括源数据库的唯一标识字段,则丢弃所述操作日志;
若所述操作日志中不包括源数据库的唯一标识字段,则在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以得到目标操作日志;
向消息队列上传所述目标操作日志,以使所述第二数据中心从所述消息队列同步获得所述目标操作日志。
2.根据权利要求1所述的方法,其特征在于,所述读取第一数据中心数据库的操作日志的步骤之后,所述方法还包括:
判断所述操作日志的操作类型;
若所述操作日志的操作类型为删除或查询,则直接跳转执行向消息队列上传所述操作日志的步骤;若所述操作日志的操作类型为修改或添加,则跳转执行所述检测所述操作日志中是否包括源数据库的唯一标识字段的步骤。
3.根据权利要求1所述的方法,其特征在于,所述唯一标识字段为对应各数据中心数据库的唯一ID信息;
所述在所述操作日志中添加所述第一数据中心数据库的唯一标识字段的步骤包括:
选取所述操作日志中任一部分可添加字段;
将所述第一数据中心数据库的唯一ID信息注入所述可添加字段中,作为第一数据中心数据库的唯一标识字段。
4.根据权利要求1所述的方法,其特征在于,所述第一数据中心还包括数据操作执行器,所述数据操作执行器与所述数据操作***通信连接,所述方法还包括:
按照预设读取顺序从所述消息队列中读取数据同步信息;
解析所述数据同步信息中第二数据中心数据库的操作日志;
向所述数据操作执行器发送所述第二数据中心数据库的操作日志,以使所述数据操作执行器根据所述操作日志对所述第一数据中心数据库执行数据同步操作。
5.根据权利要求1所述的方法,其特征在于,所述读取第一数据中心数据库的操作日志的步骤,包括:
实时监测所述第一数据中心数据库中的存储数据;
当所述存储数据被所述第一数据中心调用时,捕捉对应被调用的所述存储数据的操作日志。
6.根据权利要求1所述的方法,其特征在于,所述向消息队列上传所述目标操作日志的步骤,包括:
查询消息队列中的消息排列顺序;
在所述消息排列顺序的末尾上传所述目标操作日志。
7.一种数据同步装置,其特征在于,应用于第一数据中心的数据操作***,所述第一数据中心通过消息队列与第二数据中心进行通信,所述第一数据中心与所述第二数据中心的数据库互为镜像数据库,所述装置包括:
读取模块,用于读取第一数据中心数据库的操作日志;
检测模块,用于检测所述操作日志中是否包括源数据库的唯一标识字段;
第一执行模块,用于若所述操作日志中包括源数据库的唯一标识字段,则忽略所述操作日志;
第二执行模块,用于若所述操作日志中不包括源数据库的唯一标识字段,则在所述操作日志中添加所述第一数据中心数据库的唯一标识字段,以得到目标操作日志;
上传模块,用于向消息队列上传所述目标操作日志,以使所述第二数据中心从所述消息队列同步获得所述目标操作日志。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述操作日志的操作类型;若所述操作日志的操作类型为删除或查询,则直接跳转执行所述上传模块;若所述操作日志的操作类型为修改或添加,则跳转执行所述检测模块。
9.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有计算机程序,所述计算机程序在所述处理器上运行时执行权利要求1至6任一项所述的数据同步方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序在处理器上运行时执行权利要求1-6中任一项所述的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111496625.8A CN114238499A (zh) | 2021-12-09 | 2021-12-09 | 数据同步方法、装置、计算机设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111496625.8A CN114238499A (zh) | 2021-12-09 | 2021-12-09 | 数据同步方法、装置、计算机设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114238499A true CN114238499A (zh) | 2022-03-25 |
Family
ID=80754141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111496625.8A Pending CN114238499A (zh) | 2021-12-09 | 2021-12-09 | 数据同步方法、装置、计算机设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114238499A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817190A (zh) * | 2022-04-29 | 2022-07-29 | 阿里云计算有限公司 | 日志同步的方法、装置、***、设备及存储介质 |
-
2021
- 2021-12-09 CN CN202111496625.8A patent/CN114238499A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114817190A (zh) * | 2022-04-29 | 2022-07-29 | 阿里云计算有限公司 | 日志同步的方法、装置、***、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180365264A1 (en) | Telemetry system for a cloud synchronization system | |
CN111800443B (zh) | 数据处理***和方法、装置以及电子设备 | |
TWI740901B (zh) | 執行資料恢復操作的方法及裝置 | |
US10133622B2 (en) | Enhanced error detection in data synchronization operations | |
WO2020253083A1 (zh) | 主备存储卷同步数据校验方法、装置、设备及存储介质 | |
CN113297166B (zh) | 数据处理***、方法以及装置 | |
US20150296399A1 (en) | Event Management in Telecommunications Networks | |
CN110650164A (zh) | 文件的上传方法、装置、终端以及计算机存储介质 | |
CN114238499A (zh) | 数据同步方法、装置、计算机设备及计算机可读存储介质 | |
US10853892B2 (en) | Social networking relationships processing method, system, and storage medium | |
US20150088958A1 (en) | Information Processing System and Distributed Processing Method | |
CN111831954A (zh) | 内容数据更新方法、装置、计算机设备及存储介质 | |
CN111092956A (zh) | 资源同步方法、装置、存储介质及设备 | |
CN112667586B (zh) | 一种基于流处理的数据同步的方法、***、设备及介质 | |
CN107710165B (zh) | 用于存储节点同步业务请求的方法和装置 | |
CN111240933B (zh) | 多数据中心的性能数据监测的方法、***、设备及介质 | |
CN113032477B (zh) | 基于gtid的长距离数据同步方法、装置及计算设备 | |
CN114201484A (zh) | 信息处理方法、装置、电子设备及存储介质 | |
CN113326325A (zh) | 一种数据库主从服务断开的检测方法及装置 | |
US11106656B2 (en) | Method and apparatus for a software-seamed and augmented view of an asynchronous network fabric | |
CN111339100A (zh) | 数据核对方法及装置 | |
CN113472469B (zh) | 一种数据同步方法、装置、设备及存储介质 | |
CN116069975A (zh) | 回放方法、录制方法以及相关设备 | |
CN112463762A (zh) | 跨集群实时数据迁移与同步的方法、***、设备及介质 | |
CN115499451A (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 |