分布式数据库的灾备演练方法及装置与流程
未命名
09-24
阅读:67
评论:0

1.本发明涉及数据库技术领域,具体而言,涉及一种分布式数据库的灾备演练方法及装置。
背景技术:
2.分布式数据库通过提供高安全、高性能、高质量及低成本的数据存储处理方案越来越多的被金融业、通信业、政企等行业依赖。其中,分布式数据库一大特性就是高可用,这是指分布式数据库系统资源和数据分布在多个节点,通过主备模式存储数据的多个副本,数据具有一定的冗余度。当个别数据节点发生故障时,不会导致整个系统崩溃。以银行业为例,银行业对于重要交易系统,有明确的“两地三中心”的要求,两地是指同城、异地,三中心是指生产中心、同城灾备中心、异地容灾中心。
3.同时,因为分布式数据库高可用场景的复杂程度高、组合多样、参数多变、受环境影响大,数据库使用方需要构造各类不同复杂度的演练计划,小到某个组件的高可用、大到两地三中心的孤岛演练,以确保分布式数据库能够正常发挥其高可用特性保障数据安全。而对分布式数据库厂商而言,这些演练计划的开发与测试给日常的工作带来了极大的侵入,很大程度上阻碍了分布式数据库的健康发展与迭代进度。这是因为,一方面,分布式数据库还处于快速发展期间,不同版本之间的差异较大,对于一些特定的演练计划往往是需要组织不同团队的成员针对某个版本进行定制开发;另一方面,不同的客户对于演练的场景与要求也各不相同。
4.针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
技术实现要素:
5.本发明提供了一种分布式数据库的灾备演练方法及装置,以解决相关技术演练方案基于特定版本、特定场景制作,复用性低的技术问题。
6.根据本技术实施例的一个方面,提供了一种分布式数据库的灾备演练方法,包括:获取多个历史演练程序对应的演练脚本;根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;基于所述通用脚本语法生成目标演练程序的执行脚本,解析所述执行脚本的脚本语言;根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行所述目标演练程序。
7.进一步地,根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法包括:将所述共性命令中指定命令固化为子流程脚本;获取所述差异参数的参数格式;根据所述子流程脚本和所述参数格式定义通用脚本语法。
8.进一步地,所述通用脚本语法包括子流程脚本,基于所述通用脚本语法生成目标演练程序的执行脚本包括:判断所述通用脚本语法中是否存在所述目标演练程序所需的目标子流程脚本;若存在所述目标演练程序所需的目标子流程脚本,则调用所述目标子流程脚本,并基于所述目标子流程脚本生成所述目标演练程序的执行脚本;若不存在所述目标
演练程序所需的目标子流程脚本,则通过所述通用脚本语法中的基本语法生成目标演练程序的执行脚本。
9.进一步地,在基于所述通用脚本语法生成目标演练程序的执行脚本之后,所述方法还包括:将所述执行脚本导入图形用户页面gui,通过所述图形用户页面对所述执行脚本进行解析,生成方案视图,所述方案视图用于显示所述目标演练方案的演练过程;监控所述执行脚本的单步命令执行状态、以及所述执行脚本执行结束后的整体运行状态。
10.进一步地,根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行所述目标演练程序包括:通过脚本适配单元集中引用分布式数据库中各组件接口,并将各组件接口转换为统一接口;通过脚本执行单元将所述执行脚本下发至脚本适配单元,并通过所述统一接口基于所述脚本语言复用所述各组件接口,以执行所述目标演练程序。
11.进一步地,在基于所述通用脚本语法生成目标演练程序的执行脚本之后,所述方法还包括:对所述执行脚本进行基础规则校验,所述基础规则校验包括序号、命令识别、参数合法性和跳步合法性。
12.进一步地,在基于所述通用脚本语法生成目标演练程序的执行脚本之后,所述方法还包括:按照所述执行脚本设定的流程顺序执行或者跳转执行。
13.根据本技术实施例的另一个方面,还提供了一种分布式数据库的灾备演练装置,包括:获取模块,用于获取多个历史演练方案对应的演练脚本;定义模块,用于根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;生成模块,用于基于所述通用脚本语法生成目标演练方案的执行脚本,解析所述执行脚本的脚本语言;执行模块,用于根据所述脚本语言调用分布式数据库中对应的各组件的接口,以执行所述目标演练方案。
14.进一步地,所述定义模块包括:第一定义单元,用于将所述共性命令中指定命令固化为子流程脚本;获取所述差异参数的参数格式;根据所述子流程脚本和所述参数格式定义通用脚本语法。
15.进一步地,所述生成模块包括:第一生成单元,用于判断所述通用脚本语法中是否存在所述目标演练程序所需的目标子流程脚本;若存在所述目标演练程序所需的目标子流程脚本,则调用所述目标子流程脚本,并基于所述目标子流程脚本生成所述目标演练程序的执行脚本;若不存在所述目标演练程序所需的目标子流程脚本,则通过所述通用脚本语法中的基本语法生成目标演练程序的执行脚本。
16.进一步地,所述分布式数据库的灾备演练装置还包括监控模块,用于将所述执行脚本导入图形用户页面gui,通过所述图形用户页面对所述执行脚本进行解析,生成方案视图,所述方案视图用于显示所述目标演练方案的演练过程;监控所述执行脚本的单步命令执行状态、以及所述执行脚本执行结束后的整体运行状态。
17.进一步地,所述执行模块包括第一执行单元,用于通过脚本适配单元集中引用分布式数据库中各组件接口,并将各组件接口转换为统一接口;通过脚本执行单元将所述执行脚本下发至脚本适配单元,并通过所述统一接口基于所述脚本语言复用所述各组件接口,以执行所述目标演练程序。
18.进一步地,所述分布式数据库的灾备演练装置还包括校验模块,用于对所述执行脚本进行基础规则校验,所述基础规则校验包括序号、命令识别、参数合法性和跳步合法性。
19.进一步地,所述分布式数据库的灾备演练装置还包括第一执行模块,按照所述执行脚本设定的流程顺序执行或者跳转执行。
20.根据本技术实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的步骤。
21.根据本技术实施例的另一方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行上述方法中的步骤。
22.本技术实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法中的步骤。
23.通过本发明,获取多个历史演练程序对应的演练脚本,根据演练脚本之间的共性命令和差异参数定义通用脚本语法,可实用于不同的演练场景和要求,基于通用脚本语法生成目标演练程序的执行脚本,解析执行脚本的脚本语言,根据脚本语言调用分布式数据库中对应的各组件接口,以执行目标演练程序,通过底层各模块、组件接口实现不同操作系统、不同版本、不同业务模型的基本兼容。
附图说明
24.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
25.图1是本发明实施例的一种计算机的硬件结构框图;
26.图2是根据本发明实施例的一种分布式数据库的灾备演练方法的流程图;
27.图3是本发明实施例分布式数据库基于脚本的三层结构演练方案通用执行方法的结构示意图;
28.图4是本发明实施例的分布式数据库的灾备演练的实现流程示意图;
29.图5是本发明实施例的底层接口调用的流程示意图;
30.图6是根据本发明实施例的一种分布式数据库的灾备演练装置的结构框图。
具体实施方式
31.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分的实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本技术保护的范围。需要说明的是,在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互组合。
32.需要说明的是,本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、产品或设备不必限于清楚
地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
33.实施例1
34.本技术实施例一所提供的方法实施例可以在手机、计算机、平板或者类似的运算装置中执行。以运行在计算机上为例,图1是本发明实施例的一种计算机的硬件结构框图。如图1所示,计算机可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)和用于存储数据的存储器104,可选地,上述计算机还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机的结构造成限定。例如,计算机还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
35.存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种视频动静率识别方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
36.传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(network interface controller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(radio frequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。
37.在本实施例中提供了一种分布式数据库的灾备演练方法,图2是根据本发明实施例的一种分布式数据库的灾备演练方法的流程图,如图2所示,该流程包括如下步骤:
38.步骤s10,获取多个历史演练程序对应的演练脚本;
39.步骤s20,根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;
40.历史演练程序为在不同的演练场景与参数需求下,已经完成的对分布式数据库进行灾备演练的演练程序,对不同的历史演练程序进行功能分解与提炼,具体地,由于演练方案涉及模块多、业务场景多、环境差异大,而对于不同的演练程序,命令差别较小,参数需求差别较大,因此需要对不同的历史演练程序对应的演练脚本之间的共性命令进行总结,对差异参数进行提炼,提炼出对外开放的参数格式,从而定义一套通用的脚本语法。示例性地,可以模块进行功能分解,模块包括分布式数据库中的数据节点、计算节点和全局事务管理节点gtm等模块。本实施例中分布式数据库的灾备演练方法包括三层结构:上层,用于提供可视化演练过程与运行监控;中间层,用于定义一套可自由编辑演练计划的脚本语言;底层,用于对脚本语言进行解析,并匹配中间层的各类组件的功能实现接口。
41.步骤s30,基于所述通用脚本语法生成目标演练程序的执行脚本,解析所述执行脚本的脚本语言。
42.步骤s40,根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行
所述目标演练程序。
43.按照脚本语法规则通过编辑生成目标演练程序的执行脚本,可选地,还可以从演练脚本库中提取目标演练程序的执行脚本,执行脚本包括目标演练程序的所有步骤,并包含了每一步命令的序号、命令名称和参数。在开启测试时,通过解析执行脚本的脚本语法,调用分布式数据库中对应的各组件的接口或者脚本,执行目标演练程序,并返回执行结果。本实施例提供了分布式数据库的各类演练的可复用执行方案,尤其是考虑跨版本、不同集群规划、不同演练需求的场景。
44.通过上述步骤,获取多个历史演练程序对应的演练脚本,根据演练脚本之间的共性命令和差异参数定义通用脚本语法,可实用于不同的演练场景和要求,基于通用脚本语法生成目标演练程序的执行脚本,解析执行脚本的脚本语言,根据脚本语言调用分布式数据库中对应的各组件接口,以执行目标演练程序,通过底层各模块、组件接口实现不同操作系统、不同版本、不同业务模型的基本兼容。
45.在本实施例中,根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法包括:
46.步骤21,将所述共性命令中指定命令固化为子流程脚本;
47.步骤22,获取所述差异参数的参数格式;
48.步骤23,根据所述子流程脚本和所述参数格式定义通用脚本语法。
49.通用脚本语法包括子流程脚本,通过定义脚本类命令,允许实现脚本嵌套功能,在实际演练任务中,存在极大多数重复或者通用步骤,即共性命令,将这些步骤固化为子流程脚本或整体方案,通过子脚本的支持,实现已有方案的重复调用,减少了任务编辑内容。获取差异参数的参数格式,不同指令对应的参数不同。根据子流程脚本和参数格式定义通用脚本语法。通过引入子脚本的功能,固化部分特定流程,允许通过类似搭积木的方式,实现已有方案复用,最终完成复杂演练场景的实现。
50.本实施例的一实施方式中,所述通用脚本语法包括子流程脚本,基于所述通用脚本语法生成目标演练程序的执行脚本包括:
51.步骤31,判断所述通用脚本语法中是否存在所述目标演练程序所需的目标子流程脚本;
52.步骤32,若存在所述目标演练程序所需的目标子流程脚本,则调用所述目标子流程脚本,并基于所述目标子流程脚本生成所述目标演练程序的执行脚本;
53.步骤33,若不存在所述目标演练程序所需的目标子流程脚本,则通过所述通用脚本语法中的基本语法生成目标演练程序的执行脚本。
54.判断通用脚本语法中是否存在目标演练程序所需的目标子流程脚本,若存在目标演练程序所需的目标子流程脚本,则调用目标子流程脚本,并基于目标子流程脚本生成目标演练程序的执行脚本,若不存在目标演练程序所需的目标子流程脚本,则通过通用脚本语法中的基本语法生成目标演练程序的执行脚本。可参考图4,演练方案库为中间层的脚本文件,包括若干个子流程脚本,例如scheme2为一个目标组件的高可用,当前需要新建一个演练计划new scheme,即新建一个目标演练程序为孤岛演练,孤岛演练所需的目标子流程脚本包括目标组件的高可用,即scheme2,则直接调用目标子流程脚本scheme2,并基于演练脚本语法中的基本语法cmd 1-cmd n生成目标演练程序的执行脚本,例如新建的目标演练
程序的执行脚本包括如图4所示的new scheme,包括6个步骤cmd 1,cmd 2,scheme2,cmd 4,cmd 4,cmd 7,其中第三步scheme2为演练方案库中一个现存的执行脚本。
55.在本实施例的一实施方式中,在基于所述通用脚本语法生成目标演练程序的执行脚本之后,所述方法还包括:
56.步骤a,将所述执行脚本导入图形用户页面gui,通过所述图形用户页面对所述执行脚本进行解析,生成方案视图,所述方案视图用于显示所述目标演练方案的演练过程;
57.步骤b,监控所述执行脚本的单步命令执行状态、以及所述执行脚本执行结束后的整体运行状态。
58.将执行脚本导入图形用户页面gui,通过图形用户页面对执行脚本进行解析,生成方案视图,方案视图用于显示目标演练方案的演练过程,监控执行脚本的单步命令执行状态、以及执行脚本执行结束后的整体运行状态。图形用户页面包括但不限于演练方案管理模块、演练执行模块、日志记录模块,当上层的调用关系建立后,下层的实现、演练方案脚本层的变动无需上层页面变动,实现依赖解耦。脚本执行单元汇总并组合当前演练脚本的执行结果。上层页面开始执行后,定时监测脚本执行单元中的执行情况,当单步命令执行状态变动后实时更新,并等待演练脚本执行结束后整体更新运行状态,给出演练结果统计。gui与脚本执行单元相互连接,gui可获取查询到当前演练方案的执行状况。参考图3,生成脚本语言,gui页面下载load脚本文件,在页面上显示目标演练方案的执行步骤,一共多少步,每一步的参数,触发gui页面中开始执行的指令,在页面中显示执行结果,执行日志等,后续可能实现gui页面生成执行脚本,执行脚本可以载入到脚本执行单元,脚本执行单元读取脚本进行执行,脚本有很多条,下发到适配单元,适配单元通过转化为各个模块的接口。图形用户页面gui从脚本文件中下载执行脚本,通过图形用户页面对执行脚本进行解析,生成方案视图,图形用户页面gui还可以从脚本执行单元中获取执行脚本的单步命令执行状态,以及执行脚本执行结束后的整体运行状态,监控单步命令的执行状态为成功或失败,整体运行状态为成功或失败。
59.在本实施例的一实施方式中,根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行所述目标演练程序包括:
60.步骤41,通过脚本适配单元集中引用分布式数据库中各组件接口,并将各组件接口转换为统一接口;
61.步骤42,通过脚本执行单元将所述执行脚本下发至脚本适配单元,并通过所述统一接口基于所述脚本语言复用所述各组件接口,以执行所述目标演练程序。
62.通过脚本适配单元集中引用分布式数据库中各组件接口,并将各组件接口转换为统一接口,通过脚本适配单元将各组件接口进行封装,统一适配给脚本控制单元调用,参考图5,脚本适配单元将模块1-模块5,以及各模块下的子模块提供的接口进行集中引用,统一适配给脚本控制单元调用,各组件提供功能实现接口,通过虚函数实现接口兼容与动态调用。脚本执行单元将执行脚本下发至脚本适配单元,由脚本适配单元将各组件接口统一适配给脚本执行单元调用。
63.本实施例的整体实现流程:步骤1:运维人员/dba/开发人员从演练脚本库中提取或者按照script(脚本)语法规则通过编辑生成一份演练方案的执行脚本,脚本流程的合理性需要由编写人员自行检查与校验。步骤2:登陆管理页面gui,进入”演练计划“功能页,通
过”导入演练方案“将脚本文件导入,页面对脚本文件进行解析,并生成方案视图(比如点开始就可以直接运行)。在后期的规划中允许在页面中对脚本进行更详细的解析并能够在线编辑同步到脚本文件。步骤3:页面点击开启测试,启动流程下发至脚本执行单元(scriptprocess),对脚本文件进行基础规则校验,包含序号、命令识别、参数合法性、跳步合法性等。步骤4:脚本执行单元启动执行流程,按照脚本文件设定的流程顺序或者跳转执行。(脚本适配单元)scriptadatper通过解析脚本语法,调用底层各组件提供的接口或者脚本,并返回执行结果。执行单元将执行脚本中的步骤进行拆解,并下发至适配单元,适配单元根据下发的脚本调底层接口。步骤5:脚本执行单元汇总并组合当前演练脚本的执行结果。上层页面开始执行后,定时监测脚本执行单元中的执行情况,当单步命令执行状态变动后实时更新,并等待演练脚本执行结束后整体更新运行状态,给出演练结果统计。
64.在相关技术中,对每个预算演练计划都需要对应做一套脚本程序,基本上无法进行复用,因为数据库版本不同,需要基于不同的版本,在不同的版本上单独去开发,一个单独的脚本开发完,循环,结束,这个程序无法进行复用。与现存在的一些低代码平台相比,本实施例涉及场景更复杂,第一次提出通过中间层尝试整理和总结分布式数据库演练计划中的步骤,涉及模块与组件众多,参数复杂性也大大提升。举例如kettle解决方案更重视对数据源的处理,而本实施例更重视演练方案中的过程管理与各模块功能实现。
65.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
66.实施例2
67.在本实施例中还提供了一种分布式数据库的灾备演练装置,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
68.图6是根据本发明实施例的一种分布式数据库的灾备演练装置的结构框图,如图6所示,该装置包括:获取模块60,定义模块61,生成模块62,执行模块63,其中,
69.获取模块60,用于获取多个历史演练方案对应的演练脚本;
70.定义模块61,用于根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;
71.生成模块62,用于基于所述通用脚本语法生成目标演练方案的执行脚本,解析所述执行脚本的脚本语言;
72.执行模块63,用于根据所述脚本语言调用分布式数据库中对应的各组件的接口,以执行所述目标演练方案。
73.可选的,所述定义模块包括:第一定义单元,用于将所述共性命令中指定命令固化为子流程脚本;获取所述差异参数的参数格式;根据所述子流程脚本和所述参数格式定义通用脚本语法。
74.可选的,所述生成模块包括:第一生成单元,用于判断所述通用脚本语法中是否存在所述目标演练程序所需的目标子流程脚本;若存在所述目标演练程序所需的目标子流程脚本,则调用所述目标子流程脚本,并基于所述目标子流程脚本生成所述目标演练程序的执行脚本;若不存在所述目标演练程序所需的目标子流程脚本,则通过所述通用脚本语法中的基本语法生成目标演练程序的执行脚本。
75.可选的,所述分布式数据库的灾备演练装置还包括监控模块,用于将所述执行脚本导入图形用户页面gui,通过所述图形用户页面对所述执行脚本进行解析,生成方案视图,所述方案视图用于显示所述目标演练方案的演练过程;监控所述执行脚本的单步命令执行状态、以及所述执行脚本执行结束后的整体运行状态。
76.可选的,所述执行模块包括第一执行单元,用于通过脚本适配单元集中引用分布式数据库中各组件接口,并将各组件接口转换为统一接口;通过脚本执行单元将所述执行脚本下发至脚本适配单元,并通过所述统一接口基于所述脚本语言复用所述各组件接口,以执行所述目标演练程序。
77.可选的,所述分布式数据库的灾备演练装置还包括校验模块,用于对所述执行脚本进行基础规则校验,所述基础规则校验包括序号、命令识别、参数合法性和跳步合法性。
78.可选的,所述分布式数据库的灾备演练装置还包括第一执行模块,按照所述执行脚本设定的流程顺序执行或者跳转执行。
79.需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
80.实施例3
81.本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
82.可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
83.s1,获取多个历史演练程序对应的演练脚本;
84.s2,根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;
85.s3,基于所述通用脚本语法生成目标演练程序的执行脚本,解析所述执行脚本的脚本语言;
86.s4,根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行所述目标演练程序。
87.可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-only memory,简称为rom)、随机存取存储器(random access memory,简称为ram)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
88.本发明的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
89.可选地,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
90.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
91.s1,获取多个历史演练程序对应的演练脚本;
92.s2,根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;
93.s3,基于所述通用脚本语法生成目标演练程序的执行脚本,解析所述执行脚本的脚本语言;
94.s4,根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行所述目标演练程序。
95.可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
96.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
97.在本技术的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
98.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
99.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
100.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
101.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
102.以上所述仅是本技术的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本技术的保护范围。
技术特征:
1.一种分布式数据库的灾备演练方法,其特征在于,所述方法包括:获取多个历史演练程序对应的演练脚本;根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;基于所述通用脚本语法生成目标演练程序的执行脚本,解析所述执行脚本的脚本语言;根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行所述目标演练程序。2.根据权利要求1所述的方法,其特征在于,根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法包括:将所述共性命令中指定命令固化为子流程脚本;获取所述差异参数的参数格式;根据所述子流程脚本和所述参数格式定义通用脚本语法。3.根据权利要求1所述的方法,其特征在于,所述通用脚本语法包括子流程脚本,基于所述通用脚本语法生成目标演练程序的执行脚本包括:判断所述通用脚本语法中是否存在所述目标演练程序所需的目标子流程脚本;若存在所述目标演练程序所需的目标子流程脚本,则调用所述目标子流程脚本,并基于所述目标子流程脚本生成所述目标演练程序的执行脚本;若不存在所述目标演练程序所需的目标子流程脚本,则通过所述通用脚本语法中的基本语法生成目标演练程序的执行脚本。4.根据权利要求1所述的方法,其特征在于,在基于所述通用脚本语法生成目标演练程序的执行脚本之后,所述方法还包括:将所述执行脚本导入图形用户页面gui,通过所述图形用户页面对所述执行脚本进行解析,生成方案视图,所述方案视图用于显示所述目标演练方案的演练过程;监控所述执行脚本的单步命令执行状态、以及所述执行脚本执行结束后的整体运行状态。5.根据权利要求1所述的方法,其特征在于,根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行所述目标演练程序包括:通过脚本适配单元集中引用分布式数据库中各组件接口,并将各组件接口转换为统一接口;通过脚本执行单元将所述执行脚本下发至脚本适配单元,并通过所述统一接口基于所述脚本语言复用所述各组件接口,以执行所述目标演练程序。6.根据权利要求1所述的方法,其特征在于,在基于所述通用脚本语法生成目标演练程序的执行脚本之后,所述方法还包括:对所述执行脚本进行基础规则校验,所述基础规则校验包括序号、命令识别、参数合法性和跳步合法性。7.根据权利要求1所述的方法,其特征在于,在基于所述通用脚本语法生成目标演练程序的执行脚本之后,所述方法还包括:按照所述执行脚本设定的流程顺序执行或者跳转执行。8.一种分布式数据库的灾备演练装置,其特征在于,包括:
获取模块,用于获取多个历史演练方案对应的演练脚本;定义模块,用于根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;生成模块,用于基于所述通用脚本语法生成目标演练方案的执行脚本,解析所述执行脚本的脚本语言;执行模块,用于根据所述脚本语言调用分布式数据库中对应的各组件的接口,以执行所述目标演练方案。9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;其中:存储器,用于存放计算机程序;处理器,用于通过运行存储器上所存放的程序来执行权利要求1至7中任一项所述的方法步骤。10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至7中任一项所述的方法步骤。
技术总结
本发明公开了一种分布式数据库的灾备演练方法及装置,属于数据库技术领域。其中,该方法包括:获取多个历史演练程序对应的演练脚本;根据所述演练脚本之间的共性命令和差异参数定义通用脚本语法;基于所述通用脚本语法生成目标演练程序的执行脚本,解析所述执行脚本的脚本语言;根据所述脚本语言调用所述分布式数据库中对应的各组件接口,以执行所述目标演练程序。通过本发明,解决了相关技术中演练方案基于特定版本、特定场景制作,复用性低的技术问题。术问题。术问题。
技术研发人员:曹健
受保护的技术使用者:金篆信科有限责任公司
技术研发日:2022.12.29
技术公布日:2023/9/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/