分布式数据库集群的管控方法、装置和数据库管控平台与流程

未命名 08-01 阅读:135 评论:0


1.本发明涉及集群管控领域,具体而言,涉及一种分布式数据库集群的管控方法、管控装置、计算机可读存储介质和数据库管控平台。


背景技术:

2.某银行新核心系统在数据库国产化的方案上,选择了opengauss单机版本数据库引擎。新核心包含了存款、回款、统一查询等业务系统,其中包含了6.2亿个客户和18.3亿个账户,单库难以承载当前业务。新核心数据库架构采用了分布式的方案,即将业务数据按照账户进行了切分,分为1024张表,1024张表按照中心路由均匀分散在不同的数据库集群中。按照不同的业务和数据特点,设计了不同类型的业务单元:g-dus、b-dus、l-dus、c-dus。每个业务单元dus下包含了一个或多个数据库集群,单体应用通过微服务框架直连访问单元内的数据库集群,各个业务单元之间通过微服务调用进行通讯。
3.在上述背景下,新核心数据库集群和实例的数量比传统老核心系统呈现指数级的增长,这种情况下如何保障数据库高可用能力满足新核心的sla要求,是最关键的难点,具体体现在如下几方面:
4.(1)面对复杂的故障场景,如何保证单个数据库集群的高可用?
5.(2)如何保障一个业务单元(dus)内多个数据库集群的高可用?
6.(3)如何保障一个业务(存款、汇款)内多个数据库集群的高可用?
7.(4)数据库如何与上层分布式应用联动,整体保障业务的高可用?
8.业内针对数据库高可用切换,常见的方案是在服务器内部同机部署一个agent,作为client端在本地搜集数据库实例的运行状态信息,并且和server端进行通信,接收server端的指令并执行规定的动作。
9.但是,agent可能争抢数据库资源,影响或干扰同机部署的数据库实例,agent采集某个实例监测数据,会存在局部判断的风险导致错误操作,agent与server频繁通信占用服务器带宽资源,agent方案在进行多个集群协同高可用切换过程中效率较低,无法满足多个集群并发切换的场景。


技术实现要素:

