节点切换方法、电子设备和计算机可读存储介质与流程

文档序号:30710264发布日期:2022-07-10 08:12阅读:117来源:国知局
节点切换方法、电子设备和计算机可读存储介质与流程

1.本技术实施例涉及互联网技术领域,特别涉及一种节点切换方法、电子设备和计算机可读存储介质。


背景技术:

2.随着互联网技术的飞速发展,行业应用系统的规模迅速扩大,行业应用所产生的数据量呈爆炸式增长,尤其是金融行业、科技行业等看重数据安全的行业,集中式数据库已经不能满足太字节级(terabyte,简称:tb级)甚至拍字节级(petabytes,简称:pb级)的数据。各行业越来越需要一种能快速处理数据并且及时响应用户访问的方法,也需要该方法可以对数据进行集中分析、管理和维护。
3.因此,具有透明性、数据冗余性、易于扩展性、自治性等特点的分布式数据库已成为行业中普遍应用的方法。分布式数据库多采用多地多中心的组网架构来保证其服务的稳定可靠性以及各组件的高可用性。分布式数据库在实际使用中需要面对自然灾难和人为灾难的挑战,因此,在灾备环境下,业务能否正常迁移,各组件能否顺利切换以及切换后的运行状态是衡量数据库高可用能力的重要因素。相关技术多采用双机集群系统(highly available,简称:ha)来进行主备管理节点之间的切换。
4.然而,ha环境切换操作复杂,容易出现数据不一致的情况,使得分布式数据库容灾能力低。


技术实现要素:

