一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据库的切换方法及装置、电子设备、存储介质与流程

2022-11-16 15:19:32 来源:中国专利 TAG:


1.本发明涉及大数据领域,具体而言,涉及一种数据库的切换方法及装置、电子设备、存储介质。


背景技术:

2.目前,依据当前数据库的部署和服务模式,数据库切换流程复杂,需要人工介入,定位故障,并判断是否需要进行数据库切换,采用人工触发数据库切换的方式,并且,由于数据库体量庞大,在大规模故障的情况下,也无法实现快速切换,进行业务恢复,应急时效无法满足系统可用性和业务连续性的保障要求。
3.相关技术中,为了减少数据库切换过程中域名切换接口的时间,同一数据库集群中,采用相同的虚拟ip地址,从而引入在主数据库发生故障的场景下,进行数据库切换过程中容易发生数据脑裂的风险,同时还引入了在基础设施故障域上无法彻底隔离,基础设施架构的高可用性未能最大程度发挥作用的问题。
4.针对上述的问题,目前尚未提出有效的解决方案。


技术实现要素:

5.本发明实施例提供了一种数据库的切换方法及装置、电子设备、存储介质,以至少解决相关技术中,需要人工触发主从数据库切换,且切换过程容易发生数据脑裂的技术问题。
6.根据本发明实施例的一个方面,提供了一种数据库的切换方法,包括:响应对目标数据库集群的异常检测请求,通过预设可用性检测策略,对所述目标数据库集群的多个数据库进行可用性检测,同时通过预设域名检测设备集群,检测所述目标数据库集群中的多个数据库的虚拟ip地址的连通性,其中,所述目标数据库集群包括一个主数据库及多个从数据库,每个数据库对应独有的虚拟ip地址,所述虚拟ip地址用于对服务请求端提供服务接口;在检测到所述主数据库可用性异常的情况下,基于主数据库选举策略,在所述多个从数据库中选举一个目标从数据库,将所述目标从数据库作为切换后的主数据库;解绑所述主数据库的第一虚拟ip地址,绑定所述切换后的主数据库的第二虚拟ip地址;在检测到所述切换后的主数据库的第二虚拟ip地址连通,且所述目标数据库集群的其他虚拟ip地址不连通的情况下,确定数据库切换完成。
7.可选地,通过预设域名检测设备集群,检测所述目标数据库集群中的多个数据库的虚拟ip地址的连通性之前,包括:基于数据库切换时间阈值和数据库的探测频度阈值,确定所述预设域名检测设备集群的检测频率,其中,所述数据库切换时间阈值为数据库进行切换的复原时间。
8.可选地,通过预设域名检测设备集群,检测所述目标数据库集群中的多个数据库的虚拟ip地址的连通性的步骤,包括:步骤1,在所述目标数据库集群中选择一个数据库作为目标数据库;步骤2,通过预设域名检测设备集群,检测所述目标数据库的虚拟ip地址的
连通性,确定目标检测结果,其中,所述预设域名检测设备集群包括多个域名检测设备,所述目标检测结果至少包括:采用所述预设域名检测设备集群中的多个域名检测设备对所述目标数据库进行连通性检测,连通性检测的结果为通过的域名检测设备的数量;步骤3,在所述目标检测结果表示连通性检测通过的数量大于预设阈值的情况下,则表示所述目标数据库的虚拟ip地址连通性检测通过;将所述目标数据库集群的其余数据库依次作为所述目标数据库,执行上述步骤2和步骤3,以确定所述目标数据库集群的每个数据库的虚拟ip地址的连通性。
9.可选地,解绑所述主数据库的第一虚拟ip地址,绑定所述切换后的主数据库的第二虚拟ip地址的步骤,还包括:解绑所述主数据库的第一虚拟ip地址,并将所述主数据库的读写状态置为只读状态;绑定所述切换后的主数据库的第二虚拟ip地址,并将所述切换后的主数据库的读写状态置为读写状态。
10.可选地,通过预设可用性检测策略,对所述目标数据库集群的多个数据库进行可用性检测之后,还包括:在所述目标数据库集群中的目标从数据库不可用的情况下,在所述目标数据库集群中删除目标从数据库节点,更新所述目标数据库集群中可用数据库的数量。
11.可选地,响应对目标数据库集群的异常检测请求之前,包括:通过预设域名检测设备集群配置所述目标数据库集群的域名,并配置所述目标数据库集群中每个数据库的虚拟ip地址。
12.可选地,在通过预设域名检测设备集群,检测所述目标数据库集群中的多个数据库的虚拟ip地址的连通性之后,所述方法还包括:在检测结果为所述目标数据库集群中所有数据库的虚拟ip地址均不连通的情况下,所述目标数据库集群不对服务请求端提供服务,其中,所述检测结果为虚拟ip地址的连通性检测结果;在所述检测结果为所述目标数据库集群中的虚拟ip地址连通的数据库数量大于1的情况下,所述目标数据库集群不对服务请求端提供服务;在所述检测结果为所述目标数据库集群的主数据库的虚拟ip地址连通,其他从数据库的虚拟ip地址不连通的情况下,返回所述主数据库的虚拟ip地址,并基于所述主数据库的虚拟ip地址对服务请求端提供服务。
13.根据本发明实施例的另一方面,还提供了一种数据库的切换装置,包括:第一处理单元,用于响应对目标数据库集群的异常检测请求,通过预设可用性检测策略,对所述目标数据库集群的多个数据库进行可用性检测,同时通过预设域名检测设备集群,检测所述目标数据库集群中的多个数据库的虚拟ip地址的连通性,其中,所述目标数据库集群包括一个主数据库及多个从数据库,每个数据库对应独有的虚拟ip地址,所述虚拟ip地址用于对服务请求端提供服务接口;第二处理单元,用于在检测到所述主数据库可用性异常的情况下,基于主数据库选举策略,在所述多个从数据库中选举一个目标从数据库,将所述目标从数据库作为切换后的主数据库;第三处理单元,用于解绑所述主数据库的第一虚拟ip地址,绑定所述切换后的主数据库的第二虚拟ip地址;确定单元,用于在检测到所述切换后的主数据库的第二虚拟ip地址连通,且所述目标数据库集群的其他虚拟ip地址不连通的情况下,确定数据库切换完成。
14.可选地,数据库的切换装置还包括:确定单元,用于通过预设域名检测设备集群,检测所述目标数据库集群中的多个数据库的虚拟ip地址的连通性之前,基于数据库切换时
间阈值和数据库的探测频度阈值,确定所述预设域名检测设备集群的检测频率,其中,所述数据库切换时间阈值为数据库进行切换的复原时间。
15.可选地,第一处理单元包括:选择子单元,在所述目标数据库集群中选择一个数据库作为目标数据库;确定子单元,通过预设域名检测设备集群,检测所述目标数据库的虚拟ip地址的连通性,确定目标检测结果,其中,所述预设域名检测设备集群包括多个域名检测设备,所述目标检测结果至少包括:采用所述预设域名检测设备集群中的多个域名检测设备对所述目标数据库进行连通性检测,连通性检测的结果为通过的域名检测设备的数量;第一处理子单元,在所述目标检测结果表示连通性检测通过的数量大于预设阈值的情况下,则表示所述目标数据库的虚拟ip地址连通性检测通过;第二处理子单元,用于将所述目标数据库集群的其余数据库依次作为所述目标数据库,以确定所述目标数据库集群的每个数据库的虚拟ip地址的连通性。
16.可选地,第三处理单元包括:第三处理子单元,用于解绑所述主数据库的第一虚拟ip地址,并将所述主数据库的读写状态置为只读状态;第四处理子单元,用于绑定所述切换后的主数据库的第二虚拟ip地址,并将所述切换后的主数据库的读写状态置为读写状态。
17.可选地,数据库的切换装置还包括:更新单元,用于通过预设可用性检测策略,对所述目标数据库集群的多个数据库进行可用性检测之后,在所述目标数据库集群中的目标从数据库不可用的情况下,在所述目标数据库集群中删除目标从数据库节点,更新所述目标数据库集群中可用数据库的数量。
18.可选地,数据库的切换装置还包括:配置单元,用于在响应对目标数据库集群的异常检测请求之前,通过预设域名检测设备集群配置所述目标数据库集群的域名,并配置所述目标数据库集群中每个数据库的虚拟ip地址。
19.可选地,数据库的切换装置还包括:第四处理单元,用于在通过预设域名检测设备集群,检测所述目标数据库集群中的多个数据库的虚拟ip地址的连通性之后,在检测结果为所述目标数据库集群中所有数据库的虚拟ip地址均不连通的情况下,所述目标数据库集群不对服务请求端提供服务,其中,所述检测结果为虚拟ip地址的连通性检测结果;第五处理单元,用于在所述检测结果为所述目标数据库集群中的虚拟ip地址连通的数据库数量大于1的情况下,所述目标数据库集群不对服务请求端提供服务;第六处理单元,用于在所述检测结果为所述目标数据库集群的主数据库的虚拟ip地址连通,其他从数据库的虚拟ip地址不连通的情况下,返回所述主数据库的虚拟ip地址,并基于所述主数据库的虚拟ip地址对服务请求端提供服务。
20.在本发明中,响应对目标数据库集群的异常检测请求,先通过预设可用性检测策略,对目标数据库集群的多个数据库进行可用性检测,同时通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性,其中,目标数据库集群包括一个主数据库及多个从数据库,每个数据库对应独有的虚拟ip地址,虚拟ip地址用于对服务请求端提供服务接口,然后在检测到主数据库可用性异常的情况下,基于主数据库选举策略,在多个从数据库中选举一个目标从数据库,将目标从数据库作为切换后的主数据库,之后解绑主数据库的第一虚拟ip地址,绑定切换后的主数据库的第二虚拟ip地址,最后在检测到切换后的主数据库的第二虚拟ip地址连通,且目标数据库集群的其他虚拟ip地址不连通的情况下,确定数据库切换完成,解决了相关技术中需要人工触发主从数据库切换,且切
换过程容易发生数据脑裂的技术问题。
21.在本发明中,通过可用性检测策略对数据库集群中主数据库的可用性进行检测,确定是否进行数据库切换,从而提高数据库切换的效率,同时通过域名检测设备集群,对每个数据库的独有的虚拟ip地址的连通性进行检测,确定目标数据库集群是否对外提供服务,避免了使用同一虚拟ip地址进行数据库切换,产生数据脑裂双写的情况,从而达到了降低数据脑裂风险的技术效果。
附图说明
22.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
23.图1是根据本发明实施例的一种可选的数据库的切换方法的流程图;
24.图2是根据本发明实施例的一种可选的数据库的切换装置的示意图;
25.图3是根据本发明实施例的一种数据库的切换方法的电子设备(或移动设备)的硬件结构框图。
具体实施方式
26.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
27.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
28.需要说明的是,本公开中的数据库的切换方法及其装置可用于大数据领域在进行主从数据库切换的情况下,也可用于除大数据领域之外的任意领域在处理主数据库异常,进行主数据库切换的情况下,本公开中对数据库的切换方法及其装置的应用领域不做限定。
29.需要说明的是,本公开所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
30.本发明可以应用于各金融机构的存储各种软件产品、控制系统、客户端(包括但不限于:移动客户端、pc机等)的数据的数据库集群中,以软件产品为例进行示意说明,通过移
动客户端的数据存储的数据库集群,可以实现对金融机构的业务内容(包括但不限于:转账、理财、基金、缴费、查账、广告、推荐等业务功能)数据进行存储。
31.在本发明中,通过可用性检测策略对数据库集群中主数据库的可用性进行检测,确定是否进行数据库切换,同时通过域名检测设备集群,对每个数据库的独有的虚拟ip地址的连通性进行检测,确定目标数据库集群是否对外提供服务,依据虚拟ip地址的连通性检测结果判定数据库集群是否可以对外提供服务,从而实现了提高数据库切换的效率、降低数据脑裂风险的技术效果,同时每个数据库使用独立的虚拟ip地址还可以避免数据库切换过程中发生,数据脑裂双写的情况,实现了提高数据库的高可用性的技术效果。
32.下面结合各实施例来详细说明本发明。
33.实施例一
34.根据本发明实施例,提供了一种可选的数据库的切换的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
35.图1是根据本发明实施例的一种可选的数据库的切换方法的流程图,如图1所示,该方法包括如下步骤:
36.步骤s101,响应对目标数据库集群的异常检测请求,通过预设可用性检测策略,对目标数据库集群的多个数据库进行可用性检测,同时通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性,其中,目标数据库集群包括一个主数据库及多个从数据库,每个数据库对应独有的虚拟ip地址,虚拟ip地址用于对服务请求端提供服务接口。
37.目标数据库集群可以包括一个主数据库及多个从数据库,数据库可以为mysql数据,sqlserver数据库,本实施例对数据库的类型在此不做限定。
38.上述的预设可用性检测策略可以是数据库可用性管控系统的可用性检测策略,还可以通过数据库的高可用组件进行数据库的可用性检测,通过预设可用性检测策略可以数据库集群的中的多个数据库进行可用性检测,在检测到主数据库不可用时可以进行主数据库切换,在检测到从数据库不可用时可以对从数据库进行标记,或将不可用的从数据库节点剔除,避免将不可用的从数据库切换为主数据库。
39.为了解决相关技术中数据库集群采用同一个虚拟ip地址,在数据库切换过程中两个数据库使用同一虚拟ip地址,容易发生数据脑裂双写的问题,在目标数据库集群中的每个数据库可以配置独有的虚拟ip地址,并对数据库的虚拟ip地址的连通性进行检测,同时还可通过主数据库vip的连通性状态来表征主数据库是否可以对外提供服务,保证数据库集群的高可用性,实现提高数据库集群的数据处理质量的技术效果。
40.步骤s102,在检测到主数据库可用性异常的情况下,基于主数据库选举策略,在多个从数据库中选举一个目标从数据库,将目标从数据库作为切换后的主数据库。
41.为了保证数据库集群的可用性,在检测到主数据库可用性异常的情况下,可以基于主数据库选举策略,在多个从数据库中选举一个目标从数据库,将目标从数据库作为切换后的主数据库,以实现对不可用的主数据进行切换的目的。
42.步骤s103,解绑主数据库的第一虚拟ip地址,绑定切换后的主数据库的第二虚拟
ip地址。
43.通过虚拟解绑主数据库的第一虚拟ip地址,绑定切换后的主数据库的第二虚拟ip地址,实现在数据库切换过程中断外部提供服务,达到拦截交易的目的,还可以避免一个虚拟ip地址上有两个数据库节点同时被绑定的脑裂双写风险。
44.步骤s104,在检测到切换后的主数据库的第二虚拟ip地址连通,且目标数据库集群的其他虚拟ip地址不连通的情况下,确定数据库切换完成。
45.通过检测到切换后的数据库集群的虚拟ip地址的连通性状态,在检测到切换后的主数据库的第二虚拟ip地址连通,且目标数据库集群的其他虚拟ip地址不连通的情况下,确定数据库切换完成,目标数据库才可以对外提供服务,达到了在数据库切换过程中拦截交易的目的,实现了数据库稳定切换,保证数据库集群提供准确的服务的技术效果。
46.上述步骤中,通过可用性检测策略对数据库集群中主数据库的可用性进行检测,确定是否进行数据库切换,从而提高数据库切换的效率,同时通过域名检测设备集群,对每个数据库的独有的虚拟ip地址的连通性进行检测,确定目标数据库集群是否对外提供服务,避免了使用同一虚拟ip地址进行数据库切换,产生数据脑裂双写的情况,从而达到了降低数据脑裂风险的技术效果。
47.需要说明的是,本实施例中的目标数据库集群中可以包括多个数据库。
48.下面进一步说明本发明实施例。
49.为了提高数据库虚拟ip地址的连通性探测效率,通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性之前,在本技术实施例中,限定了以下步骤:基于数据库切换时间阈值和数据库的探测频度阈值,确定预设域名检测设备集群的检测频率,其中,数据库切换时间阈值为数据库进行切换的复原时间。
50.通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性之前,可以对检测虚拟ip地址的连通性检测的检测频率进行确定,检测评论可以综合考虑数据库进行切换的复原时间与数据库所能承受的探测频度阈值进行确定。
51.需要说明的是,检测频率应小于数据库进行切换的复原时间以及数据库所能承受的探测频度阈值,数据库进行切换的复原时间可以是rto要求(即复原时间目标,数据库允许中断的时间长度),检测频率应与数据库进行切换的复原时间以及数据库所能承受的探测频度阈值接近,达到提高数据库虚拟ip地址的连通性探测效率的技术效果。
52.为了提高目标数据库集群的连通性检测的准确率,在本技术实施例中,对通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性的步骤,进行了进一步限定:步骤1,在目标数据库集群中选择一个数据库作为目标数据库;步骤2,通过预设域名检测设备集群,检测目标数据库的虚拟ip地址的连通性,确定目标检测结果,其中,预设域名检测设备集群包括多个域名检测设备,目标检测结果至少包括:采用预设域名检测设备集群中的多个域名检测设备对目标数据库进行连通性检测,连通性检测的结果为通过的域名检测设备的数量;步骤3,在目标检测结果表示连通性检测通过的数量大于预设阈值的情况下,则表示目标数据库的虚拟ip地址连通性检测通过;将目标数据库集群的其余数据库依次作为目标数据库,执行上述步骤2和步骤3,以确定目标数据库集群的每个数据库的虚拟ip地址的连通性。
53.为应对域名检测设备本身故障导致连通性检测结果错误的风险,可以通过预设域
名检测设备集群检测数据库的虚拟ip地址的连通性,在预设阈值数量的域名检测设备对数据库的虚拟ip地址的连通性检测过后,可以确定数据库的虚拟ip地址连通性检测通过。也即是通过“群策群力”的方式,避免单台设备“一言堂”的情况,规避域名检测设备本身故障导致连通性检测结果错误引发解析结果错误风险,实现了提高虚拟ip地址连通性检测的准确率的技术效果。
54.还可以通过域名检测设备集群记录数据库的连通性状态变化的日志,与数据库运行监控视图进行聚合,提高故障发现定位的时效,其中,数据库的监控视图可以对数据库集群中的各个数据库节点的运行状态进行监控。
55.为了保证目标数据库集群的高可用性,通过预设可用性检测策略,对目标数据库集群的多个数据库进行可用性检测之后,在本技术实施例中,限定了以下步骤:在目标数据库集群中的目标从数据库不可用的情况下,在目标数据库集群中删除目标从数据库节点,更新目标数据库集群中可用数据库的数量。
56.在目标数据库集群中,检测到目标从数据库运行异常时,可以通过数据库集群的可用性管控系统启动可用性处置,将单元内异常从数据库节点踢除,调整单元可用性阀值(即可用数据库的数量)。
57.为了保证目标数据库集群对服务请求端提供稳定、有效的服务,在通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性之后,在本实施例中,还限定了以下步骤:在检测结果为目标数据库集群中所有数据库的虚拟ip地址均不连通的情况下,目标数据库集群不对服务请求端提供服务,其中,检测结果为虚拟ip地址的连通性检测结果;在检测结果为目标数据库集群中的虚拟ip地址连通的数据库数量大于1的情况下,目标数据库集群不对服务请求端提供服务;在检测结果为目标数据库集群的主数据库的虚拟ip地址连通,其他从数据库的虚拟ip地址不连通的情况下,返回主数据库的虚拟ip地址,并基于主数据库的虚拟ip地址对服务请求端提供服务。
58.通过数据库虚拟ip地址的连通性状态来指征数据库集群的可用状态,目标数据库集群中所有数据库的虚拟ip地址均不连通的情况下,目标数据库集群不对外提供服务,目标数据库集群不对服务请求端提供服务,由于数据库集群在正常运行状态下,只有主数据库的虚拟ip地址对外提供服务,所以在虚拟ip地址的联通性检测的检测结果为目标数据库集群中的虚拟ip地址连通的数据库数量大于1的情况下,目标数据库集群也不对服务请求端提供服务,只有在检测结果为目标数据库集群的主数据库的虚拟ip地址连通,其他从数据库的虚拟ip地址不连通的情况下,目标数据库运行状态可以为正常,才可以返回主数据库的虚拟ip地址,并基于主数据库的虚拟ip地址对服务请求端提供服务。
59.例如,健康检查(对应于虚拟ip地址连通性检测)全down(对应于目标数据库集群虚拟ip地址连通性检测均不连通)的情况下,需要在域名设备上配置特定策略,满足server(对应于数据库)健康检查均不通过时,不做任何返回,避免智能域名设备(对应于预设域名检测设备集群)误选地址。健康检查有多个数据库成员健康检查通过的情况下,可以在域名设备上配置自定义自动脚本,逻辑设定为当active(连通)状态的成员大于1个,则不做任何返回,避免智能域名设备误选地址。
60.通过虚拟数据库虚拟ip地址的连通性状态,判断目标数据库集群是否正常连通,是否可以对服务请求端提供服务,实现了提高数据库集群可用性检测效率的技术效果。
61.为了保证目标数据库集群的读写状态的准确性,在本实施例中,对解绑主数据库的第一虚拟ip地址,绑定切换后的主数据库的第二虚拟ip地址的步骤,进行了进一步限定:解绑主数据库的第一虚拟ip地址,并将主数据库的读写状态置为只读状态;绑定切换后的主数据库的第二虚拟ip地址,并将切换后的主数据库的读写状态置为读写状态。
62.下面以mysql数据库为例,对解绑主数据库的第一虚拟ip地址,绑定切换后的主数据库的第二虚拟ip地址的方式进行示意说明,在mysql数据库可用性管控系统控制mysql数据切换过程中,在完成主从选举后,对可以对原主库进行vip解除绑定,并置为“只读”状态,对新主库进行vip绑定操作,并置为“读写”状态。
63.需要说明的是,在本实施例中对vip的连通性检查是必需的,但是对数据库读写状态的检查可以非必需,数据库主从仲裁选举流程可以确保先改读写状态,再绑定新主库vip,从而实现提高数据库的高可用的技术效果。
64.一种可选的实施方式中,数据库读写状态由dmp保证,智能域名(预设域名检测设备集群)可以不再对读写状态进行检查,实现了提高数据库切换的效率的技术效果。
65.为了避免目标数据库集群中在数据库切换过程中,产生脑裂双写的情况,响应对目标数据库集群的异常检测请求之前,在本实施例中,还限定了以下步骤:通过预设域名检测设备集群配置目标数据库集群的域名,并配置目标数据库集群中每个数据库的虚拟ip地址。
66.通过目标数据库集群中每个数据库的虚拟ip地址,使目标数据库集群每个数据库节点均预设独有的vip,降低数据库切换过程中,一个虚拟ip地址在两个节点上同时被绑定的脑裂双写风险,实现了提供数据库的高可用切换的技术效果。
67.通过本实施例,可提高数据库的切换时效,大幅降低大规模数据库同时切换的耗时,避免数据库切换过程中产生脑裂双写的情况发生,实现数据库更完善、更充分、更高效地应对基础设施故障给分布式数据库带来运行影响,保障数据库集群所服务信息系统业务连续稳定运行。
68.下面结合另一种可选的实施例来说明本发明。
69.实施例二
70.本实施例提供了一种可选的数据库的切换装置,如图2所示,该切换装置包括第一处理单元21、第二处理单元22、第三处理单元23、确定单元24,其中,
71.第一处理单元21,用于响应对目标数据库集群的异常检测请求,通过预设可用性检测策略,对目标数据库集群的多个数据库进行可用性检测,同时通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性,其中,目标数据库集群包括一个主数据库及多个从数据库,每个数据库对应独有的虚拟ip地址,虚拟ip地址用于对服务请求端提供服务接口。
72.第二处理单元22,用于在检测到主数据库可用性异常的情况下,基于主数据库选举策略,在多个从数据库中选举一个目标从数据库,将目标从数据库作为切换后的主数据库。
73.第三处理单元23,用于解绑主数据库的第一虚拟ip地址,绑定切换后的主数据库的第二虚拟ip地址。
74.确定单元24,用于在检测到切换后的主数据库的第二虚拟ip地址连通,且目标数
据库集群的其他虚拟ip地址不连通的情况下,确定数据库切换完成。
75.上述的数据库的切换装置,可以先通过第一处理单元21响应对目标数据库集群的异常检测请求,通过预设可用性检测策略,对目标数据库集群的多个数据库进行可用性检测,同时通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性,其中,目标数据库集群包括一个主数据库及多个从数据库,每个数据库对应独有的虚拟ip地址,虚拟ip地址用于对服务请求端提供服务接口,在检测到主数据库可用性异常的情况下,通过第二处理单元22基于主数据库选举策略,在多个从数据库中选举一个目标从数据库,将目标从数据库作为切换后的主数据库,之后通过第三处理单元23解绑主数据库的第一虚拟ip地址,绑定切换后的主数据库的第二虚拟ip地址,通过确定单元24在检测到切换后的主数据库的第二虚拟ip地址连通,且目标数据库集群的其他虚拟ip地址不连通的情况下,确定数据库切换完成,进而解决了相关技术中需要人工触发主从数据库切换,且切换过程容易发生数据脑裂的技术问题。在本发明中,通过可用性检测策略对数据库集群中主数据库的可用性进行检测,确定是否进行数据库切换,从而提高数据库切换的效率,同时通过域名检测设备集群,对每个数据库的独有的虚拟ip地址的连通性进行检测,确定目标数据库集群是否对外提供服务,避免了使用同一虚拟ip地址进行数据库切换,产生数据脑裂双写的情况,从而达到了降低数据脑裂风险的技术效果。
76.可选的,在本技术实施例二的数据库的切换装置中,上述的数据库的切换装置还包括:确定单元,用于通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性之前,基于数据库切换时间阈值和数据库的探测频度阈值,确定预设域名检测设备集群的检测频率,其中,数据库切换时间阈值为数据库进行切换的复原时间。
77.可选的,在本技术实施例二的数据库的切换装置中,第一处理单元包括:选择子单元,在目标数据库集群中选择一个数据库作为目标数据库;确定子单元,通过预设域名检测设备集群,检测目标数据库的虚拟ip地址的连通性,确定目标检测结果,其中,预设域名检测设备集群包括多个域名检测设备,目标检测结果至少包括:采用预设域名检测设备集群中的多个域名检测设备对目标数据库进行连通性检测,连通性检测的结果为通过的域名检测设备的数量;第一处理子单元,在目标检测结果表示连通性检测通过的数量大于预设阈值的情况下,则表示目标数据库的虚拟ip地址连通性检测通过;第二处理子单元,用于将目标数据库集群的其余数据库依次作为目标数据库,以确定目标数据库集群的每个数据库的虚拟ip地址的连通性。
78.可选的,在本技术实施例二的数据库的切换装置中,第三处理单元包括:第三处理子单元,用于解绑主数据库的第一虚拟ip地址,并将主数据库的读写状态置为只读状态;第四处理子单元,用于绑定切换后的主数据库的第二虚拟ip地址,并将切换后的主数据库的读写状态置为读写状态。
79.可选的,在本技术实施例二的数据库的切换装置中,上述的数据库的切换装置还包括:更新单元,用于通过预设可用性检测策略,对目标数据库集群的多个数据库进行可用性检测之后,在目标数据库集群中的目标从数据库不可用的情况下,在目标数据库集群中删除目标从数据库节点,更新目标数据库集群中可用数据库的数量。
80.可选的,在本技术实施例二的数据库的切换装置中,上述的数据库的切换装置还包括:配置单元,用于在响应对目标数据库集群的异常检测请求之前,通过预设域名检测设
备集群配置目标数据库集群的域名,并配置目标数据库集群中每个数据库的虚拟ip地址。
81.可选的,在本技术实施例二的数据库的切换装置中,上述的数据库的切换装置还包括:第四处理单元,用于在通过预设域名检测设备集群,检测目标数据库集群中的多个数据库的虚拟ip地址的连通性之后,在检测结果为目标数据库集群中所有数据库的虚拟ip地址均不连通的情况下,目标数据库集群不对服务请求端提供服务,其中,检测结果为虚拟ip地址的连通性检测结果;第五处理单元,用于在检测结果为目标数据库集群中的虚拟ip地址连通的数据库数量大于1的情况下,目标数据库集群不对服务请求端提供服务;第六处理单元,用于在检测结果为目标数据库集群的主数据库的虚拟ip地址连通,其他从数据库的虚拟ip地址不连通的情况下,返回主数据库的虚拟ip地址,并基于主数据库的虚拟ip地址对服务请求端提供服务。
82.上述的数据库的切换装置还可以包括处理器和存储器,上述的第一处理单元21、第二处理单元22、第三处理单元23、确定单元24等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
83.上述处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数通过可用性检测策略对数据库集群中主数据库的可用性进行检测,确定是否进行数据库切换,同时通过域名检测设备集群,对每个数据库的独有的虚拟ip地址的连通性进行检测,确定目标数据库集群是否对外提供服务。
84.上述存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
85.根据本发明实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述任意一项的数据库的切换方法。
86.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的计算机程序,其中,在计算机程序运行时控制计算机可读存储介质所在设备执行上述任意一项的数据库的切换方法。
87.图3是根据本发明实施例的一种数据库的切换方法的电子设备(或移动设备)的硬件结构框图。如图3所示,电子设备可以包括一个或多个(图中采用302a、302b,
……
,302n来示出)处理器302(处理器302可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器304。除此以外,还可以包括:显示器、输入/输出接口(i/o接口)、通用串行总线(usb)端口(可以作为i/o接口的端口中的一个端口被包括)、网络接口、键盘、电源和/或相机。本领域普通技术人员可以理解,图3所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,电子设备还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。
88.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
89.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
90.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为
一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
91.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
92.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
93.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
94.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献