10.本技术的主要目的在于提供一种分布式数据库集群的管控方法、管控装置、计算机可读存储介质和数据库管控平台,以至少解决现有技术中分布式数据库集群的管控方法资源占用过多的问题。
11.为了实现上述目的,根据本技术的一个方面,提供了一种分布式数据库集群的管控方法,包括:获取客户端的业务请求并根据所述业务请求生成对应任务,所述业务请求至少包括存款业务请求和汇款业务请求,所述任务与完成所述业务请求对应的业务流程步骤一一对应;调用ansible并根据所述任务生成数据库操作命令,所述数据库操作命令为完成所述任务所执行的数据库操作对应的命令,所述数据库操作包括删除操作、写入操作和更
新操作;调用所述ansible将所述数据库操作命令发送至目标端数据库,所述目标端数据库为分布式数据库集群中的执行所述业务请求对应的任务的数据库。
12.可选地,在调用ansible将所述数据库操作命令发送至目标端数据库之后,所述方法还包括:在所述ansible接收到所述目标端数据库的任务执行成功的反馈信息的情况下,调用,确定所述目标端数据库正常;在所述ansible没有接收到所述目标端数据库的反馈信息,或者接收到所述目标端数据库的任务执行失败的反馈信息的情况下,确定所述目标端数据库异常。
13.可选地,在确定所述目标端数据库异常之后,所述方法还包括:获取所述目标端数据库的备库的拓扑完整性、网络连通性、同步状态和读流量,所述拓扑完整性为所述备库与所有的同步数据库的通信信道完整或者不完整,所述同步数据库为所述目标端数据库所在的数据库集群中,与所述备库数据同步的数据库,所述网络连通性为所述备库与所有的所述同步数据库的通信信道正常或者不正常,所述同步状态为所述备库的数据与所有的所述同步数据库的数据同步或者不同步,所述读流量为读取所述备库的数据的流量的大小;在所述备库的所述拓扑完整性为完整、所述备库的所述网络连通性为正常、所述备库的所述同步状态为同步且所述备库的所述读流量为0的情况下,确定所述备库为目标备库;调用所述ansible发送主备切换命令至所述目标端数据库所在的数据库集群,以将所述目标备库切换为主库。
14.可选地,调用所述ansible发送主备切换命令至所述目标端数据库所在的数据库集群,以将所述目标备库切换为主库,包括:在所述目标端数据库所在机房故障的情况下,调用所述ansible发送数据库跨地域切换命令至所述目标端数据库所在的数据库集群,以将所述目标端数据库所在机房之外的所述目标备库切换为所述主库;在所述目标端数据库所在机器故障的情况下,调用所述ansible发送数据库同机房切换命令至所述目标端数据库所在的数据库集群,以将所述目标端数据库所在机房内的所述目标备库切换为所述主库。
15.可选地,在调用所述ansible发送主备切换命令至所述目标端数据库所在的数据库集群,以将所述目标备库切换为主库之后,所述方法还包括:在所述目标端数据库恢复正常的情况下,调用所述ansible发送恢复命令至所述目标端数据库所在的数据库集群,所述恢复命令用于控制所述目标端数据库数据与当前的主库进行数据同步;在所述恢复命令执行成功的情况下,调用所述ansible发送回切命令至所述目标端数据库所在的数据库集群,所述回切命令用于将所述目标端数据库切换为所述主库。
16.可选地,在调用所述ansible发送恢复命令至所述目标端数据库所在的数据库集群之前,所述方法还包括:在所述目标端数据库的软件和硬件正常的情况下,获取所述目标端数据库的所述拓扑完整性、所述网络连通性、所述同步状态和所述读流量;在所述目标端数据库的所述拓扑完整性为完整、所述目标端数据库的所述网络连通性为正常、所述目标端数据库的所述同步状态为同步且所述目标端数据库的所述读流量为0的情况下,确定所述目标端数据库恢复正常。
17.可选地,在确定所述目标端数据库异常之后,所述方法还包括:调用所述ansible发送重启命令至所述目标端数据库所在的机器,以重启所述目标端数据库所在的机器。
18.根据本技术的另一方面,提供了一种分布式数据库集群的管控装置,包括:第一获
取单元,用于获取客户端的业务请求并根据所述业务请求生成对应任务,所述业务请求至少包括存款业务请求和汇款业务请求,所述任务与完成所述业务请求对应的业务流程步骤一一对应;第一处理单元,用于调用ansible并根据所述任务生成数据库操作命令,所述数据库操作命令为完成所述任务所执行的数据库操作对应的命令,所述数据库操作包括删除操作、写入操作和更新操作;第二处理单元,用于调用所述ansible将所述数据库操作命令发送至目标端数据库,所述目标端数据库为分布式数据库集群中的执行所述业务请求对应的任务的数据库。
19.根据本技术的再一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行任意一种所述的管控方法。
20.根据本技术的又一方面,提供了一种数据库管控平台,一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行任意一种所述的管控方法。
21.应用本技术的技术方案,首先,获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;然后,调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;最后,调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。该方法通过在分布式数据库集群的管控端安装ansible,通过ansible管理分布式数据库集群的所有的数据库的任务进行管理,无需在所有数据库所在的服务器均安装一个agent来分别管理对应的数据库,ansible占用资源少,部署简单,兼容性好,解决了现有分布式数据库集群的管控方法资源占用过多的问题。
附图说明
22.图1示出了根据本技术的实施例中提供的一种执行分布式数据库集群的管控方法的移动终端的硬件结构框图;
23.图2示出了根据本技术的实施例提供的一种分布式数据库集群的管控方法的流程示意图;
24.图3示出了根据本技术的实施例提供的一种使用ansible方式推送任务的流程图;
25.图4示出了基于heartbeat实现数据库主备切换的原理示意图;
26.图5示出了根据本技术的实施例提供的一种技术架构的功能流程图;
27.图6示出了根据本技术的实施例提供的一种基于ansible的数据库管控平台的架构图;
28.图7示出了根据本技术的实施例提供的另一种分布式数据库集群的管控方法的流程图;
29.图8示出了根据本技术的实施例提供的一种分布式数据库集群的管控装置的结构框图。
具体实施方式
30.需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本技术。
31.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。
32.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
33.为了便于描述,以下对本技术实施例涉及的部分名词或术语进行说明:
34.服务:服务表示一个比较大的业务范围。包括:存款、汇款、网关等。是一种命名空间的概念,用来进行资源和权限的隔离。
35.dus:分布式单元服务,逻辑单元化服务的一个基础元素,包括一组应用和数据库服务,它为专门的固定的一组数据对象提供业务服务。比如存款业务bdus,包括了64个dus,其中dus-1专门对固定的一批用户提供业务服务,dus之间数据独立。
36.集群:表示一类提供相同服务的数据库实例的集合,它包含一个或多个实例,是部署的基础单元,比如一组高可用的tomcat;比如一主三备的opengauss集群,是一个分片或者集群,如果该它的业务有做水平分片,则叫做分片,如果没有做,则叫做集群。
37.实例:实例表示机器上面部署的一个模块、服务、软件等,通常是一个进程,开放某个端口,和其他实例进行通信。比如opengauss的一个主库或者一个备库。实例是部署的最小单元,应用的最小组成。每个应用都是由一组同构的实例组成。一个实例部署在一个机器上,但是一个机器上可以部署多个实例。
38.sla:一般指服务级别协议,即提供服务的企业与客户之间就服务的品质、水准、性能等方面所达成的双方共同认可的协议或者契约。
39.正如背景技术中所介绍的,现有技术中agent可能争抢数据库资源,影响或干扰同机部署的数据库实例,agent与server频繁通信占用服务器带宽资源,agent方案在进行多个集群协同高可用切换过程中效率较低,无法满足多个集群并发切换的场景,为解决现有技术中分布式数据库集群的管控方法资源占用过多的问题,本技术的实施例提供了一种分布式数据库集群的管控方法、管控装置、计算机可读存储介质和数据库管控平台。
40.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
41.本技术实施例中所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种分布式数据库集群的管控方法的移动终端的硬件结构框图。如图1所示,移动终端可以包括一个或多个(图1中仅
示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,其中,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
42.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的设备信息的显示方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
43.在本实施例中提供了一种运行于移动终端、计算机终端或者类似的运算装置的分布式数据库集群的管控方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
44.图2是根据本技术实施例的分布式数据库集群的管控方法的流程图。如图2所示,该方法包括以下步骤:
45.步骤s201,获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;
46.具体地,银行所能提供的服务类型有很多种,业务范围包括且不限于存款、汇款、网关等,而银行所应该提供的最基础的业务应该有存款业务和汇款业务,如图3所示,本技术所采用的数据获取方式为从客户端拉取业务请求,所以从上述客户端获取到的业务请求至少包含有存款业务请求和汇款业务请。上述任务用于完成客户的业务请求,数据库架构采用了分布式的方案,即将业务数据按照账户进行了切分,分为1024张表,1024张表按照中心路由均匀分散在不同的数据库集群中,本技术将上述业务对象分入不同的dus单元,上述dus单元包括b-dus、g-dus、c-dus、l-dus,分别为业务分布式单元服务、全局分布式单元服务、通用分布式单元服务和本地分布式单元服务。因此,上述任务所对应的业务流程可能需要在不同的数据库进行操作,所以上述任务应该与上述业务请求所需要的流程步骤一一对应。
47.步骤s202,调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;
48.具体地,上述任务应该与上述业务请求所需要的流程步骤一一对应,每一个任务都需要对相应的数据库进行与任务相对应的数据操作,因此需要根据上述任务生成相应的数据库指令,对数据库中的数据进行相关操作。本技术采用no-agent方式管控分布式数据库集群,采用ansible取代agent对数据库进行管控,仅需要在管控端安装ansible,即可根据上述任务对应的流程步骤生成相应的数据库操作指令。
49.步骤s203,调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。
50.具体地,如图3所示,上述步骤s203已经完成ansible在管控端的安装,通过ansible将生成的数据库操作做指令发送至对应的数据库执行即可完成上述客户业务请求。本技术的数据库为适配高可用策略,所采用的整体架构为分片原则,集群粒度为1主6备,即一个主数据库对应6个备库,实例粒度包括应用访问方式、流量分配方式、周边依赖系统。
51.通过上述实施例,首先,获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;然后,调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;最后,调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。该方法通过在分布式数据库集群的管控端安装ansible,通过ansible管理分布式数据库集群的所有的数据库的任务进行管理,无需在所有数据库所在的服务器均安装一个agent来分别管理对应的数据库,ansible占用资源少,部署简单,兼容性好,解决了现有分布式数据库集群的管控方法资源占用过多的问题。
52.为了确认上述目标数据库的状态,在一种可选的实施方式中,在步骤s203之后,上述方法还包括:
53.步骤s301,在上述ansible接收到上述目标端数据库的任务执行成功的反馈信息的情况下,调用,确定上述目标端数据库正常;
54.具体地,如图3所示,上述目标客户端在执行任务完成后,会对ansible发送反馈信息,告知任务完成状态,所以在收到反馈信息后,调取上述反馈信息,在反馈信息为任务执行成功的情况下,确定上述目标数据库正常。
55.步骤s302,在上述ansible没有接收到上述目标端数据库的反馈信息,或者接收到上述目标端数据库的任务执行失败的反馈信息的情况下,确定上述目标端数据库异常。
56.具体地,如图3所示,如果上述ansible没有接收到上述目标数据库的反馈信息,或调取接收到的反馈信息,反馈信息为任务执行失败的情况下,确定上述目标数据库异常。
57.需要说明的是,如图3所示,上述根据ansible的方式推送任务的具体流程为,通过控制台接口,即console api,从客户端拉取业务请求,上述控制台接口与元数据库opengauss之间能够实现数据交互,将获取到的业务数据在元数据库储存;将获取到的业务请求生成任务整理成消息列表mq,发送到任务管理器tm;调用ansible根据上述任务生成对应的数据库操作命令,发送至用于执行命令的目标数据库mogha,同时将数据库操作指令传输至元数据库opengauss进行储存;目标端数据库mogha执行数据库操作命令之后,将执行
结果反馈到ansible。
58.为了保证上述目标数据库出现异常的情况下,上述任务能够正常执行,在一种可选的实施方式中,在上述步骤s302之后,所述方法包括:
59.步骤s401,获取上述目标端数据库的备库的拓扑完整性、网络连通性、同步状态和读流量,上述拓扑完整性为上述备库与所有的同步数据库的通信信道完整或者不完整,上述同步数据库为上述目标端数据库所在的数据库集群中,与上述备库数据同步的数据库,上述网络连通性为上述备库与所有的上述同步数据库的通信信道正常或者不正常,上述同步状态为上述备库的数据与所有的上述同步数据库的数据同步或者不同步,上述读流量为读取上述备库的数据的流量的大小;
60.具体地,本技术所采用的集群粒度为1主6备,主库实例与备库实例,并不共享数据文件,各自拥有独立的数据文件,主备之间通过数据操作日志进行数据同步的结构,备库即时回放操作日志,保证数据视图延迟不会超过特定区间,并且openguass数据库存在物理复制与逻辑复制,物理复制指的是,复制日志为redo,为数据块变更记录,其变更保证主备之间数据文件一致,最大化保护数据。逻辑复制为逻辑操作,主备之间数据相等,但数据文件不相同。因此在主数据库,即上述目标数据库出现异常的情况下,可以用备用数据库对主数据库进行替换,维持任务正常执行。在执行上述主备库切换之前,需要进行前置检查,确定用于替换的目标备用数据库。上述前置检查包括备用数据库的拓扑完整性、网络连通性、同步状态和流量,用于确定备用数据库中的数据与主数据库完全同步,并且能够正常应用。
61.步骤s402,在上述备库的上述拓扑完整性为完整、上述备库的上述网络连通性为正常、上述备库的上述同步状态为同步且上述备库的上述读流量为0的情况下,确定上述备库为目标备库;
62.具体地,在执行主备数据库切换之前的前置检查之后,符合检查条件的备用数据库即为用于替换的备用数据库,即可确定为上述备用数据库为目标备用数据库。
63.步骤s403,调用上述ansible发送主备切换命令至上述目标端数据库所在的数据库集群,以将上述目标备库切换为主库。
64.具体地,opengauss提供了两种内置的数据库切换办法,分别为switchover与failover。switchover,主要用于日常维护性质,或可控情况下的常规切换,操作后,会变化老主库为选定的新主库的备库,期间老主库会断开之前的连接,保证切换期间数据的一致性。failover,主要用于故障处理性质,或者不可控情况下的异常切换,操作后,会设置指定备库为主库,并周知其他实例,此时(1.1.0以及之后的版本)如果老主库尚且联通,failover会失败,failover仅允许在老的主库无法连接的情况下执行。所以,在执行主备数据库切换之前,需要先停止上述主数据库的写入,然后更改上述数据库组的并行度,进行vip处理、应用配置修改,最后新主库开始写入,完成主备数据库的切换。
65.需要说明的是,如图4所示,上述主备数据库切换原理如下:主数据库所在的机器1与备用数据库所在的机器2上都搭载有心跳进程,即为heartbeat,基于heartbeat的功能实现主备切换。heartbeat是linux-ha工程组成部分,主要用于提供心跳检测和集群通信功能,常应用于支持集群的资源高可用性。如图4所示的是heartbeat的主主模式,heartbeat通过修改配置文件确定机器1和机器2互为主备,两台机器之间通过heartbeat相互发送报文来告知对方自己的状态,如果在指定时间内未接收到来自对方的心跳报文,那么就认为
对方出现故障,此时会启动资源接管模块来接管对方主机上的资源或服务,继续对客户提供服务,以此达成主备机器之间的切换。
66.此外需要注意的是,在完成主备数据库的切换之后,还要进行后置检查,保证切换之后任务的正常执行,即重复检查切换后的主数据库的拓扑完整性、网络连通性、同步状态和流量,确定上述主数据库正常之后,还需要对主数据库进行监控系统配置适配修改、dts适配修改、备份系统适配修改、参数配置适配修改,主备数据库的切换才真正完成。
67.为了主备数据库进行切换能够正确的解决故障问题,在一种可选的实施方式中,上述步骤s403还包括:
68.步骤s4031,在上述目标端数据库所在机房故障的情况下,调用上述ansible发送数据库跨地域切换命令至上述目标端数据库所在的数据库集群,以将上述目标端数据库所在机房之外的上述目标备库切换为上述主库;
69.具体地,华为opengauss单机版本数据库引擎在使用过程中可能出现的故障场景和本技术容灾切换场景如下表1和表2所示。当上述目标数据库出现故障,且故障场景为上述数据库所在的机房存在故障的情况下,上述ansible所需要发送的主备数据库切换命令为数据库跨地域切换命令,将故障机房之外的上述目标备用数据库切换为上述主库。
70.步骤s4032,在上述目标端数据库所在机器故障的情况下,调用上述ansible发送数据库同机房切换命令至上述目标端数据库所在的数据库集群,以将上述目标端数据库所在机房内的上述目标备库切换为上述主库。
71.具体地,如下表2所示,当上述目标数据库出现故障,且故障场景为上述数据库所在的机器存在故障的情况下,上述ansible所需要发送的主备数据库切换命令为数据库同机房切换命令,将上述目标数据库所在机房中的上述目标备用数据库切换为上述主库。
72.为了使上述故障目标数据库恢复之后正常使用,在一种可选地实施方式中,在上述步骤s403之后,上述方法还包括:
73.步骤s501,在上述目标端数据库恢复正常的情况下,调用上述ansible发送恢复命令至上述目标端数据库所在的数据库集群,上述恢复命令用于控制上述目标端数据库数据与当前的主库进行数据同步;
74.具体地,在完成修复之后,在将上述恢复的目标数据库切回主库之前需要将上述目标数据库的数据与当前主库进行同步,恢复发生故障的实例的数据,因此需要调用上述ansible向上述目标端数据库所在的数据库集群发送恢复命令,上述恢复命令执行后,需要针对上述目标数据库的数据损坏情况、数据一致性、语义正确性进行验证。
75.表1
[0076][0077]
表2
[0078][0079]
步骤s502,在上述恢复命令执行成功的情况下,调用上述ansible发送回切命令至上述目标端数据库所在的数据库集群,上述回切命令用于将上述目标端数据库切换为上述主库。
[0080]
具体地,在上述目标数据库恢复命令成功后,并且验证通过的情况下,确定上述目标数据库的数据与当前主数据库同步,然后调用上述ansible发送回切命令至上述目标端数据库所在的数据库集群,将当前主数据库切换成备用数据库,将目标数据库切换回主数据库,应用流量同步进行回切。
[0081]
为了确认目标数据库修复,在本技术的一种实施例中,在步骤s501之前,上述方法还包括:
[0082]
步骤s601,在上述目标端数据库的软件和硬件正常的情况下,获取上述目标端数据库的上述拓扑完整性、上述网络连通性、上述同步状态和上述读流量;
[0083]
具体地,在数据库发生故障之后,修复故障消除风险让整体系统恢复到健康状态是高可用策略不可或缺的闭环。在进行数据库修复之前,需要检查上述数据库的拓扑完整性、网络连通性、同步状态和读流量,然后对故障的硬件与软件进行修复,并且恢复故障实例的数据,至此完成修复。在修复完成之后再次获取上述目标端数据库的上述拓扑完整性、上述网络连通性、上述同步状态和上述读流量进行检查。上述修复过程中可能存在跨机房访问的情况,需要对不同类型的故障设置差异化的恢复时间要求。
[0084]
步骤s602,在上述目标端数据库的上述拓扑完整性为完整、上述目标端数据库的上述网络连通性为正常、上述目标端数据库的上述同步状态为同步且上述目标端数据库的上述读流量为0的情况下,确定上述目标端数据库恢复正常。
[0085]
具体地,在修复完成后对上述拓扑完整性、上述网络连通性、上述同步状态和上述读流量进行检查的结果为正常之后,即可确定上述目标数据库已修复完成,恢复到可正常应用的状态。
[0086]
为了顺利进行数据库的修复,在一种可选的实施方式中,在上述步骤s302之后,上
述方法包括:
[0087]
步骤s701,调用上述ansible发送重启命令至上述目标端数据库所在的机器,以重启上述目标端数据库所在的机器。
[0088]
具体地,本技术的技术方案中,在对故障情况进行处理之前需要上述目标数据库的实例进行重启,所以在确定上述目标数据库故障之后,需要调用上述ansible向上述目标端数据库所在的机器发送重启命令。
[0089]
综上所述,本技术的功能流程如图5所示,通过任务管理器的操控功能对task plugin库进行管理。上述task plugin库是一种使用microsoft.net框架开发的一类库,其task plugin接口支持构建插件式的框架应用,在本技术中task plugin库中包含高可用切换任务、备份任务、恢复任务等,每一个任务名称都对应单独的任务,实现插件管理,代码隔离,上述架构具备易扩展,对错误进行隔离,架构一致的优点。正因为本技术在技术架构上具有以上优点,所以本技术的高可用切换功能具备通用性与可扩展性。同时本技术的每一个任务在控制器controller执行时,都分为前置检查、执行、结果检查和释放资源的步骤,将控制器所需进行的处理的生命周期进行了拆解,与新核心业务场景进行了深度适配。同时本技术应用的业务逻辑的公共服务系统支持在opengauss、mysql等各种数据库,可以覆盖所有运维场景。
[0090]
此外,本技术所使用ansible的数据库管控平台的架构如图6所示。上述数据管理平台由客户端提供前端服务,使用ngnix实现web服务;由公共组件元数据库opengauss,监控服务,运维工具集和scheduler支持公共服务,管理层服务和数据层服务,上述公共服务包括网关服务,用户认证、资源访问控制服务和cmdb服务树,上述服务由行内系统提供,上述行内系统包括行内cmdb系统和行内用户认证系统;上述管理层服务由控制台接口console-api、rocketmq信息列表和数据库的taskmanager实现;上述数据层服务由任务管理器的tm-operator和ansible实现;上述目标db为openguass数据库。上述管理层服务、数据层服务和目标db由业务依赖系统提供,上述业务依赖系统包括新数监控系统、恩墨高可用切换执行工具和恩墨备份恢复行工具。
[0091]
为了使得本领域技术人员能够更加清楚地了解本技术的技术方案,以下将结合具体的实施例对本技术的分布式数据库集群的管控方法的实现过程进行详细说明。
[0092]
本实施例涉及一种具体的分布式数据库集群的管控方法,上述方法流程如图7所示,包括如下步骤:
[0093]
步骤s1:从客户端拉取业务请求并生成相应的任务;
[0094]
步骤s2:根据生成的任务生成对应的数据库操作命令;
[0095]
步骤s3:将数据库操作指令发送到执行命令的目标端数据库;
[0096]
步骤s4:根据目标端数据库的反馈,判断上述数据库是否出现故障;
[0097]
步骤s5:若上述目标数据库出现故障,则将其之前的连接,并将对应的备用数据库切换成主数据库;
[0098]
步骤s6:对上述故障的目标数据库进行修复;
[0099]
步骤s7:将修复完成的目标数据库切换回主数据库,将当前主数据库切换回备用数据库。
[0100]
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的
计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0101]
本技术实施例还提供了一种分布式数据库集群的管控装置,需要说明的是,本技术实施例的分布式数据库集群的管控装置可以用于执行本技术实施例所提供的用于分布式数据库集群的管控方法。该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0102]
以下对本技术实施例提供的分布式数据库集群的管控装置进行介绍。
[0103]
图8是根据本技术实施例的分布式数据库集群的管控装置的示意图。如图8所示,该装置包括:
[0104]
第一获取单元10,用于获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;
[0105]
具体地,银行所能提供的服务类型有很多种,业务范围包括且不限于存款、汇款、网关等,而银行所应该提供的最基础的业务应该有存款业务和汇款业务,如图3所示,本技术所采用的数据获取方式为从客户端拉取业务请求,所以从上述客户端获取到的业务请求至少包含有存款业务请求和汇款业务请。上述任务用于完成客户的业务请求,数据库架构采用了分布式的方案,即将业务数据按照账户进行了切分,分为1024张表,1024张表按照中心路由均匀分散在不同的数据库集群中,本技术将上述业务对象分入不同的dus单元,上述dus单元包括b-dus、g-dus、c-dus、l-dus,分别为业务分布式单元服务、全局分布式单元服务、通用分布式单元服务和本地分布式单元服务。因此,上述任务所对应的业务流程可能需要在不同的数据库进行操作,所以上述任务应该与上述业务请求所需要的流程步骤一一对应。
[0106]
第一处理单元20,用于调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;
[0107]
具体地,上述任务应该与上述业务请求所需要的流程步骤一一对应,每一个任务都需要对相应的数据库进行与任务相对应的数据操作,因此需要根据上述任务生成相应的数据库指令,对数据库中的数据进行相关操作。本技术采用no-agent方式管控分布式数据库集群,采用ansible取代agent对数据库进行管控,仅需要在管控端安装ansible,即可根据上述任务对应的流程步骤生成相应的数据库操作指令。
[0108]
第二处理单元30,用于调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。
[0109]
具体地,上述第一处理单元已经完成ansible在管控端的安装,通过ansible将生成的数据库操作做指令发送至对应的数据库执行即可完成上述客户业务请求。本技术的数据库为适配高可用策略,所采用的整体架构为分片原则,集群粒度为1主6备,即一个主数据库对应6个备库,实例粒度包括应用访问方式、流量分配方式、周边依赖系统。
[0110]
通过上述实施例,获取单元用于获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;第一处理单元用于调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;第二处理单元用于调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。该装置通过在分布式数据库集群的管控端安装ansible,通过ansible管理分布式数据库集群的所有的数据库的任务进行管理,无需在所有数据库所在的服务器均安装一个agent来分别管理对应的数据库,ansible占用资源少,部署简单,兼容性好,解决了现有分布式数据库集群的管控方法资源占用过多的问题。
[0111]
为了确认上述目标数据库的状态,在一种可选的实施方式中,上述装置包括:
[0112]
第一确定单元,用于在调用ansible将上述数据库操作命令发送至目标端数据库之后,在上述ansible接收到上述目标端数据库的任务执行成功的反馈信息的情况下,调用,确定上述目标端数据库正常;
[0113]
具体地,如图3所示,上述目标客户端在执行任务完成后,会对ansible发送反馈信息,告知任务完成状态,所以在收到反馈信息后,调取上述反馈信息,在反馈信息为任务执行成功的情况下,确定上述目标数据库正常。
[0114]
第二确定单元,用于在上述ansible没有接收到上述目标端数据库的反馈信息,或者接收到上述目标端数据库的任务执行失败的反馈信息的情况下,确定上述目标端数据库异常。
[0115]
具体地,如图3所示,如果上述ansible没有接收到上述目标数据库的反馈信息,或调取接收到的反馈信息,反馈信息为任务执行失败的情况下,确定上述目标数据库异常。
[0116]
需要说明的是,如图3所示,上述根据ansible的方式推送任务的具体流程为,通过控制台接口,即console api,从客户端拉取业务请求,上述控制台接口与元数据库opengauss之间能够实现数据交互,将获取到的业务数据在元数据库储存;将获取到的业务请求生成任务整理成消息列表mq,发送到任务管理器tm;调用安装于任务管理器的ansible,根据上述任务生成对应的数据库操作命令,发送至用于执行命令的目标数据库mogha,同时将数据库操作指令传输至元数据库opengauss进行储存;目标数据库mogha执行数据库操作命令之后,将执行结果反馈到ansible。
[0117]
为了保证上述目标数据库出现异常的情况下,上述任务能够正常执行,在一种可选的实施方式中,上述装置包括:
[0118]
第二获取单元,用于在确定上述目标数据库异常之后,获取上述目标端数据库的备库的拓扑完整性、网络连通性、同步状态和读流量,上述拓扑完整性为上述备库与所有的同步数据库的通信信道完整或者不完整,上述同步数据库为上述目标端数据库所在的数据库集群中,与上述备库数据同步的数据库,上述网络连通性为上述备库与所有的上述同步数据库的通信信道正常或者不正常,上述同步状态为上述备库的数据与所有的上述同步数据库的数据同步或者不同步,上述读流量为读取上述备库的数据的流量的大小;
[0119]
具体地,本技术所采用的集群粒度为1主6备,主库实例与备库实例,并不共享数据
文件,各自拥有独立的数据文件,主备之间通过数据操作日志进行数据同步的结构,备库即时回放操作日志,保证数据视图延迟不会超过特定区间,并且openguass数据库存在物理复制与逻辑复制,物理复制指的是,复制日志为redo,为数据块变更记录,其变更保证主备之间数据文件一致,最大化保护数据。逻辑复制为逻辑操作,主备之间数据相等,但数据文件不相同。因此在主数据库,即上述目标数据库出现异常的情况下,可以用备用数据库对主数据库进行替换,维持任务正常执行。在执行上述主备库切换之前,需要进行前置检查,确定用于替换的目标备用数据库。上述前置检查包括备用数据库的拓扑完整性、网络连通性、同步状态和流量,用于确定备用数据库中的数据与主数据库完全同步,并且能够正常应用。
[0120]
第三确定单元,用于在上述备库的上述拓扑完整性为完整、上述备库的上述网络连通性为正常、上述备库的上述同步状态为同步且上述备库的上述读流量为0的情况下,确定上述备库为目标备库;
[0121]
具体地,在执行主备数据库切换之前的前置检查之后,符合检查条件的备用数据库即为用于替换的备用数据库,即可确定为上述备用数据库为目标备用数据库。
[0122]
第一发送单元,用于调用上述ansible发送主备切换命令至上述目标端数据库所在的数据库集群,以将上述目标备库切换为主库。
[0123]
具体地,opengauss提供了两种内置的数据库切换办法,分别为switchover与failover。switchover,主要用于日常维护性质,或可控情况下的常规切换,操作后,会变化老主库为选定的新主库的备库,期间老主库会断开之前的连接,保证切换期间数据的一致性。failover,主要用于故障处理性质,或者不可控情况下的异常切换,操作后,会设置指定备库为主库,并周知其他实例,此时(1.1.0以及之后的版本)如果老主库尚且联通,failover会失败,failover仅允许在老的主库无法连接的情况下执行。所以,在执行主备数据库切换之前,需要先停止上述主数据库的写入,然后更改上述数据库组的并行度,进行vip处理、应用配置修改,最后新主库开始写入,完成主备数据库的切换。
[0124]
需要说明的是,如图4所示,上述主备数据库切换原理为,主数据库所在的机器1与备用数据库所在的机器2上都搭载有心跳进程,即为heartbeat,基于heartbeat的功能实现主备切换。heartbeat是linux-ha工程组成部分,主要用于提供心跳检测和集群通信功能,常应用于支持集群的资源高可用性。如图4所示的是heartbeat的主主模式,heartbeat通过修改配置文件确定机器1和机器2互为主备,两台机器之间通过heartbeat相互发送报文来告知对方自己的状态,如果在指定时间内未接收到来自对方的心跳报文,那么就认为对方出现故障,此时会启动资源接管模块来接管对方主机上的资源或服务,继续对客户提供服务,以此达成主备机器之间的切换。
[0125]
此外需要注意的是,在完成主备数据库的切换之后,还要进行后置检查,保证切换之后任务的正常执行,即重复检查切换后的主数据库的拓扑完整性、网络连通性、同步状态和流量,确定上述主数据库正常之后,还需要对主数据库进行监控系统配置适配修改、dts适配修改、备份系统适配修改、参数配置适配修改,主备数据库的切换才真正完成。
[0126]
为了主备数据库进行切换能够正确的解决故障问题,在一种可选的实施方式中,上述第一发送单元还包括:
[0127]
第一发送模块,用于在上述目标端数据库所在机房故障的情况下,调用上述ansible发送数据库跨地域切换命令至上述目标端数据库所在的数据库集群,以将上述目
标端数据库所在机房之外的上述目标备库切换为上述主库;
[0128]
具体地,华为opengauss单机版本数据库引擎在使用过程中可能出现的故障场景和本技术容灾切换场景如上表1和表2所示。当上述目标数据库出现故障,且故障场景为上述数据库所在的机房存在故障的情况下,上述ansible所需要发送的主备数据库切换命令为数据库跨地域切换命令,将故障机房之外的上述目标备用数据库切换为上述主库。
[0129]
第二发送模块,用于在上述目标端数据库所在机器故障的情况下,调用上述ansible发送数据库同机房切换命令至上述目标端数据库所在的数据库集群,以将上述目标端数据库所在机房内的上述目标备库切换为上述主库。
[0130]
具体地,如上表2所示,当上述目标数据库出现故障,且故障场景为上述数据库所在的机器存在故障的情况下,上述ansible所需要发送的主备数据库切换命令为数据库同机房切换命令,将上述目标数据库所在机房中的上述目标备用数据库切换为上述主库。
[0131]
为了使上述故障目标数据库恢复之后正常使用,在一种可选地实施方式中,上述装置还包括:
[0132]
第二发送单元,用于在调用上述ansible发送主备切换命令至上述目标端数据库所在的数据库集群,以将上述目标备库切换为主库之后,在上述目标端数据库恢复正常的情况下,调用上述ansible发送恢复命令至上述目标端数据库所在的数据库集群,上述恢复命令用于控制上述目标端数据库数据与当前的主库进行数据同步;
[0133]
具体地,在完成上述目标数据库的修复之后,在将上述恢复的目标数据库切回主库之前需要将上述目标数据库的数据与当前主库进行同步,恢复发生故障的实例的数据,因此需要调用上述ansible向上述目标端数据库所在的数据库集群发送恢复命令,上述恢复命令执行后,需要针对上述目标数据库的数据损坏情况、数据一致性、语义正确性进行验证。
[0134]
第三发送单元,用于在上述恢复命令执行成功的情况下,调用上述ansible发送回切命令至上述目标端数据库所在的数据库集群,上述回切命令用于将上述目标端数据库切换为上述主库。
[0135]
具体地,在上述目标数据库恢复命令成功后,并且验证通过的情况下,确定上述目标数据库的数据与当前主数据库同步,然后调用上述ansible发送回切命令至上述目标端数据库所在的数据库集群,将当前主数据库切换成备用数据库,将目标数据库切换回主数据库,应用流量同步进行回切。
[0136]
为了确认目标数据库修复,在本技术的一种实施例中,上述装置还包括:
[0137]
第三获取单元,用于在调用上述ansible发送恢复命令至上述目标端数据库所在的数据库集群之前,在上述目标端数据库的软件和硬件正常的情况下,获取上述目标端数据库的上述拓扑完整性、上述网络连通性、上述同步状态和上述读流量;
[0138]
具体地,在数据库发生故障之后,修复故障消除风险让整体系统恢复到健康状态是高可用策略不可或缺的闭环。在进行数据库修复之前,需要检查上述数据库的拓扑完整性、网络连通性、同步状态和读流量,然后对故障的硬件与软件进行修复,并且恢复故障实例的数据,至此完成修复。在修复完成之后再次获取上述目标端数据库的上述拓扑完整性、上述网络连通性、上述同步状态和上述读流量进行检查。上述修复过程中可能存在跨机房访问的情况,需要对不同类型的故障设置差异化的恢复时间要求。
[0139]
第四确定单元,用于在上述目标端数据库的上述拓扑完整性为完整、上述目标端数据库的上述网络连通性为正常、上述目标端数据库的上述同步状态为同步且上述目标端数据库的上述读流量为0的情况下,确定上述目标端数据库恢复正常。
[0140]
具体地,在修复完成后对上述拓扑完整性、上述网络连通性、上述同步状态和上述读流量进行检查的结果为正常之后,即可确定上述目标数据库已修复完成,恢复到可正常应用的状态。
[0141]
为了顺利进行数据库的修复,在一种可选的实施方式中,上述装置包括:
[0142]
第四发送单元,用于在确定上述目标端数据库异常之后,调用上述ansible发送重启命令至上述目标端数据库所在的机器,以重启上述目标端数据库所在的机器。
[0143]
具体地,本技术的技术方案中,在对故障情况进行处理之前需要上述目标数据库的实例进行重启,所以在确定上述目标数据库故障之后,需要调用上述ansible向上述目标端数据库所在的机器发送重启命令。
[0144]
上述分布式数据库集群的管控装置包括处理器和存储器,上述第一获取单元、第一处理单元、第二处理单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0145]
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来降低分布式数据库集群的管控方法资源占用。
[0146]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram),存储器包括至少一个存储芯片。
[0147]
本发明实施例提供了一种计算机可读存储介质,上述计算机可读存储介质包括存储的程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述分布式数据库集群的管控方法。
[0148]
本发明实施例提供了一种处理器,上述处理器用于运行程序,其中,上述程序运行时执行上述分布式数据库集群的管控方法。
[0149]
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现至少以下步骤:
[0150]
步骤s201,获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;
[0151]
步骤s202,调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;
[0152]
步骤s203,调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。
[0153]
本文中的设备可以是服务器、pc、pad、手机等。
[0154]
本技术还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有至少如下方法步骤的程序:
[0155]
步骤s201,获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;
[0156]
步骤s202,调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;
[0157]
步骤s203,调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。
[0158]
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0159]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0160]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0161]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0162]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0163]
在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
[0164]
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。存储器是计算机可读介质的示例。
[0165]
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法
或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
[0166]
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
[0167]
从以上的描述中,可以看出,本技术上述的实施例实现了如下技术效果:
[0168]
1)、本技术的分布式数据库集群的管控方法,首先,获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;然后,调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;最后,调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。该方法通过在分布式数据库集群的管控端安装ansible,通过ansible管理分布式数据库集群的所有的数据库的任务进行管理,无需在所有数据库所在的服务器均安装一个agent来分别管理对应的数据库,ansible占用资源少,部署简单,兼容性好,解决了现有分布式数据库集群的管控方法资源占用过多的问题。
[0169]
2)、本技术的分布式数据库集群的管控装置,获取单元用于获取客户端的业务请求并根据上述业务请求生成对应任务,上述业务请求至少包括存款业务请求和汇款业务请求,上述任务与完成上述业务请求对应的业务流程步骤一一对应;第一处理单元用于调用ansible并根据上述任务生成数据库操作命令,上述数据库操作命令为完成上述任务所执行的数据库操作对应的命令,上述数据库操作包括删除操作、写入操作和更新操作;第二处理单元用于调用上述ansible将上述数据库操作命令发送至目标端数据库,上述目标端数据库为分布式数据库集群中的执行上述业务请求对应的任务的数据库。该装置通过在分布式数据库集群的管控端安装ansible,通过ansible管理分布式数据库集群的所有的数据库的任务进行管理,无需在所有数据库所在的服务器均安装一个agent来分别管理对应的数据库,ansible占用资源少,部署简单,兼容性好,解决了现有分布式数据库集群的管控方法资源占用过多的问题。
[0170]
以上上述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。