5.本技术实施例的主要目的在于提出一种节点切换方法、电子设备和计算机可读存储介质。旨在提高切换节点过程的逻辑严密性,使得切换方式更加合理、简单,保证分布式数据库不丢失数据,从而保证各项业务可以正常运行。
6.为实现上述目的,本技术实施例还提供了一种电子设备,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的节点切换方法。
7.为实现上述目的,本技术实施例还提供了一种可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的节点切换方法。
8.本技术提出的节点切换方法、电子设备和计算机可读存储介质,若分布式数据库的主管理节点异常,判断分布式数据库的若干备管理节点是否具有一致性副本;其中,分布式数据库包括管理节点和与管理节点对应的非管理节点,管理节点包括主管理节点和若干备管理节点,若主管理节点异常,说明主管理节点发生故障,分布式数据库不能继续使用,进入故障切换模式。若至少有一个备管理节点具有一致性副本,在具有一致性副本的备管理节点中,确定新主管理节点,因为新主管理节点具有一致性副本,将该节点作为新主管理节点,可以使数据丢失量降为0,即切换后不会丢失元数据。根据新主管理节点,切换非管理
节点,可以及时恢复分布式数据库,使分布式数据库重新运转。本发明的实施例,在切换的过程中考虑备管理节点是否具有一致性副本,提高了切换节点过程的逻辑严密性,使得切换方式更加合理,切换操作更加简单,保证分布式数据库不丢失数据,从而保证各项业务可以正常运行。
附图说明
9.图1是根据本发明第一实施例的节点切换方法的流程图;
10.图2是根据本发明第一实施例提供的一种分布式数据库的示意图;
11.图3是根据本发明第一实施例提供的又一种分布式数据库的示意图;
12.图4是根据本发明第一实施例中,若主管理节点异常,判断若干备管理节点是否具有一致性副本的流程图;
13.图5是根据本发明第二实施例的节点切换方法的流程图;
14.图6是根据本发明第三实施例的节点切换方法的流程图;
15.图7是根据本发明第三实施例提供的一种分布式数据库的示意图;
16.图8是根据本发明第三实施例中,根据新主管理节点,切换非管理节点的流程图;
17.图9是根据本发明第四实施例的节点切换方法的流程图;
18.图10是根据本发明第四实施例提供的一种故障同城切换模式的流程图;
19.图11是根据本发明第四实施例提供的一种演练切换模式的流程图;
20.图12是根据本发明第四实施例提供的一种故障异城切换模式的流程图;
21.图13是根据本发明第五实施例的电子设备的结构示意图。
具体实施方式
22.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本技术各实施例中,为了使读者更好地理解本技术而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本技术所要求保护的技术方案。以下各个实施例的划分是为了描述方便,不应对本技术的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
23.本发明的第一实施例涉及一种节点切换方法,应用于电子设备,其中,电子设备可以为服务器,本实施例以及以下各个实施例中电子设备以服务器为例进行说明。下面对本实施例的节点切换方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
24.本实施例的节点切换方法的具体流程可以如图1所示,包括:
25.步骤101,若分布式数据库的主管理节点异常,判断分布式数据库的若干备管理节点是否具有一致性副本;若果是,执行步骤102,否则,直接结束;
26.具体而言,服务器在其管理的分布式数据库的主管理节点发生异常时,可以判断分布式数据库的若干备管理节点是否具有一致性副本。其中,分布式数据库包括管理节点和与管理节点对应的非管理节点,管理节点包括一个主管理节点和若干备管理节点,每一个管理节点都可以对应有一个或多个非管理节点。主管理节点可以正常工作表示主管理节
点正常,主管理节点不能正常工作表示主管理节点异常。造成主管理节点异常的原因包括但不限于主管理节点掉电和主管理节点断网等。
27.在一个例子中,分布式数据库为如图2所示的一地三中心分布式数据库,包括机房1、机房2和机房3三个机房,每个机房均设有两个管理节点,每个管理节点对应有一个全局事务管理器(global transaction manager,简称:gtm)和两个数据节点(data bank,简称:db),gtm和db都属于非管理节点。
28.在一个例子中,分布式数据库搭建有分布式服务框架,其中,分布式服务框架可以为zookeeper框架,zookeeper框架功能强大,搭建简单,只需在服务器上部署zookeeper节点即可,通过zookeeper节点的接口可直观明了的显示当前主管理节点的ip地址和端口信息。搭建有zookeeper框架的三中心分布式数据库可以如图3所示,每个管理节点均对应有一个zookeeper节点。考虑到相关技术采用ha进行节点切换,ha环境搭建复杂,不仅需要同网段的ip互为主备,还需要配置dns服务,数据主备关系不明朗且容易出现主备不一致现象,切换受到很多限制,而采用zookeeper框架,环境搭建比较简单,对服务器的要求比较低,切换简单。
29.在具体实现中,为了解决单点故障问题,分布式数据库的若干备管理节点中均存储有主管理节点的元数据的副本,与主管理节点的元数据完全一致的副本为一致性副本。但主管理节点的元数据同步到各备管理节点需要一定的时间,因此分布式数据库存在备管理节点不具有一致性副本的情况。
30.在一个例子中,若服务器判断若干备管理节点均不具有一致性副本,服务器可以直接结束切换过程。
31.在另一个例子中,若服务器判断若干备管理节点均不具有一致性副本,服务器可以根据若干备管理节点的选主优先级,确定新主管理节点,其中,选主优先级可以由本领域的技术人员在分布式数据库搭建时进行设定,本发明的实施例对此不做具体限定。
32.在另一个例子中,若分布式数据库的主管理节点异常,判断所述分布式数据库的若干备管理节点是否具有一致性副本,可以由如图4所示的各子步骤实现,具体如下:
33.子步骤1011,若分布式数据库的主管理节点异常,获取分布式数据库的水位信息;
34.具体而言,服务器确定分布式数据库的主管理节点异常后,可以获取分布式数据库的水位信息。水位信息可以真实地反映分布式数据库当前的同步状态,在切换的过程中考虑水位信息,可以有效避免切换后元数据丢失。
35.在一个例子中,服务器确定主管理节点异常后,可以对分布式数据库的若干备管理节点的同步情况进行分析,根据分析结果获取分布式数据库的水位信息。
36.子步骤1012,若水位信息为高水位,对分布式数据库的若干备管理节点进行回放;
37.具体而言,若服务器获取的分布式数据库的水位信息为高水位,可以对分布式数据库的若干备管理节点进行回放。
38.在具体实现中,服务器可以获取主管理节点的运行日志,根据日志中记载的内容对若干备管理节点进行回放。高水位代表分布式数据库当前同步状态良好。进行回放可以保证备管理节点进行与主管理节点一样的操作,提高一致性。
39.子步骤1013,判断回放后的若干备管理节点是否具有一致性副本;
40.具体而言,服务器完成对分布式数据库的若干备管理节点进行回放后,可以继续
判断回放后的若干备管理节点是否具有一致性副本。
41.在具体实现中,高水位表示分布式数据库中若干备管理节点储存的元数据的总和包含主管理节点储存的元数据,在高水位时进行切换,分布式数据库不会丢失元数据。
42.在一个例子中,若水位信息低于高水位,终止切换流程。分布式数据库的水位信息低于高水位,代表分布式数据库当前同步状态较差,说明主管理节点储存的元数据中,有分布式数据库中若干备管理节点没有存储的元数据,此时继续进行切换会造成元数据丢失,因此终止切换流程,防止强行切换导致分布式数据库元数据丢失而导致业务错误,造成不必要的经济损失。
43.步骤102,若至少有一个备管理节点具有一致性副本,在具有一致性副本的备管理节点中,确定新主管理节点;
44.具体而言,服务器在判断至少有一个备管理节点具有一致性副本后,可以在具有一致性副本的备管理节点中,确定新主管理节点。新主管理节点具有一致性副本,将该节点作为新主管理节点,可以使数据丢失量降为0。相对应的,确定新主管理节点前的主管理节点可以称为原主管理节点,也就是说,服务器在判定原主管理节点异常后,可以继续判断分布式数据库的若干备管理节点是否具有一致性副本,若至少有一个备管理节点具有一致性副本,服务器可以在具有一致性副本的备管理节点中,确定新主管理节点。
45.在一个例子中,分布式数据库为如图2所示的三中心分布式数据库,主管理节点为管理节点3,服务器判断管理节点4、管理节点5和管理节点6三个备管理节点具有一致性副本,服务器可以在这三个备管理节点中随机选择一个备管理节点作为新主管理节点。
46.在另一个例子中,服务器内部预存有选主优先级,服务器可以根据选主优先级,可以在具有一致性副本的备管理节点中,确定新主管理节点。其中,预存的选主优先级可以由本领域的技术人员根据实际需要进行,本发明的实施例对此不做具体限定。
47.比如:分布式数据库为如图2所示的三中心分布式数据库,主管理节点为管理节点3,管理节点4为与主管理节点同机房的备管理节点,服务器判定管理节点4、管理节点5和管理节点6三个备管理节点具有一致性副本,预存的选主优先级为同机房大于其它,服务器选择管理节点4为新主管理节点。
48.在一个例子中,服务器确定新主管理节点后,可以调用新主管理节点,从除新主管理节点外的各备管理节点中拉取元数据,保证数据丢失量为零,可以及时恢复分布式数据库,保证业务正常运转,降低企业的损失。
49.步骤103,根据新主管理节点,切换非管理节点。
50.具体而言,服务器确定新主管理节点后,可以根据新主管理节点,切换非管理节点。其中,非管理节点包括但不限于gtm和db。
51.在一个例子中,服务器确定新主管理节点后,可以自动根据新主管理节点生成非管理节点切换指令,根据非管理节点切换指令切换非管理节点。
52.在另一个例子中,服务器确定新主管理节点后,可以指示运维人员调用非管理节点切换脚本,即指示运维人员下达非管理节点切换指令,接收到运维人员下达的非管理节点切换指令后,根据非管理节点切换指令切换非管理节点。
53.本发明的第一实施例,若分布式数据库的主管理节点异常,判断分布式数据库的若干备管理节点是否具有一致性副本;其中,分布式数据库包括管理节点和与管理节点对
应的非管理节点,管理节点包括主管理节点和若干备管理节点,若主管理节点异常,说明主管理节点发生故障,分布式数据库不能继续使用,进入故障切换模式。若至少有一个备管理节点具有一致性副本,在具有一致性副本的备管理节点中,确定新主管理节点,因为新主管理节点具有一致性副本,将该节点作为新主管理节点,可以使数据丢失量降为0,即切换后不会丢失元数据。根据新主管理节点,切换非管理节点,可以及时恢复分布式数据库,使分布式数据库重新运转。本发明的实施例,在切换的过程中考虑备管理节点是否具有一致性副本,提高了切换节点过程的逻辑严密性,使得切换方式更加合理,切换操作更加简单,保证分布式数据库不丢失数据,从而保证各项业务可以正常运行。
54.本发明的第二实施例涉及一种节点切换方法,下面对本实施例的节点切换方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须,图5是本发明第二实施例所述的节点切换方法,包括:
55.步骤201,若分布式数据库的主管理节点异常,判断分布式数据库的若干备管理节点是否具有一致性副本,如果是,执行步骤205,否则,执行步骤202;
56.具体而言,服务器在确定主管理节点异常后,可以继续判断是否至少有一个备管理节点具有一致性副本,若至少有一个备管理节点具有一致性副本,执行步骤205,若若干备管理节点均不具有一致性副本,执行步骤202。
57.步骤202,确定若干备管理节点的同步速度;
58.具体而言,服务器判定若干备管理节点均不具有一致性副本后,可以确定若干备管理节点的同步速度。
59.在具体实现中,服务器可以根据若干备管理节点已同步的元数据的数量,来衡量若干备管理节点的同步速度,即认为同步的元数据多的备管理节点,同步速度快;同步的元数据少的备管理节点,同步速度慢。
60.步骤203,根据若干备管理节点的同步速度,确定新主管理节点;
61.具体而言,服务器确定完若干备管理节点的同步速度后,可以根据若干备管理节点的同步速度,确定新主管理节点。根据若干备管理节点的同步速度,确定新主管理节点,可以使确定的新主管理节点更加合理。
62.在一个例子中,服务器可以根据若干备管理节点的同步速度,选定同步速度最快的备管理节点作为新主管理节点。
63.在另一个例子中,服务器可以根据若干备管理节点的同步速度和预设的选主优先级,确定新主管理节点。
64.步骤204,调用新主管理节点,从除新主管理节点外的各备管理节点中拉取元数据;
65.具体而言,服务器确定新主管理节点后,可以调用新主管理节点,从除新主管理节点外的各备管理节点中拉取元数据,保证数据丢失量为零,可以及时恢复分布式数据库,保证业务正常运转,降低企业的损失。
66.在具体实现中,服务器在确定新主管理节点后,可以判断除新主管理节点外的各备管理节点中是否有新主管理节点没有的元数据,若除新主管理节点外的各备管理节点中有新主管理节点没有的元数据,服务器调用新主管理节点,从除新主管理节点外的各备管理节点中拉取元数据,保证新主管理节点有分布式数据库完整的元数据。
67.步骤205,在具有一致性副本的备管理节点中,确定新主管理节点;
68.步骤206,根据新主管理节点,切换非管理节点。
69.其中,步骤205至步骤206在第一实施例中已有说明,此处不再赘述。
70.本发明的第二实施例,在若分布式数据库的主管理节点异常,判断分布式数据库的若干备管理节点是否具有一致性副本之后,还包括:若若干备管理节点均不具有一致性副本,确定若干备管理节点的同步速度;根据若干备管理节点的同步速度,确定新主管理节点,可以使确定的新主管理节点更加合理,调用新主管理节点,从除新主管理节点外的各备管理节点中拉取元数据,保证数据丢失量为零,可以及时恢复分布式数据库,保证业务正常运转,降低企业的损失。
71.本发明的第三实施例涉及一种节点切换方法,下面对本实施例的节点切换方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须,图6是本发明第三实施例所述的节点切换方法的示意图,包括:
72.步骤301,若分布式数据库的主管理节点异常,判断各与主管理节点同城的备管理节点是否均异常,如果是,执行步骤302,否则,执行步骤304;
73.具体而言,多地多中心的分布式数据库可以部署在多个城市的多个机房内,若干备管理节点包括与主管理节点同城的备管理节点和与主管理节点异城的备管理节点。服务器在判定主管理节点异常后,可以继续判断各与主管理节点同城的备管理节点是否均异常。
74.在一个例子中,分布式数据库为如图7所示的两地四中心分布式数据库,包括城市a和城市b,城市a设有机房1和机房2,城市b设有机房3和机房4,每个机房均设有两个管理节点,每个管理节点对应有一个gtm和两个db,gtm和db都属于非管理节点。假设,机房4中的管理节点8为主管理节点,管理节点5、管理节点6和管理节点7为与主管理节点同城的备管理节点,管理节点1、管理节点2、管理节点3和管理节点4为与主管理节点异城的备管理节点。
75.步骤302,调用预设的异城切换脚本;
76.具体而言,服务器在判断各与主管理节点同城的备管理节点均异常后,可以调用预设的异城切换脚本。其中,异城切换脚本用于将主管理节点切换到与主管理节点不相同的城市。
77.在具体实现中,导致与主管理节点同城的备管理节点均异常的原因可以包括但不限于:主管理节点城市停电和主管理节点城市断网等。
78.在一个例子中,预设的异城切换脚本可以由本领域的技术人员预存在服务器中,在服务器判断与主管理节点同城的备管理节点均异常后,可以指示运维人员调用预设的异城切换脚本,进入故障异城切换模式。
79.步骤303,根据预设的异城切换脚本,在与主管理节点异城的备管理节点中,确定新主管理节点;
80.具体而言,服务器在调用预设的异城切换脚本后,可以根据预设的异城切换脚本,在与主管理节点异城的备管理节点中,确定新主管理节点。通过异城切换脚本将主管理节点切换到异城,可以进一步提高分布式数据库的容灾能力,保证业务正常运转,降低企业的损失。
81.在一个例子中,异城切换脚本中可以包括指定的城市。比如:分布式数据库为三地
三中心的分布式数据库,主管理节点为a城市的管理节点1,备管理节点有a城市的管理节点2,b城市的管理节点3和管理节点4,以及c城市的管理节点5和管理节点6。现在a城市各管理节点均不可用,异城切换脚本指定将主管理节点切换至c城市,服务器根据异城切换脚本,在c城市的管理节点5和管理节点6中选择一个作为新主管理节点。
82.在另一个例子中,异城切换脚本中可以包括指定的机房id。比如:分布式数据库为如图7所示的两地四中心分布式数据库,主管理节点为a城市机房2中的管理节点3,现在a城市各管理节点均不可用,异城切换脚本指定将主管理节点切换至b城市机房4,服务器根据异城切换脚本,在b城市机房4的管理节点7和管理节点8中选择一个作为新主管理节点。
83.步骤304,判断与主管理节点同城的备管理节点是否具有一致性副本;如果是,执行步骤305,否则,直接结束;
84.其中,步骤304在第一实施例中已有类似说明,此处不再赘述。
85.步骤305,在具有一致性副本的且与主管理节点同城的备管理节点中,确定新主管理节点;
86.具体而言,服务器在判断至少有一个与主管理节点同城的备管理节点具有一致性副本后,可以在具有一致性副本的且与主管理节点同城的备管理节点中,确定新主管理节点,在有与主管理节点同城的备管理节点可用时,将主管理节点切换至同城,可以有效节省切换时间,保证业务的连续性。
87.在一个例子中,分布式数据库为如图7所示的两地四中心分布式数据库,主管理节点为a城市机房2中的管理节点3,a城市的各备管理节点均可用,服务器可以在管理节点1、管理节点2和管理节点4中选择一个作为新主管理节点。
88.步骤306,根据新主管理节点,切换非管理节点;
89.具体而言,服务器确定新主管理节点后,可以根据新主管理节点,切换非管理节点。其中,非管理节点包括但不限于gtm和db。
90.在一个例子中,根据新主管理节点,切换非管理节点,可以由如图8所示的各子步骤实现,具体如下:
91.子步骤3061,禁用分布式数据库的连接实例;
92.具体而言,服务器在确定新主管理节点后,可以禁用分布式数据库的连接实例。考虑到主管理节点异常后,异城业务存在继续处理的可能,及时禁用分布式数据库的连接实例,可以防止数据混乱。
93.子步骤3062,根据新主管理节点的元数据信息,获取分布式数据库数据一致性的时刻;
94.具体而言,服务器在禁用分布式数据库的连接实例后,可以根据新主管理节点的元数据信息,获取分布式数据库数据一致性的时刻。
95.在一个例子中,服务器可以认定主管理节点发生异常的时刻,为分布式数据库数据一致性的时刻。
96.在另一个例子中,服务器可以检查各非管理节点的数据,根据新主管理节点的元数据信息和各非管理节点的数据,获取分布式数据库数据一致性的时刻。
97.子步骤3063,回滚与新主管理节点对应的非管理节点到数据一致性的时刻;
98.在具体实现中,服务器在获取到分布式数据库数据一致性的时刻后,可以回滚与
新主管理节点对应的非管理节点到数据一致性的时刻,即使得新主管理节点对应的非管理节点的数据与主管理节点对应的非管理节点的数据保持一致,可以保证分布式数据库业务数据一致,防止出现数据混乱和错误。
99.子步骤3064,将与主管理节点对应的非管理节点切换成回滚后的与新主管理节点对应的非管理节点;
100.具体而言,服务器在将新主管理节点对应的非管理节点回滚到数据一致性的时刻后,可以将与主管理节点对应的非管理节点切换成回滚后的与新主管理节点对应的非管理节点。
101.在具体实现中,服务器可以将新主管理节点对应的gtm设定为新主gtm,将新主管理节点对应的数据节点设定为新主数据节点。
102.子步骤3065,启用分布式数据库的连接实例。
103.具体而言,服务器在将与主管理节点对应的非管理节点切换成回滚后的与新主管理节点对应的非管理节点后,可以重新启用分布式数据库的连接实例,让数据库重新运转。
104.本发明的第三实施例,备管理节点包括与主管理节点同城的备管理节点和与主管理节点异城的备管理节点;若至少有一个备管理节点具有一致性副本,在具有一致性副本的备管理节点中,确定新主管理节点,包括:若至少有一个与主管理节点同城的备管理节点具有一致性副本,在具有一致性副本的且与主管理节点同城的备管理节点中,确定新主管理节点,可以有效节省切换时间,保证业务的连续性。在若分布式数据库的主管理节点异常,判断分布式数据库的若干备管理节点是否具有一致性副本之前,还包括:若主管理节点和与主管理节点同城的备管理节点均异常,调用预设的异城切换脚本;根据预设的异城切换脚本,在与主管理节点异城的备管理节点中,确定新主管理节点,即便与主管理节点同城的备管理节点均不可用,也可以通过异城切换脚本将主管理节点切到异城,进一步提高分布式数据库的容灾能力,保证业务正常运转,降低企业的损失。根据新主管理节点,切换非管理节点,包括:禁用分布式数据库的连接实例;根据新主管理节点的元数据信息,获取分布式数据库的数据一致性的时刻;回滚与新主管理节点对应的非管理节点到数据一致性的时刻;将与主管理节点对应的非管理节点切换成回滚后的与新主管理节点对应的非管理节点;启用分布式数据库的连接实例,可以保证分布式数据库业务数据一致,防止出现数据混乱和错误。
105.本发明的第四实施例涉及一种节点切换方法,下面对本实施例的节点切换方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须,图9是本发明第四实施例所述的节点切换方法的示意图,包括:
106.步骤401,接收到节点的演练切换信息后,判断分布式数据库的主管理节点是否正常,如果是,执行步骤402,否则,直接结束;
107.具体而言,服务器可以实时接收由运维人员输入的节点的演练切换信息,在接收到节点的演练切换信息后,服务器可以判断分布式数据库的主管理节点是否正常,若分布式数据库的主管理节点正常,执行步骤402,若分布式数据库的主管理节点异常,不能进行演练切换,直接结束。
108.步骤402,调用预设的演练切换脚本;
109.具体而言,服务器在对若干备管理节点同步完成后,可以调用预设的演练切换脚
本。其中,演练脚本用于演练切换主管理节点。
110.在一个例子中,预设的演练切换脚本可以由本领域的技术人员预存在服务器中,在服务器对若干备管理节点同步完成后,可以指示运维人员调用预设的演练切换脚本。
111.步骤403,根据演练切换脚本,停用主管理节点,并对分布式数据库的若干备管理节点进行同步;
112.具体而言,服务器可以根据演练切换脚本停用主管理节点,并对分布式数据库的若干备管理节点进行同步。及时停用主管理节点,可以防止出现业务混乱,因为主管理节点正常,主备关系正常,可以正常同步以保证数据一致。
113.步骤404,在同步后的若干备管理节点中,确定新主管理节点;
114.具体而言,服务器可以在同步后的若干备管理节点中,确定新主管理节点。进行演练切换,可以检验分布式数据库的容灾能力,以便技术人员及时进行调整和维护,进一步提高分布式数据库的容灾能力。
115.在一个例子中,演练切换脚本中可以包括指定的城市。比如:分布式数据库为三地三中心的分布式数据库,主管理节点为a城市的管理节点1,备管理节点有a城市的管理节点2,b城市的管理节点3和管理节点4,以及c城市的管理节点5和管理节点6。演练切换脚本指定将主管理节点切换至c城市,服务器根据演练切换脚本,在c城市的管理节点5和管理节点6中选择一个作为新主管理节点。
116.在另一个例子中,演练切换脚本中可以包括指定的机房id。比如:分布式数据库为如图7所示的两地四中心分布式数据库,主管理节点为a城市机房2中的管理节点3,演练切换脚本指定将主管理节点切换至b城市机房4,服务器根据演练切换脚本,在b城市机房4的管理节点7和管理节点8中选择一个作为新主管理节点。
117.步骤405,禁用分布式数据库的连接实例;
118.步骤406,根据新主管理节点的元数据信息,获取分布式数据库数据一致性的时刻;
119.步骤407,回滚与新主管理节点对应的非管理节点到数据一致性的时刻;
120.步骤408,将与主管理节点对应的非管理节点切换成回滚后的与新主管理节点对应的非管理节点;
121.步骤409,启用分布式数据库的连接实例。
122.其中,步骤405至步骤409在第三实施例中已有类似说明,此处不再赘述。
123.本发明的第四实施例,接收到节点的演练切换信息后,判断分布式数据库的主管理节点是否正常;若主管理节点正常,调用预设的演练切换脚本;根据预设的演练切换脚本,停用主管理节点,并对分布式数据库的若干备管理节点进行同步;在同步后的若干备管理节点中,确定新主管理节点,可以检验分布式数据库的容灾能力,以便技术人员及时进行调整和维护,进一步提高分布式数据库的容灾能力。
124.在一个例子中,本实施例提供四种切换模式,包括:故障同城自动切换,演练同城切换,故障异城切换,演练异城切换。各切换模式下均采用管理节点和非管理节点分层次切换的方式,极大地降低了组件间的耦合度,避免因某个组件切换失败而造成整体的切换失败。
125.故障同城切换的具体实现方式可以如图10所示,具体如下:
126.步骤501,判断分布式数据库是否处于高水位,如果是,执行步骤502,否则,结束故障同城切换;
127.具体而言,服务器在确定进入故障同城切换后,可以判断分布式数据库是否处于高水位。高水位代表分布式数据库当前同步状态良好,此时切换不会丢失数据。
128.步骤502,等待各备管理节点回放完成;
129.具体而言,服务器在判断分布式数据库处于高水位后,可以对各备管理节点进行回放,并等待各管理节点回放完成;
130.步骤503,判断是否至少有一个参与选主的备管理节点具有一致性副本,如果是,执行步骤506,否则,执行步骤504;
131.具体而言,在故障同城切换模式下,各与主管理节点同城的备管理节点参与选主,与主管理节点异城的备管理节点不参与选主,服务器可以判断是否至少有一个参与选主的备管理节点具有一致性副本;
132.步骤504,选取同步速度最快且选主优先级最高的备管理节点作为新主管理节点;
133.具体而言,服务器在判断参与选主的各备管理节点均不具有一致性副本后,可以选取同步速度最快且选主优先级最高的备管理节点作为新主管理节点,其中,各备管理节点对应有预设的选主优先级,选主优先级可以由本领域的技术人员根据实际需要在搭建分布式数据库时进行设定。
134.在具体实现中,服务器可以根据各备管理节点已同步的元数据的数量来确定各备管理节点的同步速度。
135.步骤505,调用新主管理节点,从除新主管理节点外的备管理节点中拉取元数据;
136.具体而言,服务器可以调用新主管理节点,从除新主管理节点外的备管理节点中拉取元数据,保证新主管理节点的元数据最大。
137.步骤506,选取具有一致性副本的且选主优先级最高的备管理节点作为新主管理节点;
138.具体而言,服务器在判断至少有一个参与选主的备管理节点具有一致性副本后,可以选取具有一致性副本的且选主优先级最高的备管理节点作为新主管理节点,其中,各备管理节点对应有预设的选主优先级,选主优先级可以由本领域的技术人员根据实际需要在搭建分布式数据库时进行设定。
139.步骤507,起用新主管理节点,重建管理节点间的主备关系;
140.具体而言,服务器确定新主管理节点后,可以起用新主管理节点,并重建管理节点间的主备关系。
141.步骤508,根据新主管理节点,控制gtm和db自动切换。
142.具体而言,服务器可以根据新主管理节点,控制gtm和db自动切换。
143.其中,步骤501至步骤507为管理节点切换流程,步骤508为非管理节点切换流程。
144.演练切换(包括同城演练切换和异城演练切换)的具体实现方式可以如图11所示,具体如下:
145.步骤601,判断分布式数据主备关系是否正常,如果是,执行步骤602,否则,结束演练切换流程;
146.具体而言,分布式数据主备关系正常时,可以进行演练切换,若分布式数据主备关
系异常,说明主管理节点发生故障,进入故障同城切换模式或故障异城切换模式。
147.步骤602,停用主管理节点,等待各备管理节点同步完成;
148.具体而言,服务器判定分布式数据库主备关系正常时,可以停用主管理节点,等待各备管理节点同步完成,由于主管理节点正常,服务器可以对各备管理节点进行同步。
149.步骤603,根据指定的机房id,在参与选主的备管理节点中选取选主优先级最高的备管理节点作为新主管理节点;
150.具体而言,服务器在确定各备管理节点同步完成后,可以根据指定的机房id,在参与选主的备管理节点中选取选主优先级最高的备管理节点作为新主管理节点。
151.步骤604,起用新主管理节点,重建管理节点间的主备关系;
152.具体而言,服务器确定新主管理节点后,可以起用新主管理节点,并重建管理节点间的主备关系。
153.步骤605,禁用分布式数据库的连接实例;
154.具体而言,服务器在重建管理节点间的主备关系后,可以禁用分布式数据库的连接实例,及时暂停业务,防止数据混乱。
155.步骤606,切换gtm和数据节点至指定机房;
156.具体而言,服务器在禁用分布式数据库的连接实例后,可以切换gtm和数据节点至指定机房,即切换成新主管理节点对应的gtm和数据节点。
157.步骤607,重新启用连接实例。
158.具体而言,服务器在切换gtm和数据节点至指定机房后,可以重新启用连接实例,恢复业务。
159.其中,步骤601至步骤604为管理节点切换流程,步骤605至步骤607为非管理节点切换流程。
160.异城故障切换的具体实现方式可以如图12所示,具体包括:
161.步骤701,等待各备管理节点回放完成;
162.其中,步骤701与故障同城切换模式的步骤504类似,此处不再赘述。
163.步骤702,根据指定的机房id,在参与选主的备管理节点中选取选主优先级最高的备管理节点作为新主管理节点;
164.具体而言,服务器确定各备管理节点回放完成后,可以根据指定的机房id,在参与选主的备管理节点中选取选主优先级最高的备管理节点作为新主管理节点,其中,在故障异城切换模式下,与主管理节点同城的备管理节点异常,不参选,与主管理节点异城的备管理节点参选。
165.步骤703,调用新主管理节点,从除新主管理节点外的备管理节点中拉取元数据;
166.具体而言,服务器可以调用新主管理节点,从除新主管理节点外的备管理节点中拉取元数据,保证新主管理节点的元数据最大。
167.步骤704,起用新主管理节点,重建管理节点间的主备关系;
168.具体而言,服务器确定新主管理节点后,可以起用新主管理节点,并重建管理节点间的主备关系。
169.步骤705,禁用分布式数据库的连接实例;
170.具体而言,服务器在重建管理节点间的主备关系后,可以禁用分布式数据库的连
接实例,及时暂停业务,防止数据混乱。
171.步骤706,获取集群的元数据信息;
172.具体而言,服务器服务器禁用分布式数据库的连接实例后,可以获取集群的元数据信息,即获取新主管理节点的元数据信息,获取元数据信息可以确定数据一致性的时刻。
173.步骤707,回滚集群到数据一致性时刻;
174.具体而言,服务器在获取集群的元数据信息后,可以回滚集群到数据一致性时刻,即回滚新主管理节点对应的非管理节点回滚到数据一致性时刻,使业务数据一致。
175.步骤708,切换异地gtm为主gtm,异地数据节点为主数据节点;
176.具体而言,服务器回滚集群到数据一致性时刻后,可以切换异地gtm为主gtm,异地数据节点为主数据节点。
177.步骤709,重新启用连接实例。
178.具体而言,服务器在切换异地gtm为主gtm,异地数据节点为主数据节点后,可以重新启用连接实例,恢复业务。
179.其中,步骤701至步骤704为管理节点切换流程,步骤705至步骤709为非管理节点切换流程。
180.与相关技术相比,提供以上四种切换模式的节点切换方法,具有以下优势:
181.(1)环境搭建简单方便。传统的ha环境需要以同一网段的ip互为主备,而且需要配置dns服务器等。而zookeeper环境搭建较简单,对服务器的要求较低,只需在相应的服务器上安装zookeeper节点即可。
182.(2)选主策略逻辑严密。选主过程中综合考虑管理节点的选主优先级,数据同步情况,选举属性(如:本地大于同城大于异城),以及分布式数据库的水位信息等,最大限度地保证管理节点数据不丢失。
183.(3)切换模式多样可定制。用户不仅可应用此方案实现故障情况下的环境紧急切换和修复,还可在各组件运行均正常的情况下应用此方案进行演练切换,以便考察备机房的业务处理能力以及评估备机房中各组件的运行状态。
184.(4)切换方式合理。在本方案的各种切换模式下均采用管理节点和非管理节点分层切换的方式,极大地降低了组件间的耦合度,避免因某个组件切换失败造成的整体切换失败。
185.(5)切换操作简单,切换脚本可重入。无论是容灾切换还是演练切换,整个操作过程只需调用脚本输入一条命令即可完成整个机房的切换。若在切换过程中因某个故障节点导致切换失败,则修复好该故障节点后输入同样的切换命令即可再次发起切换。
186.上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
187.本发明第五实施例涉及一种电子设备,如图13所示,包括:至少一个处理器801;以及,与所述至少一个处理器801通信连接的存储器802;其中,所述存储器802存储有可被所述至少一个处理器801执行的指令,所述指令被所述至少一个处理器801执行,以使所述至少一个处理器801能够执行上述各实施方式中的节点切换方法。
188.其中,存储器和处理器采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器和存储器的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器。
189.处理器负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器可以被用于存储处理器在执行操作时所使用的数据。
190.本发明第六实施方式涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
191.即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
192.本领域的普通技术人员可以理解,上述各实施方式是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1