CN111460029B - 数据同步方法和装置 - Google Patents
数据同步方法和装置 Download PDFInfo
- Publication number
- CN111460029B CN111460029B CN202010165046.4A CN202010165046A CN111460029B CN 111460029 B CN111460029 B CN 111460029B CN 202010165046 A CN202010165046 A CN 202010165046A CN 111460029 B CN111460029 B CN 111460029B
- Authority
- CN
- China
- Prior art keywords
- node
- state array
- abnormal state
- switching
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 29
- 230000002159 abnormal effect Effects 0.000 claims abstract description 88
- 238000012546 transfer Methods 0.000 claims description 7
- 238000013500 data storage Methods 0.000 claims 2
- 230000000694 effects Effects 0.000 abstract description 9
- 238000004891 communication Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- 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/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/80—Database-specific techniques
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)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施方式涉及通信技术领域,公开了一种数据同步方法,包括:使用正常状态数组记录数据库集群中各节点的点位信息;当数据库集群中的主节点发生故障时,根据正常状态数组获取主节点发生故障时的点位信息,并记录于异常状态数组中;根据异常状态数组中故障时的点位信息进行主节点的切换,并将主节点的切换的信息记录于异常状态数组中;根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点,剩余节点包括除了发生故障的主节点和切换后的主节点外的其它节点。本发明实施方式还提供了一种数据同步装置。本发明实施方式提供的数据同步方法和装置,使数据库节点故障时无需人工切换,提高数据服务的及时性和同步效果。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种数据同步方法和装置。
背景技术
随着时代发展,人们对数据冗余安全以及业务多活的要求越来越高,为保障数据的异地容灾和安全性,同城双活以及异地多活技术应运而生,数据同步从跨实例演变成跨机房,数据的实时同步也由原生的同步机制演变成基于中间件的数据同步技术。目前数据库的跨实例数据实时同步技术主要依赖原生的日志文件以及通过获取文件内部的点位信息来实现。
然而,发明人发现现有技术至少存在以下问题:无论是数据库原生的同步机制还是基于中间件的同步技术,在数据库节点故障切换时,均需人工干预,数据服务的及时性无法得到保障,故障修复时间较长,数据同步效果不理想。
发明内容
本发明实施方式的目的在于提供一种数据同步方法和装置,使得数据库节点故障时无需人工切换,故障修复时间短,提高数据服务的及时性和同步效果。
为解决上述技术问题,本发明的实施方式提供了一种数据同步方法,包括:使用正常状态数组记录数据库集群中各节点的点位信息;当数据库集群中的主节点发生故障时,根据正常状态数组获取主节点发生故障时的点位信息,并记录于异常状态数组中;根据异常状态数组中故障时的点位信息进行主节点的切换,并将主节点的切换的信息记录于异常状态数组中;根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点,剩余节点包括除了发生故障的主节点和切换后的主节点外的其它节点。
本发明的实施方式还提供了一种数据同步装置,包括:点位信息记录模块,用于使用正常状态数组记录数据库集群中各节点的点位信息;故障信息获取模块,用于当数据库集群中的主节点发生故障时,根据正常状态数组获取主节点发生故障时的点位信息,并记录于异常状态数组中;主节点切换模块,用于根据异常状态数组中故障时的点位信息进行主节点的切换,并将主节点的切换的信息记录于异常状态数组中;切换信息传递模块,用于根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点,剩余节点包括除了发生故障的主节点和切换后的主节点外的其它节点。
本发明实施方式相对于现有技术而言,通过正常状态数组记录各节点的点位信息,可以在数据库集群中的主节点发生故障时获取故障时的点位信息;通过将故障时的点位信息记录在异常状态数组中,从而可以根据异常状态数组中故障时的点位信息自动进行主节点的切换,无需人工干预,可以实现自动切换;而通过raft协议将主节点切换的信息传递剩余节点,可以使与发生故障的主节点处于不同域的节点将同步源切换为切换后的主节点,建立新的同步关系,完成数据的同步;由于在数据库集群中主节点发生故障时可以根据记录的点位信息自动完成主节点的切换,无需人工干预,因此故障修复时间短,可以保证数据服务的及时性,提高数据同步的效果。
另外,根据异常状态数组中故障时的点位信息进行主节点的切换,具体为:根据异常状态数组中故障时的点位信息,将与主节点位于相同域的一从节点作为新的主节点。
另外,根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点,包括:根据raft协议和异常状态数组将主节点切换的信息通过中间件传递至与新的主节点处于不同域的节点;与新的主节点处于不同域的节点根据异常状态数组将同步源切换至新的主节点。
另外,在根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点之后,还包括:当发生故障的主节点恢复正常而成为从节点时,根据故障时的点位信息完成从节点的增量数据的同步。在发生故障的主节点恢复正常成为从节点时,根据故障时的点位信息完成该从节点的增量数据的同步,可以根据故障时的点位信息精确定位增量数据同步的起点,从而避免点位错乱导致同步中断的情况,提高数据同步的便捷性和效率。
另外,主节点切换模块还用于:根据异常状态数组中故障时的点位信息,将与主节点位于相同域的一从节点作为新的主节点。
另外,切换信息传递模块还用于:根据raft协议和异常状态数组将主节点切换的信息通过中间件传递至与新的主节点处于不同域的节点;与新的主节点处于不同域的节点根据异常状态数组将同步源切换至新的主节点。
另外,还包括增量数据同步模块,增量数据同步模块用于:当发生故障的主节点恢复正常而成为从节点时,根据故障时的点位信息完成从节点的增量数据的同步。在发生故障的主节点恢复正常成为从节点时,根据故障时的点位信息完成从节点的增量数据的同步,可以根据故障时的点位信息精确定位增量数据同步的起点,避免点位错乱导致同步中断的情况,提高数据同步的便捷性和效率。
另外,点位信息记录模块还用于使用键值对形式的数据结构的正常状态数组记录点位信息;故障信息获取模块还用于将故障时的点位信息记录于使用键值对形式的数据结构的异常状态数组中。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定。
图1是本发明第一实施方式提供的数据同步方法的流程示意图;
图2是本发明第一实施方式提供的数据同步方法中数据库集群的示例图;
图3是图2对应的数据库集群中主节点发生故障时的示意图;
图4是本发明第二实施方式提供的数据同步方法的流程示意图;
图5是本发明第二实施方式提供的数据同步方法的时序示例图;
图6是本发明第三实施方式提供的数据同步装置的模块结构示意图;
图7是本发明第三实施方式提供的数据同步装置的另一模块结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施方式进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施方式中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请所要求保护的技术方案。
本发明的第一实施方式涉及一种数据同步方法,通过使用正常状态数组记录数据库集群中各节点的点位信息;当数据库集群中的主节点发生故障时,根据正常状态数组获取主节点发生故障时的点位信息,并记录于异常状态数组中;根据异常状态数组中故障时的点位信息进行主节点的切换,并将主节点的切换的信息记录于异常状态数组中;根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点,剩余节点包括除了发生故障的主节点和切换后的主节点外的其它节点。由于可以根据故障时的点位信息自动完成主节点的切换,切换不需要人工干预,可以实现自动切换,因此故障修复的时间短,可以保证数据服务的及时性,提高数据同步的效果。
应当说明的是,本发明实施方式提供的数据同步方法应用于使用主从结构的数据库集群中,数据库集群包括位于不同域中的主节点和从节点,在同一个域中,主节点只有一个,从节点为一个以上;域的不同可以根据机房或地域的不同进行区分;不同域的主节点通过中间件进行数据的同步,从节点与同一域中的主节点数据同步。其中,中间件是一种独立的***软件服务程序,位于客户机服务器的操作***之上,管理计算资源和网络通信,使用***软件所提供的基础服务,衔接网络上应用***的各个部分或不同的应用,达到资源共享、功能共享的目的。可选地,数据库为mysql数据库。
本发明实施方式提供的数据同步方法具体流程如图1所示,具体包括以下步骤:
S101:使用正常状态数组记录数据库集群中各节点的点位信息。
当数据库集群中的主节点均处于正常状态时,数据库集群处于正常运行的状态,此时可以使用正常状态数组来记录数据库集群中各节点的点位信息。其中,点位信息是指节点中数据存储所在的位置信息。
可选地,正常状态数组可以为键值对(key-value)的形式,其中,key可为各节点的IP端口,用于确定数据库集群中具体的节点,value由具体的节点信息项及对应的值组成一个字典结构,例如,“主从角色:主节点/从节点”、“输入输出状态:正常/异常”、“数据库状态:正常/异常”、“错误号:具体数值”、“日志目录:具体数值”、“日志点位:具体数值”、“延迟值:具体数值”、“域名:具体数值”、“是否为主节点:是/否”等组成。可以理解的是,为了方便在主节点故障时顺利地将发生故障的主节点切换至新的主节点,正常状态数组中的value应包括切换时所需要的必要信息,除了必要信息外,正常状态数组可在上述例子的基础上增加或删除。
可选地,正常运行状态下可通过raft协议在各个节点中维系正常状态数组。其中,raft协议为一致性算法协议,用于保持数据库集群中的数据一致。
请参考图2,其为数据库集群的示例图,则各个节点维系的正常状态数组可如下表所示:
表1
应当说明的是,以上表1仅仅作为示例,其中的数值仅为示例值,不应以此为限。其中,表中“是否为主节点”的值为“1”时代表“是”,值为“0”时代表“否”。
可选地,正常状态数组中的数据可来自数据库本身或数据库日志文件,例如binlog日志。
S102:当数据库集群中的主节点发生故障时,根据正常状态数组获取主节点发生故障时的点位信息,并记录于异常状态数组中。
其中,异常状态数组也可采用键值对的形式。可选地,异常状态数组记录的数据类型一致,数据的具体数据根据运行的情况而变化。
由于数据库集群中的主节点在正常运行时使用正常状态数组记录点位信息,在主节点发生故障时,发生故障的主节点的点位信息不再变化,因此中间件可根据发生故障的主节点对应的正常状态数组获取到故障时的点位信息,并记录在异常状态数组中。
请参考图3,其为图2对应的数据库集群中主节点发生故障的示意图,则此时所有能正常通讯的节点均在正常状态数组维系如下表2所示的数据:
表2
可以理解的是,为了便于记录故障时的详细情况,发生故障时还可以如表2所示记录时间戳这项信息。
S103:根据异常状态数组中故障时的点位信息进行主节点的切换,并将主节点的切换的信息记录于异常状态数组中。
在一个域中,当主节点发生故障时,需要将发生故障的主节点切换至一个新的主节点,以便不同域的主节点与新的主节点建立新的数据同步关系,而在不同域的主节点与新的主节点建立新的数据同步关系时,需要知道发生故障的主节点在发生故障时的点位信息。由于异常状态数组中记录了故障时的点位信息,因此可以根据异常状态数组中故障时的点位信息进行主节点的切换。
在一个具体的例子中,根据异常状态数组中故障时的点位信息进行主节点的切换,具体为:根据异常状态数组中故障时的点位信息,将与发生故障的主节点位于相同域的一从节点作为新的主节点。
应当理解的是,在同一个域中,主节点会将数据同步至从节点,正常状态数组和异常状态数组的数据主从节点保持一致,但由于延迟的存在,各个从节点保存的点位信息会存在先后顺序。可选地,在进行主节点的切换时,可以将发生故障时点位信息最新(即最先的)的从节点切换为新的主节点。可选地,若发生故障时点位信息最新的从节点为两个以上,则可随机选取其中一个从节点切换为新的主节点。
在完成主节点的切换之后,将主节点切换的信息记录于异常状态数组中,即在异常状态数组中将新的主节点的“主从角色”从“从节点”改为“主节点”,将“是否为主节点”的值改为“是”,以便根据异常状态数组的信息将不同域的主节点的同步关系修改为新的主节点。可选地,为了保持信息的完整性,主节点切换的信息同时也记录在正常状态数组中,具体地,发生故障的主节点将“主从角色”从“主节点”改为“从节点”,将“是否为主节点”的值改为“否”,而将新的主节点的“主从角色”从“从节点”改为“主节点”,将“是否为主节点”的值改为“是”。
可选地,正常状态数组和异常状态数组的数据更新可由中间件通过探测各域内的节点状态来实时更新。
可选地,在数据库集群中的主节点发生故障后,数据库集群将发生故障的主节点排除在外,根据剩余能正常通信的节点形成一个新的数据库集群,得到一个新的集群状态。例如数据库集群状态原来为(S1,S2,S3,S4),若S1为发生故障的主节点,则新的数据库集群状态更新为(S2,S3,S4)。
S104:根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点,剩余节点包括除了发生故障的主节点和切换后的主节点外的其它节点。
在进行主节点切换后,中间件根据raft协议和异常状态数据将记录的主节点切换及相关的信息传递至数据库集群中除发生故障的主节点和切换后的主节点外的其它节点。
在一个具体的例子中,S104具体可以包括:根据raft协议和异常状态数组将主节点切换的信息通过中间件传递至与新的主节点处于不同域的节点;与新的主节点处于不同域的节点根据异常状态数组将同步源切换至新的主节点。
由于不同域的数据同步是通过主节点之间的通讯进行的,因此与新的主节点处于不同域的节点在获取到异常状态数组后,获取到主节点切换的信息,则根据异常状态数组将原来的同步关系删除,修改为新的主节点,建立新的同步关系,完成数据的同步。
与现有技术相比,本发明实施方式提供的数据同步方法,通过使用正常状态数组记录数据库集群中各节点的点位信息;当数据库集群中的主节点发生故障时,根据正常状态数组获取主节点发生故障时的点位信息,并记录于异常状态数组中;根据异常状态数组中故障时的点位信息进行主节点的切换,并将主节点切换的信息记录于异常状态数组中;根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点。通过正常状态数组记录各节点的点位信息,可以在数据库集群中的主节点发生故障时获取故障时的点位信息;通过将故障时的点位信息记录在异常状态数组中,从而可以根据异常状态数组中故障时的点位信息自动进行主节点的切换,无需人工干预,可以实现自动切换;而通过raft协议将主节点切换的信息传递剩余节点,可以使与发生故障的主节点处于不同域的节点将同步源切换为切换后的主节点,建立新的同步关系,完成数据的同步;由于在数据库集群中主节点发生故障时可以根据记录的点位信息自动完成主节点的切换,无需人工干预,因此故障修改时间短,可以保证数据服务的及时性,提高数据同步的效果。
本发明的第二实施方式涉及一种数据同步方法。第二实施方式与第一实施方式大致相同,主要区别之处在于:在本发明第二实施方式中,在根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点之后,还包括:当发生故障的主节点恢复正常而成为从节点时,根据故障时的点位信息完成上述从节点的增量数据的同步。
本发明实施方式提供的数据同步方法的具体流程如图4所示,具体包括以下步骤:
S201:使用正常状态数组记录数据库集群中各节点的点位信息。
S202:当数据库集群中的主节点发生故障时,根据正常状态数组获取主节点发生故障时的点位信息,并记录于异常状态数组中。
S203:根据异常状态数组中故障时的点位信息进行主节点的切换,并将主节点的切换的信息记录于异常状态数组中。
S204:根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点,剩余节点包括除了发生故障的主节点和切换后的主节点外的其它节点。
S205:当发生故障的主节点恢复正常而成为从节点时,根据故障时的点位信息完成上述从节点的增量数据的同步。
其中,S201-S204与第一实施方式中的S101-S104相同,具体可参见第一实施方式中的描述,这里不再赘述。
对于S205,具体地,当发生故障的主节点恢复正常而成为从节点时,由于异常状态数组和正常状态数组均记录有故障时的点位信息,因此,该从节点可以根据故障时的点位信息和新的主节点现时的点位信息确定增量数据,以完成增量数据的同步。
请参考图5,其为本发明实施方式提供的数据同步方法的时序示例图。具体地,当域名为1的主节点发生故障时,中间件通过探测得知该主节点发生故障,则将正常状态数组中的信息保存至异常状态数组中,并将要提升域名为1的从节点提升为主节点的信息通过raft协议传递至域名为2的主节点和从节点;待域名为2的主节点和从节点确认后,将域名为1的从节点提升为主节点,并将域名为1的从节点提升为主节点的信息通过raft协议传递至域名为2的各节点;当域名为1的原主节点恢复正常成为从节点时,则重新加入集群,其余节点确认后,该从节点根据故障时的点位信息将增量数据实时写入。
与现有技术相比,本发明实施方式提供的数据同步方法,在发生故障的主节点恢复正常成为从节点时,根据故障时的点位信息完成该从节点的增量数据的同步,可以根据故障时的点位信息精确定位增量数据同步的起点,从而避免点位错乱导致同步中断的情况,提高数据同步的便捷性和效率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包含相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施方式涉及一种数据同步装置301,如图6所示,包含:点位信息记录模块301、故障信息获取模块302、主节点切换模块303和切换信息传递模块304。各功能模块详细说明如下:
点位信息记录模块301,用于使用正常状态数组记录数据库集群中各节点的点位信息;
故障信息获取模块302,用于当数据库集群中的主节点发生故障时,根据正常状态数组获取主节点发生故障时的点位信息,并记录于异常状态数组中;
主节点切换模块303,用于根据异常状态数组中故障时的点位信息进行主节点的切换,并将主节点的切换的信息记录于异常状态数组中;
切换信息传递模块304,用于根据raft协议和异常状态数组将主节点切换的信息传递至数据库集群中的剩余节点,剩余节点包括除了发生故障的主节点和切换后的主节点外的其它节点。
进一步地,主节点切换模块303还用于:
根据异常状态数组中故障时的点位信息,将与主节点位于相同域的一从节点作为新的主节点。
进一步地,切换信息传递模块304还用于:
根据raft协议和异常状态数组将主节点切换的信息通过中间件传递至与新的主节点处于不同域的节点;
与新的主节点处于不同域的节点根据异常状态数组将同步源切换至新的主节点。
进一步地,如图7所示,数据同步装置300还包括增量数据同步模块305,其中,增量数据同步模块305用于:
当发生故障的主节点恢复正常而成为从节点时,根据故障时的点位信息完成从节点的增量数据的同步。
进一步地,点位信息记录模块301还用于使用键值对形式的数据结构的正常状态数组记录点位信息;
故障信息获取模块302还用于将故障时的点位信息记录于使用键值对形式的数据结构的异常状态数组中。
不难发现,本实施方式为与第一实施方式相对应的装置实施例,本实施方式可与第一实施方式互相配合实施。第一实施方式中提到的相关技术细节在本实施方式中依然有效,为了减少重复,这里不再赘述。相应地,本实施方式中提到的相关技术细节也可应用在第一实施方式中。
值得一提的是,本实施方式中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施方式中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施方式中不存在其它的单元。
本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
Claims (8)
1.一种数据同步方法,其特征在于,应用于使用主从结构的数据库集群中,数据库集群包括位于不同域中的主节点和从节点,不同域的主节点通过中间件进行数据的同步,从节点与同一域中的主节点数据同步,所述方法包括:
使用正常状态数组记录数据库集群中各节点的点位信息,所述点位信息是指节点中数据存储所在的位置信息;
当所述数据库集群中的主节点发生故障时,中间件根据发生故障的主节点对应的所述正常状态数组获取所述主节点发生故障时的点位信息,并记录于异常状态数组中;
根据所述异常状态数组中所述故障时的点位信息进行主节点的切换,并将所述主节点的切换的信息记录于所述异常状态数组中;
根据raft协议和所述异常状态数组将所述主节点切换的信息通过中间件传递至与新的主节点处于不同域的节点;所述与新的主节点处于不同域的节点根据所述异常状态数组将同步源切换至新的主节点,其中所述新的主节点是与所述主节点位于相同域的一从节点。
2.根据权利要求1所述的数据同步方法,其特征在于,所述根据所述异常状态数组中所述故障时的点位信息进行主节点的切换,具体为:
根据所述异常状态数组中所述故障时的点位信息,将与所述主节点位于相同域的一从节点作为新的主节点。
3.根据权利要求1所述的数据同步方法,其特征在于,在所述根据raft协议和所述异常状态数组将所述主节点切换的信息传递至所述数据库集群中的剩余节点之后,还包括:
当发生故障的所述主节点恢复正常而成为从节点时,根据所述故障时的点位信息完成所述从节点的增量数据的同步。
4.根据权利要求1所述的数据同步方法,其特征在于,所述正常状态数组和所述异常状态数组为键值对形式的数据结构。
5.一种数据同步装置,其特征在于,应用于使用主从结构的数据库集群中,数据库集群包括位于不同域中的主节点和从节点,不同域的主节点通过中间件进行数据的同步,从节点与同一域中的主节点数据同步,所述装置包括:
点位信息记录模块,用于使用正常状态数组记录数据库集群中各节点的点位信息,所述点位信息是指节点中数据存储所在的位置信息;
故障信息获取模块,用于当所述数据库集群中的主节点发生故障时,中间件根据发生故障的主节点对应的所述正常状态数组获取所述主节点发生故障时的点位信息,并记录于异常状态数组中;
主节点切换模块,用于根据所述异常状态数组中所述故障时的点位信息进行主节点的切换,并将所述主节点的切换的信息记录于所述异常状态数组中;
切换信息传递模块,用于根据raft协议和所述异常状态数组将所述主节点切换的信息通过中间件传递至与新的主节点处于不同域的节点;所述与所述新的主节点处于不同域的节点根据所述异常状态数组将同步源切换至新的主节点,其中所述新的主节点是与所述主节点位于相同域的一从节点。
6.根据权利要求5所述的数据同步装置,其特征在于,所述主节点切换模块还用于:
根据所述异常状态数组中所述故障时的点位信息,将与所述主节点位于相同域的一从节点作为新的主节点。
7.根据权利要求5所述的数据同步装置,其特征在于,还包括增量数据同步模块,所述增量数据同步模块用于:
当发生故障的所述主节点恢复正常而成为从节点时,根据所述故障时的点位信息完成所述从节点的增量数据的同步。
8.根据权利要求5所述的数据同步装置,其特征在于,所述点位信息记录模块还用于使用键值对形式的数据结构的正常状态数组记录所述点位信息;
所述故障信息获取模块还用于将所述故障时的点位信息记录于使用键值对形式的数据结构的异常状态数组中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010165046.4A CN111460029B (zh) | 2020-03-11 | 2020-03-11 | 数据同步方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010165046.4A CN111460029B (zh) | 2020-03-11 | 2020-03-11 | 数据同步方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111460029A CN111460029A (zh) | 2020-07-28 |
CN111460029B true CN111460029B (zh) | 2024-04-19 |
Family
ID=71685737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010165046.4A Active CN111460029B (zh) | 2020-03-11 | 2020-03-11 | 数据同步方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111460029B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256707B (zh) * | 2020-12-18 | 2021-04-09 | 上海爱可生信息技术股份有限公司 | 一种数据库中间件的流量管理方法及数据库中间件节点 |
CN113297173B (zh) * | 2021-05-24 | 2023-10-31 | 阿里巴巴新加坡控股有限公司 | 分布式数据库集群管理方法及装置、电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202075A (zh) * | 2015-04-29 | 2016-12-07 | 中兴通讯股份有限公司 | 一种数据库主备切换的方法及装置 |
CN106341454A (zh) * | 2016-08-23 | 2017-01-18 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理***和方法 |
CN107291787A (zh) * | 2016-04-13 | 2017-10-24 | 中兴通讯股份有限公司 | 主备数据库切换方法和装置 |
CN109308227A (zh) * | 2018-08-24 | 2019-02-05 | 腾讯科技(深圳)有限公司 | 故障检测控制方法及相关设备 |
CN109388630A (zh) * | 2018-09-29 | 2019-02-26 | 北京京东金融科技控股有限公司 | 数据库切换方法、***、电子设备和计算机可读介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9542468B2 (en) * | 2014-03-24 | 2017-01-10 | Hitachi, Ltd. | Database management system and method for controlling synchronization between databases |
-
2020
- 2020-03-11 CN CN202010165046.4A patent/CN111460029B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202075A (zh) * | 2015-04-29 | 2016-12-07 | 中兴通讯股份有限公司 | 一种数据库主备切换的方法及装置 |
CN107291787A (zh) * | 2016-04-13 | 2017-10-24 | 中兴通讯股份有限公司 | 主备数据库切换方法和装置 |
CN106341454A (zh) * | 2016-08-23 | 2017-01-18 | 世纪龙信息网络有限责任公司 | 跨机房多活分布式数据库管理***和方法 |
CN109308227A (zh) * | 2018-08-24 | 2019-02-05 | 腾讯科技(深圳)有限公司 | 故障检测控制方法及相关设备 |
CN109388630A (zh) * | 2018-09-29 | 2019-02-26 | 北京京东金融科技控股有限公司 | 数据库切换方法、***、电子设备和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111460029A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10979286B2 (en) | Method, device and computer program product for managing distributed system | |
US10892839B2 (en) | Method for fast reconfiguration of GM clocks in the TSN network by means of an explicit teardown message | |
US9286298B1 (en) | Methods for enhancing management of backup data sets and devices thereof | |
JP2017534133A (ja) | 分散ストレージ及びレプリケーションシステム、並びに方法 | |
CN201497981U (zh) | 数据库故障自动检测及转移*** | |
CN111460029B (zh) | 数据同步方法和装置 | |
CN111581284A (zh) | 一种数据库高可用性方法、装置、***和存储介质 | |
CN102467508A (zh) | 提供数据库服务的方法及数据库*** | |
CN101876924A (zh) | 数据库故障自动检测及转移方法 | |
US11403319B2 (en) | High-availability network device database synchronization | |
CN115794499B (zh) | 一种用于分布式块存储集群间双活复制数据的方法和*** | |
US20200341861A1 (en) | Method, device, and computer-readable storage medium for managing storage system | |
CN111488395B (zh) | 双节点高可用的分布式存储*** | |
WO2012171346A1 (zh) | 电话号码映射域名解析***(enum-dns)及其容灾方法 | |
CN112052127B (zh) | 一种用于双机热备环境的数据同步方法及装置 | |
CN111400065B (zh) | 一种分离全局zookeeper的pulsar消息异地多活方法及*** | |
WO2015196692A1 (zh) | 一种云计算***以及云计算***的处理方法和装置 | |
CN111241200B (zh) | 基于SQLite数据库的主备同步处理方法及装置 | |
CN108984346B (zh) | 一种生产数据容灾的方法、***及存储介质 | |
CN111813606A (zh) | 一种双节点虚拟机容错的方法、***、设备及介质 | |
CN109218386B (zh) | 一种管理Hadoop命名空间的高可用方法 | |
CN111083074A (zh) | 主备双ospf状态机的高可用性方法和*** | |
CN103780433B (zh) | 自愈式虚拟资源配置管理数据架构 | |
CN113037421B (zh) | 用于时钟同步的方法、通信设备、通信***和存储介质 | |
CN109995848B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |