CN116932278A - 一种数据库灾备方法、装置和存储介质 - Google Patents
一种数据库灾备方法、装置和存储介质 Download PDFInfo
- Publication number
- CN116932278A CN116932278A CN202310745554.3A CN202310745554A CN116932278A CN 116932278 A CN116932278 A CN 116932278A CN 202310745554 A CN202310745554 A CN 202310745554A CN 116932278 A CN116932278 A CN 116932278A
- Authority
- CN
- China
- Prior art keywords
- data center
- data
- current
- target
- node
- 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
- 238000011084 recovery Methods 0.000 title claims abstract description 71
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000012545 processing Methods 0.000 claims abstract description 16
- 238000004590 computer program Methods 0.000 claims description 18
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001502 supplementing effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及数据处理技术领域,尤其涉及一种数据库灾备方法、装置和存储介质。包括:接收用户的数据请求;数据请求用于请求目标数据;在确定当前数据中心无法响应数据请求时,通过选举策略确定目标领导者节点;当前数据中心包括当前领导者节点,当前领导者节点包括目标数据;目标领导者节点中的数据是对当前领导者节点中数据的复制后写入的;将数据请求切换至目标领导者节点所在的目标数据中心;通过目标数据中心响应数据请求。本申请实施例用于解决当前的灾备方案可能会存在数据丢失的问题。
Description
技术领域
本申请涉及数据处理领域,尤其涉及一种数据库灾备方法、装置和存储介质。
背景技术
随着大数据时代的不断发展,数据量的高速增长,数据的安全性也越来越被重视。数据库灾备能够保证数据库系统的安全性。由于很多数据灾备方案不能保证业务的连续性,并且运维成本高。因此,数据库“两地多中心”的灾备的方案应运而生。例如,两地三中心数据库是指将一个数据库分散在两个区域的三个不同的数据中心,其中,两地指的是两个城市,三中心指的是三个数据中心,在同城部署两个数据中心,在另外一个城市再部署一个数据中心。在这种部署方式下,即使一个数据中心发生故障,其他两个数据中心仍然可以保证系统的正常运行。但是当前两地三中心数据库的灾备方案,可能会存在数据丢失的情况,用户体验较差。
发明内容
为了解决上述技术问题,本申请提供了一种数据库灾备方法、装置和存储介质,能够解决当前的灾备方案可能会存在数据丢失的问题。
第一方面,本申请提供了一种数据库灾备方法,包括:接收用户的数据请求;数据请求用于请求目标数据;在确定当前数据中心无法响应数据请求时,通过选举策略确定目标领导者节点;当前数据中心包括当前领导者节点,当前领导者节点包括目标数据;目标领导者节点中的数据是对当前领导者节点中数据的复制后写入的;将数据请求切换至目标领导者节点所在的目标数据中心;通过目标数据中心响应数据请求。
在一些实施例中,在接收用户的数据请求之前,方法还包括:在第一本地数据中心、第二本地数据中心、以及异地备用数据中心建立预设数量的副本节点,并根据预设规则为每个副本节点配置选举权和被选举权;预设规则为:第一本地数据中心和第二本地数据中心的副本节点具有选举权和被选举权,异地备用数据中心的副本节点具有选举权;选举权用于指示具有选举领导者节点的权利,被选举权用于指示具有被选举成为领导者节点的权利;将目标节点中的数据实时同步至副本节点;预设数量为奇数,目标节点为能够被选举成为领导者的节点。
在一些实施例中,在确定当前数据中心无法响应数据请求之前,方法还包括在第一本地数据中心和第二本地数据中心确定当前数据中心;向当前数据中心发送数据请求,以请求目标数据。
在一些实施例中,在在第一本地数据中心和第二本地数据中心确定当前数据中心,包括:通过选举策略在所述第一本地数据中心和所述第二本地数据中心,确定出当前领导者节点,并将所述当前领导者节点所在的数据中心确定为当前数据中心。
在一些实施例中,确定当前数据中心无法响应数据请求,包括:在第一预设时间段内未接收到当前领导者节点的心跳时,确定当前数据中心无法响应数据请求;或者,向当前数据中心发送数据请求,并在第二预设时间段内未接收到目标数据时,确定当前数据中心无法响应数据请求。
在一些实施例中,在确定当前数据中心无法响应数据请求时,通过选举策略确定目标领导者节点,包括:在确定当前数据中心无法响应数据请求时,触发选举策略,并将当前任期号加一;根据预设数量在其他数据中心补齐副本节点数量,并根据预设规则为后补的副本节点配置选举权和被选举权;其它数据中心包括异地备用数据中心和本地备用数据中心,本地备用数据中心为第一本地数据中心和第二本地数据中心任一数据中心,且本地备用数据中心不是当前数据中心;将具有被选举权的副本节点确定为候选人节点,并通过候选人节点广播投票请求;在接收到投票结果时,根据投票结果确定目标领导者节点。
在一些实施例中,在根据投票结果确定目标领导者节点之后,方法还包括:将未被选举为领导者节点的候选人节点的身份更改为跟随者;通过目标领导者节点广播当前任期号。
第二方面,本申请提供了一种数据库灾备装置,包括:接收模块,用于接收用户的数据请求;数据请求用于请求目标数据;确定模块,在确定当前数据中心无法响应数据请求时,通过选举策略确定目标领导者节点;当前数据中心包括当前领导者节点,当前领导者节点包括目标数据;目标领导者节点中的数据是对当前领导者节点中数据的复制后写入的;切换模块,用于将数据请求切换至目标领导者节点所在的目标数据中心;处理模块,用于通过目标数据中心响应数据请求。
第三方面,本申请提供了一种电子设备,包括:处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,计算机程序被处理器执行时实现如第一方面中任一实施例的数据库灾备方法。
第四方面,本申请提供了一种计算机可读存储介质,包括:计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现如第一方面中任一实施例的数据库灾备方法。
第六方面,本申请提供了一种计算机程序产品,包括:当计算机程序产品在计算机上运行时,使得计算机实现如第一方面中任一实施例的数据库灾备方法。
本申请提供的技术方案与现有技术相比具有如下优点:首先将当前领导者节点中数据复制后写入副本节点中。之后,在当前数据中心无法响应数据请求时,通过选举策略在副本节点中确定出目标领导者节点,并将数据请求切换至目标领导者节点所在的目标数据中心,通过目标数据中心响应数据请求。这样,提前将当前领导者节点中的数据复制后写入副本节点中,在当前数据中心宕机时,通过选举策略在副本节点中确定出目标领导者节点来替代当前领导者节点,能够通过副本节点数据复制和副本节点切换的方式,及时将宕机的数据中心切换至正常的数据中心,保证了数据的一致性和业务的连续性,避免了数据丢失的问题,提高了用户体验。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的数据库灾备系统的结构示意图之一;
图2为本申请实施例提供的数据库灾备系统的结构示意图之二;
图3为本申请实施例提供的数据库灾备方法的流程示意图之一;
图4为本申请实施例提供的数据库灾备方法的流程示意图之二;
图5为本申请实施例提供的数据库灾备方法的流程示意图之三;
图6为本申请实施例提供的数据库灾备方法的流程示意图之四;
图7为本申请实施例提供的数据库灾备系统的结构示意图之三;
图8为本申请实施例提供的数据库灾备方法的流程示意图之五;
图9为本申请实施例提供的一种数据库灾备装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为了能够更清楚地理解本申请的上述目的、特征和优点,下面将对本申请的方案进行进一步描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本申请,但本申请还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本申请的一部分实施例,而不是全部的实施例。
图1为本申请实施例提供的数据库灾备系统的结构示意图,本申请的数据库灾备方法可以应用于该数据库灾备系统。如图1所示,数据库灾备系统包括第一本地数据中心101、第二本地数据中心102、异地备用数据中心103、以及数据库灾备装置200。第一本地数据中心101包括第一节点1011、第二节点1012、第三节点1013;第二本地数据中心102包括第四节点1021、第五节点1022、第六节点1023;异地备用数据中心103包括第七节点1031、第八节点1032、第九节点1033。
其中,第一本地数据中心101和第二本地数据中心102位于A市,异地备用数据中心103位于B市,且A市与B市不同。数据库灾备装置200在数据库灾备过程中,可以与第一本地数据中心101、第二本地数据中心102、异地备用数据中心103进行数据通信。可允许数据库灾备装置200通过局域网(local area network,LAN)、无线局域网(wireless local areanetwork,WLAN)与第一本地数据中心101、第二本地数据中心102、异地备用数据中心103进行通信连接。
在一些实施例中,本申请中的本地数据中心用于根据用户的数据请求响应目标数据,异地备用数据中心用于备份存储本地数据中心的数据。
在一些实施例中,本申请中的节点和副本节点均为Hubble数据库。Hubble数据库是一种分布式混合事务/分析处理(hybrid transaction/analytical processing,HTAP)数据库。具备同时处理超高并发事务和海量数据复杂分析的超强能力,能够完美支撑金融级在线交易和大规模数据的即席分析的场景。
本申请中的数据库灾备装置200可以是硬件,也可以是软件。当数据库灾备装置200为硬件时,可以是具有运行应用程序功能的各种电子设备,包括但不限于智能手机、平板电脑、计算机、AI设备、机器人等等。当数据库灾备装置200为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块,也可以实现成单个软件或软件模块。在此不做具体限定。
需要说明的是,本申请实施例所提供的数据库灾备方法可以通过上述数据库灾备装置200执行。
图2为本申请实施例提供的数据库灾备方法的流程示意图,如图2所示,数据库灾备方法可以包括以下步骤。
S21、接收用户的数据请求。
其中,数据请求用于请求目标数据。
首先,如图3所示,在接收用户的数据请求之前,数据库灾备方法还包括以下步骤:
S201、在第一本地数据中心、第二本地数据中心、以及异地备用数据中心建立预设数量的副本节点,并根据预设规则为每个副本节点配置选举权和被选举权。
首先,在第一本地数据中心、第二本地数据中心、以及异地备用数据中心建立预设数量的副本节点。其中,预设数量为奇数。例如,预设数量为5个。
示例性的,在如图4所示的灾备系统中,该数据库灾备系统包括3个数据中心、3个节点、5个副本节点、以及数据库灾备装置200。其中,3个数据中心分别为第一本地数据中心101、第二本地数据中心102、异地备用数据中心103。第一本地数据中心101包括第一副本节点1111、第二副本节点1112、以及第三节点1013;第二本地数据中心102包括第三副本节点1121、第四副本节点1122、以及第六节点1023;异地备用数据中心103包括第五副本节点1131、第八节点1032、第九节点1033。
之后,根据预设规则为每个副本节点配置选举权和被选举权。
其中,预设规则为:第一本地数据中心和第二本地数据中心的副本节点具有选举权和被选举权,异地备用数据中心的副本节点具有选举权;选举权用于指示具有选举领导者节点的权利,被选举权用于指示具有被选举成为领导者节点的权利。
具体的,在Hubble数据库中采用了raft算法作为分布式共识机制。在raft算法中,节点可以有三个身份,分别是领导者(leader)、候选人(candidate)以及跟随者(follower)。其中,领导者用于接收来自客户端的命令并将其转发给跟随者;跟随者,用于执行来自领导者的命令;候选人,由一部分跟随者在长时间没有接收到领导者的消息时,改变身份成为候选人,用于抢夺成为领导者的资格。
示例性的,可以采用如下程序在第一本地数据中心、第二本地数据中心、以及异地备用数据中心建立5个副本节点,并根据预设规则为每个副本节点配置选举权和被选举权。
ALTER TABLE hubble.public.lineitem100 CONFIGURE ZONE USING//限定配置区域为hubble数据库中的lineitem100表。
num_replicas=5,num_voters=3//在3个数据中心设置5个副本节点。
constraints='{+region=ch-zhongxin1:1,,+region=ch-zhongxin2:1,+region=ch-zh ongxin3:1}',voter_constraints='{+region=ch-zhongxin1:1,+region=ch-zhongxin2:1}',lease_preferences='{[region=ch-zhongxin1],[region=ch-zhongxin2]}';//zhongxin1用于表示第一本地数据中心101,zhongxin2用于表示第二本地数据中心102,zhongxin3用于表示异地备用数据中心103。设置zhongxin1和zhongxin2的副本节点具有选举权和被选举权,zhongxin3的副本节点具有选举权。
S202、将目标节点中的数据实时同步至副本节点。
其中,目标节点为能够被选举成为领导者的节点。即目标节点具有被选举权。
具体的,可以使用raft算法的分布式共识机制将目标节点中的数据实时同步至副本节点。
之后,在接收用户的数据请求时,确定当前数据中心。
上述方案中,在每个数据中心建立副本节点,并为副本节点配置选举权和被选举权,之后,将目标节点中的数据实时同步至副本节点,能够在后续一个数据中心出现故障时,使用其它数据中心响应用户请求,保证了业务的连续性。
在一些实施例中,如图5所示,确定当前数据中心的方法可以包括如下步骤:
S211、在第一本地数据中心和第二本地数据中心确定当前数据中心。
在一些实施例中,在接收用户的数据请求时,可以通过选举策略在第一本地数据中心和第二本地数据中心,确定出当前领导者节点,并将当前领导者节点所在的数据中心确定为当前数据中心。其中,选举策略可以是包括选举策略的算法,例如,可以使用raft算法首先确定出当前领导者节点,然后将当前领导者节点所在的数据中心确定为当前数据中心。
在一些实施例中,在确定出当前领导者节点后,当前领导者节点会立刻发送心跳(广播消息),避免其余节点触发新的选举。
在一些实施例中,还可以使用负载均衡器(high availability proxy,HAProxy)在第一本地数据中心和第二本地数据中心确定当前数据中心。
S212、向当前数据中心发送数据请求,以请求目标数据。
具体的,当前数据中心在接收数据请求之后,会将数据请求统一交给当前领导者节点,再由当前领导者节点根据数据请求响应目标数据。
上述方案中,能够在第一本地数据中心和第二本地数据中心确定当前数据中心,并向当前数据中心发送数据请求,以请求目标数据,能够在用户请求数据时正常实现业务。
S22、在确定当前数据中心无法响应数据请求时,通过选举策略确定目标领导者节点。
其中,当前数据中心包括当前领导者节点,当前领导者节点包括目标数据;目标领导者节点中的数据是对当前领导者节点中数据的复制后写入的。
首先,确定当前数据中心无法响应数据请求。
在一些实施例中,确定当前数据中心无法响应数据请求的方式可以是在第一预设时间段内未接收到当前领导者节点的心跳时,确定当前数据中心无法响应数据请求。
在一些实施例中,确定当前数据中心无法响应数据请求的方式也可以是向当前数据中心发送数据请求,并在第二预设时间段内未接收到目标数据时,确定当前数据中心无法响应数据请求。
其中,第一预设时间段和第二预设时间段均为预设的,例如,为默认的,或者为相关人员根据实际情况写入的。
之后,通过选举策略确定目标领导者节点。
在一些实施例中,如图6所示,通过选举策略确定目标领导者节点的方法可以包括以下步骤:
S221、在确定当前数据中心无法响应数据请求时,触发选举策略,并将当前任期号加一。
具体的,在当前数据中心无法响应数据请求时,确定当前数据中心发生故障,触发选举策略,并将当前任期号加一。
在一些实施例中,在本地备用数据中心的跟随者副本节点(即当前身份为跟随者的副本节点)在第一预设时间段内,未接收到当前领导者节点的心跳时,改变身份成为候选人节点,并将当前任期号加一。其中,本地备用数据中心为第一本地数据中心和第二本地数据中心任一数据中心,且本地备用数据中心不是当前数据中心,即本地备用数据中心是第一本地数据中心和第二本地数据中,除当前数据中心外的另外一个本地数据中心。例如,在如图4所示的灾备系统中,在当前数据中心为第一本地数据中心101时,则本地备用数据中心为第二本地数据中心102。
S222、根据预设数量在其他数据中心补齐副本节点数量,并根据预设规则为后补的副本节点配置选举权和被选举权。
其中,其它数据中心包括异地备用数据中心和本地备用数据中心。例如,在如图4所示的灾备系统中,在当前数据中心为第一本地数据中心101时,则本地备用数据中心为第二本地数据中心102,异地备用数据中心为异地备用数据中心103。
首先,根据预设数量在其他数据中心补齐副本节点数量。
具体的,由于当前数据中心发生了故障,而当前数据中心中也有副本节点,所以需要在其它数据中心中补齐副本节点。因此,在触发选举策略时,根据之前(步骤S201)建立副本节点的数量补齐副本节点。其中,补齐副本节点的方式可以是先根据预设数量建立相应的副本节点,再将任一副本节点中的数据复制写入新建立的副本节点。
例如,在如图4所示的灾备系统中,包括5个副本节点,在当前数据中心为第一本地数据中心101时,则本地备用数据中心为第二本地数据中心102,异地备用数据中心为异地备用数据中心103。这样,当第一本地数据中心101出现故障时,在第二本地数据中心102和地备用数据中心103中补全5个副本节点。例如,补齐后的灾备系统可以是如图7所示的灾备系统,在第二本地数据中心102和异地备用数据中心103中包括5个副本节点。其中,第二本地数据中心102包括第三副本节点1121、第四副本节点1122、以及第六副本节点1123;异地备用数据中心103包括第五副本节点1131、第七副本节点1132、第九节点1033。
之后,根据预设规则为后补的副本节点配置选举权和被选举权。
具体的,预设规则为第一本地数据中心和第二本地数据中心的副本节点具有选举权和被选举权,异地备用数据中心的副本节点具有选举权。
例如,在如图7所示的灾备系统中,包括5个副本节点,第二本地数据中心102中的3个副本节点具有选举权和被选举权,异地备用数据中心103中的2个副本节点具有选举权。
S223、将具有被选举权的副本节点确定为候选人节点,并通过候选人节点广播投票请求。
在一些实施例中,在本地备用数据中心的跟随者副本节点(即当前身份为跟随者的副本节点)在第一预设时间段内,未接收到当前领导者节点的心跳时,改变身份成为候选人节点,并立刻发送广播消息,为自己拉票。
S224、在接收到投票结果时,根据投票结果确定目标领导者节点。
具体的,在接收到投票结果时,将投票结果中得票最高的副本节点确定为目标领导者节点。另外,在投票结果中显示有平票的情况时,重新进入投票环节,直至选出目标领导者节点。
例如,在如图7所示的灾备系统中,在投票结果显示,第三副本节点1121的票数为3,第四副本节点1122的票数为1,第六副本节点1123的票数为1时,确定第三副本节点1121为目标领导者节点。又例如,在投票结果显示,第三副本节点1121的票数为2,第四副本节点1122的票数为2,第六副本节点1123的票数为1时,重新进入投票选举。
上述方案中,在当前数据中心出现故障时,通过选举策略在副本节点中确定出目标领导者节点来替代当前领导者节点,能够通过副本节点数据复制和副本节点切换的方式,及时将出现故障的数据中心切换至正常的数据中心,保证了数据的一致性和业务的连续性,避免了数据丢失的问题,提高了用户体验。
在一些实施例中,如图8所示,在根据投票结果确定目标领导者节点之后,数据库灾备方法还包括以下步骤:
S225、将未被选举为领导者节点的候选人节点的身份更改为跟随者。
S226、通过目标领导者节点广播当前任期号。
在一些实施例中,在通过目标领导者节点广播当前任期号,还发送心跳。这样,在当前数据中心恢复时,当前数据中心中的节点接收到当前任期号和心跳是,确定当前已有领导者节点,当前数据中心中的节点会将自身的身份变更为跟随者。
上述方案中,在选举出新的领导者节点后,新的领导者节点广播当前任期号,并发送心跳,以避免其余节点触发新的选举造成流程紊乱和资源浪费。
S23、将数据请求切换至目标领导者节点所在的目标数据中心。
在一些实施例中,可以使用Keepalived高可用软件将当前数据中心的虚拟互联网协议(internet protocol,IP)地址漂移到可访问目标数据中心。
S24、通过目标数据中心响应数据请求。
上述方案中,首先将当前领导者节点中数据复制后写入副本节点中。之后,在当前数据中心无法响应数据请求时,通过选举策略在副本节点中确定出目标领导者节点,并将数据请求切换至目标领导者节点所在的目标数据中心,通过目标数据中心响应数据请求。这样,提前将当前领导者节点中的数据复制后写入副本节点中,在当前数据中心宕机时,通过选举策略在副本节点中确定出目标领导者节点来替代当前领导者节点,能够通过副本节点数据复制和副本节点切换的方式,及时将宕机的数据中心切换至正常的数据中心,保证了数据的一致性和业务的连续性,避免了数据丢失的问题,提高了用户体验。
本申请实施例可以根据上述方法示例对数据库灾备装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图9所示,本申请的实施例提供数据库灾备装置200的结构示意图。该数据库灾备装置200包括接收模块31、确定模块32、切换模块33、以及处理模块34。
接收模块31,用于接收用户的数据请求;数据请求用于请求目标数据;确定模块32,在确定当前数据中心无法响应数据请求时,通过选举策略确定目标领导者节点;当前数据中心包括当前领导者节点,当前领导者节点包括目标数据;目标领导者节点中的数据是对当前领导者节点中数据的复制后写入的;切换模块33,用于将数据请求切换至目标领导者节点所在的目标数据中心;处理模块34,用于通过目标数据中心响应数据请求。
在一些实施例中,处理模块34,还用于在第一本地数据中心、第二本地数据中心、以及异地备用数据中心建立预设数量的副本节点,并根据预设规则为每个副本节点配置选举权和被选举权;预设规则为:第一本地数据中心和第二本地数据中心的副本节点具有选举权和被选举权,异地备用数据中心的副本节点具有选举权;选举权用于指示具有选举领导者节点的权利,被选举权用于指示具有被选举成为领导者节点的权利;将目标节点中的数据实时同步至副本节点;预设数量为奇数,目标节点为能够被选举成为领导者的节点。
在一些实施例中,处理模块34,还用于在第一本地数据中心和第二本地数据中心确定当前数据中心;向当前数据中心发送数据请求,以请求目标数据。
在一些实施例中,处理模块34,具体用于通过选举策略在第一本地数据中心和第二本地数据中心,确定出当前领导者节点,并将当前领导者节点所在的数据中心确定为当前数据中心。
在一些实施例中,确定模块32,具体用于在第一预设时间段内未接收到当前领导者节点的心跳时,确定当前数据中心无法响应数据请求;或者,向当前数据中心发送数据请求,并在第二预设时间段内未接收到目标数据时,确定当前数据中心无法响应数据请求。
在一些实施例中,确定模块32,具体用于在确定当前数据中心无法响应数据请求时,触发选举策略,并将当前任期号加一;根据预设数量在其他数据中心补齐副本节点数量,并根据预设规则为后补的副本节点配置选举权和被选举权;其它数据中心包括异地备用数据中心和本地备用数据中心,本地备用数据中心为第一本地数据中心和第二本地数据中心任一数据中心,且本地备用数据中心不是当前数据中心;将具有被选举权的副本节点确定为候选人节点,并通过候选人节点广播投票请求;在接收到投票结果时,根据投票结果确定目标领导者节点。
在一些实施例中,处理模块34,还用于将未被选举为领导者节点的候选人节点的身份更改为跟随者;通过目标领导者节点广播当前任期号。
图10为本申请实施例提供的一种电子设备的结构示意图。
如图10所示,本申请实施例提供一种电子设备,该电子设备包括:处理器1201、存储器1202及存储在所述存储器1202上并可在所述处理器1201上运行的计算机程序,所述计算机程序被所述处理器1201执行时实现上述方法实施例中的数据库灾备方法的各个过程。且能达到相同的技术效果,为避免重复,这里不再赘述。
本申请实施例提供一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储计算机程序,该计算机程序被处理器执行时实现上述方法实施例中数据库灾备方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,该计算机可读存储介质可以为只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等。
本申请实施例提供一种计算程序产品,该计算机程序产品存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中数据库灾备方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
本申请中,处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请中,存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
本申请中,计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据库灾备方法,其特征在于,
接收用户的数据请求;所述数据请求用于请求目标数据;
在确定当前数据中心无法响应所述数据请求时,通过选举策略确定目标领导者节点;所述当前数据中心包括当前领导者节点,所述当前领导者节点包括所述目标数据;所述目标领导者节点中的数据是对所述当前领导者节点中数据的复制后写入的;
将所述数据请求切换至所述目标领导者节点所在的目标数据中心;
通过所述目标数据中心响应所述数据请求。
2.根据权利要求1所述的数据库灾备方法,其特征在于,在接收用户的数据请求之前,所述方法还包括:
在第一本地数据中心、第二本地数据中心、以及异地备用数据中心建立预设数量的副本节点,并根据预设规则为每个所述副本节点配置选举权和被选举权;所述预设规则为:所述第一本地数据中心和所述第二本地数据中心的副本节点具有选举权和被选举权,所述异地备用数据中心的副本节点具有选举权;所述选举权用于指示具有选举领导者节点的权利,所述被选举权用于指示具有被选举成为领导者节点的权利;
将目标节点中的数据实时同步至所述副本节点;所述预设数量为奇数,所述目标节点为能够被选举成为领导者的节点。
3.根据权利要求2所述的数据库灾备方法,其特征在于,在确定当前数据中心无法响应所述数据请求之前,所述方法还包括:
在第一本地数据中心和第二本地数据中心确定当前数据中心;
向所述当前数据中心发送所述数据请求,以请求目标数据。
4.根据权利要求3所述的数据库灾备方法,其特征在于,在第一本地数据中心和第二本地数据中心确定当前数据中心,包括:
通过选举策略在所述第一本地数据中心和所述第二本地数据中心,确定出当前领导者节点,并将所述当前领导者节点所在的数据中心确定为当前数据中心。
5.根据权利要求4所述的数据库灾备方法,其特征在于,所述确定当前数据中心无法响应所述数据请求,包括:
在第一预设时间段内未接收到所述当前领导者节点的心跳时,确定当前数据中心无法响应所述数据请求;
或者,向所述当前数据中心发送所述数据请求,并在第二预设时间段内未接收到所述目标数据时,确定当前数据中心无法响应所述数据请求。
6.根据权利要求3所述的数据库灾备方法,其特征在于,所述在确定当前数据中心无法响应所述数据请求时,通过选举策略确定目标领导者节点,包括:
在确定当前数据中心无法响应所述数据请求时,触发选举策略,并将当前任期号加一;
根据所述预设数量在其他数据中心补齐副本节点数量,并根据所述预设规则为后补的副本节点配置选举权和被选举权;其它数据中心包括所述异地备用数据中心和本地备用数据中心,所述本地备用数据中心为所述第一本地数据中心和所述第二本地数据中心任一数据中心,且所述本地备用数据中心不是所述当前数据中心;
将具有被选举权的副本节点确定为候选人节点,并通过候选人节点广播投票请求;
在接收到投票结果时,根据所述投票结果确定目标领导者节点。
7.根据权利要求6所述的数据库灾备方法,其特征在于,在根据所述投票结果确定目标领导者节点之后,所述方法还包括:
将未被选举为领导者节点的候选人节点的身份更改为跟随者;
通过所述目标领导者节点广播当前任期号。
8.一种数据库灾备装置,其特征在于,包括:
接收模块,用于接收用户的数据请求;所述数据请求用于请求目标数据;
确定模块,在确定当前数据中心无法响应所述数据请求时,通过选举策略确定目标领导者节点;所述当前数据中心包括当前领导者节点,所述当前领导者节点包括所述目标数据;所述目标领导者节点中的数据是对所述当前领导者节点中数据的复制后写入的;
切换模块,用于将所述数据请求切换至所述目标领导者节点所在的目标数据中心;
处理模块,用于通过所述目标数据中心响应所述数据请求。
9.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在执行计算机程序时,使得所述电子设备实现权利要求1至7中任一项所述的数据库灾备方法。
10.一种计算机可读存储介质,其特征在于,包括:所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述的数据库灾备方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310745554.3A CN116932278A (zh) | 2023-06-21 | 2023-06-21 | 一种数据库灾备方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310745554.3A CN116932278A (zh) | 2023-06-21 | 2023-06-21 | 一种数据库灾备方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116932278A true CN116932278A (zh) | 2023-10-24 |
Family
ID=88391639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310745554.3A Pending CN116932278A (zh) | 2023-06-21 | 2023-06-21 | 一种数据库灾备方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116932278A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170262519A1 (en) * | 2010-12-23 | 2017-09-14 | Eliot Horowitz | System and method for determining consensus within a distributed database |
CN113204424A (zh) * | 2021-04-12 | 2021-08-03 | 网络通信与安全紫金山实验室 | 一种优化Raft集群的方法、装置及存储介质 |
CN113965578A (zh) * | 2021-10-28 | 2022-01-21 | 上海达梦数据库有限公司 | 一种集群中主节点的选举方法、装置、设备及存储介质 |
CN114461438A (zh) * | 2022-04-12 | 2022-05-10 | 北京易鲸捷信息技术有限公司 | 非对称中心模式的分布式数据库容灾系统及方法 |
CN116260707A (zh) * | 2023-05-15 | 2023-06-13 | 安徽中科晶格技术有限公司 | 基于共识的区块链节点灾备方法、装置、设备及存储介质 |
-
2023
- 2023-06-21 CN CN202310745554.3A patent/CN116932278A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170262519A1 (en) * | 2010-12-23 | 2017-09-14 | Eliot Horowitz | System and method for determining consensus within a distributed database |
CN113204424A (zh) * | 2021-04-12 | 2021-08-03 | 网络通信与安全紫金山实验室 | 一种优化Raft集群的方法、装置及存储介质 |
CN113965578A (zh) * | 2021-10-28 | 2022-01-21 | 上海达梦数据库有限公司 | 一种集群中主节点的选举方法、装置、设备及存储介质 |
CN114461438A (zh) * | 2022-04-12 | 2022-05-10 | 北京易鲸捷信息技术有限公司 | 非对称中心模式的分布式数据库容灾系统及方法 |
CN116260707A (zh) * | 2023-05-15 | 2023-06-13 | 安徽中科晶格技术有限公司 | 基于共识的区块链节点灾备方法、装置、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
赵春扬;肖冰;郭进伟;钱卫宁;: "一致性协议在分布式数据库系统中的应用", 华东师范大学学报(自然科学版), no. 05 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10127123B2 (en) | Locality based quorums | |
CN109189751B (zh) | 基于区块链的数据同步方法及终端设备 | |
CN108648078B (zh) | 一种交易预处理方法、装置及电子设备 | |
CA3028504C (en) | Data processing method and device | |
CN113641511A (zh) | 一种消息通信方法和装置 | |
US9710344B1 (en) | Locality based quorum eligibility | |
CN112148798A (zh) | 应用于分布式系统的数据处理方法及装置 | |
CN112256477A (zh) | 一种虚拟化容错方法及设备 | |
CN111158949A (zh) | 容灾架构的配置方法、切换方法及装置、设备和存储介质 | |
US20200142977A1 (en) | Distributed file system with thin arbiter node | |
Liu et al. | Replication in distributed storage systems: State of the art, possible directions, and open issues | |
CN111488247B (zh) | 一种管控节点多次容错的高可用方法及设备 | |
CN116932278A (zh) | 一种数据库灾备方法、装置和存储介质 | |
CN112306755B (zh) | 一种基于微前端架构的高可用性实现方法和系统 | |
Edmondson et al. | QoS-enabled distributed mutual exclusion in public clouds | |
Pandey et al. | Replication in distributed systems and its improvements | |
Jurnet Bolarin | Control resilience in a F2C scenario | |
CN109542353B (zh) | 一种面向广域分布式存储系统的一致性算法 | |
CN115811526B (zh) | 分布式存储系统中的共识方法、计算节点和系统 | |
CN114090545A (zh) | 分布式数据库的维护方法、装置、存储介质及程序产品 | |
CN114254041A (zh) | 共享存储集群的主备流复制方法、装置、电子设备和介质 | |
Fedyuk | Sheik: Dynamic location and binding of microservices for cloud/edge settings | |
Luntovskyy et al. | Architectural transformations in distributed systems | |
CN117459361A (zh) | 集群的运行控制方法、装置、设备及存储介质 | |
Li et al. | High-Available Cloud Platform Based on OpenStack |
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 |