技术特征:
1.一种分布式数据库集群的管控方法,其特征在于,包括:获取客户端的业务请求并根据所述业务请求生成对应任务,所述业务请求至少包括存款业务请求和汇款业务请求,所述任务与完成所述业务请求对应的业务流程步骤一一对应;调用ansible并根据所述任务生成数据库操作命令,所述数据库操作命令为完成所述任务所执行的数据库操作对应的命令,所述数据库操作包括删除操作、写入操作和更新操作;调用所述ansible将所述数据库操作命令发送至目标端数据库,所述目标端数据库为分布式数据库集群中的执行所述业务请求对应的任务的数据库。2.根据权利要求1所述的管控方法,其特征在于,在调用ansible将所述数据库操作命令发送至目标端数据库之后,所述方法还包括:在所述ansible接收到所述目标端数据库的任务执行成功的反馈信息的情况下,调用,确定所述目标端数据库正常;在所述ansible没有接收到所述目标端数据库的反馈信息,或者接收到所述目标端数据库的任务执行失败的反馈信息的情况下,确定所述目标端数据库异常。3.根据权利要求2所述的管控方法,其特征在于,在确定所述目标端数据库异常之后,所述方法还包括:获取所述目标端数据库的备库的拓扑完整性、网络连通性、同步状态和读流量,所述拓扑完整性为所述备库与所有的同步数据库的通信信道完整或者不完整,所述同步数据库为所述目标端数据库所在的数据库集群中,与所述备库数据同步的数据库,所述网络连通性为所述备库与所有的所述同步数据库的通信信道正常或者不正常,所述同步状态为所述备库的数据与所有的所述同步数据库的数据同步或者不同步,所述读流量为读取所述备库的数据的流量的大小;在所述备库的所述拓扑完整性为完整、所述备库的所述网络连通性为正常、所述备库的所述同步状态为同步且所述备库的所述读流量为0的情况下,确定所述备库为目标备库;调用所述ansible发送主备切换命令至所述目标端数据库所在的数据库集群,以将所述目标备库切换为主库。4.根据权利要求3所述的管控方法,其特征在于,调用所述ansible发送主备切换命令至所述目标端数据库所在的数据库集群,以将所述目标备库切换为主库,包括:在所述目标端数据库所在机房故障的情况下,调用所述ansible发送数据库跨地域切换命令至所述目标端数据库所在的数据库集群,以将所述目标端数据库所在机房之外的所述目标备库切换为所述主库;在所述目标端数据库所在机器故障的情况下,调用所述ansible发送数据库同机房切换命令至所述目标端数据库所在的数据库集群,以将所述目标端数据库所在机房内的所述目标备库切换为所述主库。5.根据权利要求3所述的管控方法,其特征在于,在调用所述ansible发送主备切换命令至所述目标端数据库所在的数据库集群,以将所述目标备库切换为主库之后,所述方法还包括:在所述目标端数据库恢复正常的情况下,调用所述ansible发送恢复命令至所述目标
端数据库所在的数据库集群,所述恢复命令用于控制所述目标端数据库数据与当前的主库进行数据同步;在所述恢复命令执行成功的情况下,调用所述ansible发送回切命令至所述目标端数据库所在的数据库集群,所述回切命令用于将所述目标端数据库切换为所述主库。6.根据权利要求5所述的管控方法,其特征在于,在调用所述ansible发送恢复命令至所述目标端数据库所在的数据库集群之前,所述方法还包括:在所述目标端数据库的软件和硬件正常的情况下,获取所述目标端数据库的所述拓扑完整性、所述网络连通性、所述同步状态和所述读流量;在所述目标端数据库的所述拓扑完整性为完整、所述目标端数据库的所述网络连通性为正常、所述目标端数据库的所述同步状态为同步且所述目标端数据库的所述读流量为0的情况下,确定所述目标端数据库恢复正常。7.根据权利要求2所述的管控方法,其特征在于,在确定所述目标端数据库异常之后,所述方法还包括:调用所述ansible发送重启命令至所述目标端数据库所在的机器,以重启所述目标端数据库所在的机器。8.一种分布式数据库集群的管控装置,其特征在于,包括:第一获取单元,用于获取客户端的业务请求并根据所述业务请求生成对应任务,所述业务请求至少包括存款业务请求和汇款业务请求,所述任务与完成所述业务请求对应的业务流程步骤一一对应;第一处理单元,用于调用ansible并根据所述任务生成数据库操作命令,所述数据库操作命令为完成所述任务所执行的数据库操作对应的命令,所述数据库操作包括删除操作、写入操作和更新操作;第二处理单元,用于调用所述ansible将所述数据库操作命令发送至目标端数据库,所述目标端数据库为分布式数据库集群中的执行所述业务请求对应的任务的数据库。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至7中任意一项所述的管控方法。10.一种数据库管控平台,其特征在于,包括:一个或多个处理器,存储器,以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行权利要求1至7中任意一项所述的管控方法。

技术总结
本申请提供了一种分布式数据库集群的管控方法、装置和数据库管控平台,所属方法包括:获取客户端的业务请求并根据业务请求生成对应任务,业务请求至少包括存款业务请求和汇款业务请求,任务与完成业务请求对应的业务流程步骤一一对应;调用ansible并根据任务生成数据库操作命令,数据库操作命令为完成任务所执行的数据库操作对应的命令,数据库操作包括删除操作、写入操作和更新操作;调用ansible将数据库操作命令发送至目标端数据库,目标端数据库为分布式数据库集群中的执行业务请求对应的任务的数据库。该方法中ansible占用资源少,部署简单,兼容性好,解决了现有分布式数据库集群的管控方法资源占用过多的问题。集群的管控方法资源占用过多的问题。集群的管控方法资源占用过多的问题。


技术研发人员:朱峰 何佳佳 张博超 刘畅 郭雁 蒋之皓
受保护的技术使用者:中国邮政储蓄银行股份有限公司
技术研发日:2023.03.30
技术公布日:2023/7/12
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