基于数据库服务架构维护服务器的方法及系统与流程

文档序号:11230626阅读:614来源:国知局
基于数据库服务架构维护服务器的方法及系统与流程

本发明涉及服务器领域,特别涉及一种基于数据库服务架构维护服务器的方法及系统。



背景技术:

目前,基于sqlserver数据库服务及其服务器的运维工作,主要步骤是通过人工判断数据库服务所存在的环境和架构制定符合规范的工艺、多人审核无操作风险后、在凌晨订单量较少的窗口人工实施,由于从制定任务到实施的环节较为复杂,市场上也并无此类工具,其所存在的问题如下:

1、变更工艺难确定:由于不同数据库服务的架构及其他环境变量较复杂、故在确定工艺前需要对不同架构及其他环境变量进行细致的考量;

2、工作量较大:数据库服务的运维工艺一般操作步骤都在50~60步,从前期的准备工作,到人工复核,再到最后的实施阶段,单人每周最多完成1~2台;

3、错误率较高:由于维护工艺较为复杂、变量较多,从准备工作到实施工作,容易引发各种错误,而数据库服务直接影响到各业务环节,稍有疏忽就容易引起生产服务器故障,影响各业务订单。

以上这些问题不仅带来巨大的人工消耗,也会给生产环境增加很多风险。



技术实现要素:

本发明要解决的技术问题是为了克服现有技术中人工维护服务器存在变更工艺难确定、工作量较大以及错误率较高等的缺陷,提供一种自动化的基于数据库服务架构维护服务器的方法及系统。

本发明是通过下述技术方案来解决上述技术问题的:

一方面,本发明提供一种基于数据库服务架构维护服务器的方法,其特点在于,包括以下步骤:

根据输入的待维护服务器的名称和采集的待维护服务器的第一基础信息确定数据库服务架构;其中,所述第一基础信息包括服务的系统视图、系统动态视图、服务器集群信息及群集管理器信息,所述数据库服务架构包括群集、ag(一种数据库服务架构)、镜像或负载均衡;

通过所述数据库服务架构和维护命令的类型生成变更工艺的主维护流程;

根据所述维护命令的类型将所述变更工艺分配至运行在所述待维护服务器上的相应插件。

较佳地,分配所述变更工艺的步骤之前,还包括:获取所述数据库服务架构中待维护服务器的第二基础信息,并根据所述第二基础信息生成变更工艺的次维护流程;

其中,所述第二基础信息包括复制分发、负载均衡ip、群集虚ip、aglistener。

较佳地,所述方法还包括:

按照预设条件对所述变更工艺进行调整;

根据调整部分重新获取第一和第二基础信息;

根据重新获取的第一和第二基础信息重新生成变更工艺,并分配至相应插件。

较佳地,所述方法还包括:所述插件在运行的同时以同步或异步的方式将所述维护命令的执行结果和日志回调。

较佳地,所述维护命令的类型包括salt类命令、cmd类命令、tsql及sp类命令以及第三方插件类命令;和/或,

所述插件的类型包括salt插件、cmd插件、db插件以及webinfo插件。

另一方面,本发明提供一种基于数据库服务架构维护服务器的系统,其特点在于,包括数据库服务架构确定引擎、变更工艺生成引擎以及任务调度引擎:

所述数据库服务架构确定引擎用于根据输入的待维护服务器的名称和采集的待维护服务器的第一基础信息确定数据库服务架构;其中,所述第一基础信息包括服务的系统视图、系统动态视图、服务器集群信息及群集管理器信息,所述数据库服务架构包括群集、ag、镜像或负载均衡;

所述变更工艺生成引擎用于通过所述数据库服务架构和维护命令的类型生成变更工艺的主维护流程,并将所述变更工艺分配至所述任务调度引擎;

所述任务调度引擎用于根据所述维护命令的类型将所述变更工艺分配至运行在所述待维护服务器上的相应的插件。

较佳地,所述变更工艺生成引擎还用于获取所述数据库服务架构中待维护服务器的第二基础信息,并根据所述第二基础信息生成变更工艺的次维护流程;

其中,所述第二基础信息包括复制分发、负载均衡ip、群集虚ip、aglistener。

较佳地,所述系统还包括变更工艺调整引擎,用于按照预设条件对所述变更工艺进行调整,并调用所述数据库服务架构确定引擎和所述变更工艺生成引擎。

较佳地,所述插件用于在运行的同时以同步或异步的方式将所述维护命令的执行结果和日志回调至所述任务调度引擎。

较佳地,所述维护命令的类型包括salt类命令、cmd类命令、tsql及sp类命令以及第三方插件类命令;和/或,

所述插件的类型包括salt插件、cmd插件、db插件以及webinfo插件。

在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实例。

本发明的积极进步效果在于:与现有技术相比,本发明根据待维护服务器的名称和第一基础信息确定数据库服务器架构,并基于不同的数据库服务架构以及不同的维护命令生成不同的变更工艺,以及将变更工艺分配至相应的插件中,以实现自动化地维护数据库,不仅提高了维护的效率,同时也提升了维护的准确度。

附图说明

图1为本发明实施例的基于数据库服务架构维护服务器的方法流程图。

图2为本发明实施例的数据库服务器架构的确定方法流程图。

图3为本发明实施例的基于数据库服务架构维护服务器的系统的结构框图。

具体实施方式

下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。

本实施例提供一种基于数据库服务架构维护服务器的方法,如图1所示,包括以下步骤:

步骤101、根据输入的待维护服务器的名称和采集的待维护服务器的第一基础信息确定数据库服务架构。在可选的一种实施方式中,dba通过ui界面输入待维护服务器的名称,例如为svr1234hp580。

其中,所述第一基础信息包括服务的系统视图、系统动态视图(dmv)、服务器集群信息(webinfo)及群集管理器信息(clustercommand)等。所述数据库服务架构包括群集、ag、镜像或负载均衡。

在可选的一种实施方式中,根据待维护服务器的名称(cicode)获取如实例的域名,登陆服务本身采集待维护服务器的第一基础信息,并根据如图2的算法确定出数据库服务器架构。

步骤102、通过所述数据库服务架构和维护命令的类型生成变更工艺的主维护流程。其中,所述维护命令的类型包括salt类命令、cmd类命令、tsql及sp类命令以及第三方插件类命令。

不同的数据库服务架均有不同的维护特点,例如ag架构,其主维护流程就是需要对维护服务器在sqlserver服务层面做ag切换,并校验切换后读写双方的数据库是否能正常工作提供对应的读写服务,其余的数据库架构也均有不同的维护特点,通过数据库服务器架构生成满足各自架构的变更工艺。

在可选的一种实施方式中,变更工艺包括主维护流程和次维护流程,其中,次维护流程的生成步骤为:获取所述数据库服务架构中待维护服务器的第二基础信息,并根据所述第二基础信息生成变更工艺的次维护流程。

其中,所述第二基础信息包括复制分发、负载均衡ip、群集虚ip、aglistener。

在可选的一种实施方式中,以次维护流程先于主维护流程开始,后于主维护流程结束来确保全程不影响任何工艺。

生成主维护流程后结合次维护流程最终生成一套可以预定义执行的流程,即变更工艺。以负载均衡架构打补丁为例,其主维护流程有四步:拉出负载均衡、完成补丁维护、重启服务器、拉入负载均衡。其中会影响到提供外部服务的步骤为拉出负载均衡和拉入负载均衡,影响到服务本身的为完成补丁维护和重启服务器。其中次维护流程中会影响到外部服务的复制分发暂停和恢复步骤,需先于主维护流程的拉出负载均衡和拉入负载均衡,会影响到服务本身的服务作业需要在完成补丁维护和重启服务器后执行,总结下就是次维护流程要依据影响的范围置于主维护流程外执行,确保业务不受影响。

步骤103、根据所述维护命令的类型将所述变更工艺分配至运行在所述待维护服务器上的相应插件。

所述插件的类型包括salt插件、cmd插件、db插件以及webinfo插件。其中,salt插件主要负责远程执行预定义复杂运维脚本,例如安装补丁文件、重启服务器、检查群集资源状态等;cmd插件则为直连服务器执行信息查询类工作,例如telenet端口等;db插件则负责直连数据库端口,执行数据库命令,例如ag切换副本、检查应用程序账户是否可以正常连接数据库等。

在可选的一种实施方式中,步骤103中根据变更预定义时间及服务器负载情况选择合适的变更准备执行;待运行的变更所有步骤更新为待运行,并根据步骤先后依次执行;准备开始执行的步骤更新为运行中,并分配给各插件开始执行。

在可选的一种实施方式中,步骤执行成功则继续运行后续命令,命令运行失败会初始化该步骤,并重新获取该步骤所需服务器基础信息,重新执行,若失败次数大于3次以上,则将该变更刹车,并推送相关信息至变更实施人。

在可选的一种实施方式中,所述插件在运行的同时以同步或异步的方式将所述维护命令的执行结果和日志回调,方便后续命令进行执行。举个例子,cmd类命令为直连服务器生成的命令,并且执行可立即返回结果时,使用的为同步方法;salt类命令需要依靠salt宿主代理执行命令,为了避免宿主压力过大而采取异步的方式发送命令后异步回调结果。

其中,salt插件用于对salt类命令的执行结果和日志进行回调处理;cmd插件用于对cmd类命令的执行结果和日志进行回调处理;db插件用于对tsql及sp类命令的执行结果和日志进行回调处理;webinfo插件用于对第三方插件类命令的执行结果和日志进行回调处理。

在可选的一种实施方式中,上述步骤103之后还包括以下步骤:

按照预设条件对所述变更工艺进行调整;

根据调整部分重新获取第一和第二基础信息;

根据重新获取的第一和第二基础信息重新生成变更工艺,并分配至相应插件。

例如,某服务器在完成补丁维护的同时,需要对sqlserver进行升级,则可以对变更工艺进行调整,具体地,自定义添加sqlserver升级步骤等。

与现有技术相比,本实施例根据待维护服务器的名称和采集的服务器基础信息确定数据库服务器架构,并基于不同的数据库服务架构以及不同的维护命令生成不同的变更工艺,以及将变更工艺分配至相应的插件中,以实现自动化地维护数据库,不仅提高了维护的效率,同时也提升了维护的准确度。

具体体现在以下三个方面:

第一、智能生成变更工艺。根据不同的数据库服务及其存在的各种变量,有一套对数据库服务架构及其存在变量的评估方法,工具会基于该方法生成一套属于该服务特性的维护方案,省却了人工收集核对信息,考量风险等步骤。

第二、自动化完成变更。变更工艺制定完成后,会结合预定任务执行时间和服务器当前负载是否在可实施窗口内一步步自动执行各项变更操作。

第三、容错处理。实施变更的过程中,系统会再一次核对相关信息,并实施相关操作,在遇到错误时,会有主动重试、信息校验、主动中断、后续重试、人工排障、中断操作等工艺来保护本次变更操作在一个可控、安全的区域内进行。

本实施例还提供一种基于数据库服务架构维护服务器的系统30,如图3所示,包括数据库服务架构确定引擎31、变更工艺生成引擎32以及任务调度引擎33。

数据库服务架构确定引擎31用于根据输入的待维护服务器的名称和采集的待维护服务器的第一基础信息确定数据库服务架构;其中,所述第一基础信息包括服务的系统视图、系统动态视图、服务器集群信息及群集管理器信息,所述数据库服务架构包括群集、ag、镜像或负载均衡。

变更工艺生成引擎32用于通过所述数据库服务架构和维护命令的类型生成变更工艺的主维护流程,并将所述变更工艺分配至任务调度引擎33。其中,所述维护命令的类型包括salt类命令、cmd类命令、tsql及sp类命令以及第三方插件类命令。

任务调度引擎33用于根据所述维护命令的类型将所述变更工艺分配至运行在所述待维护服务器上的相应的插件。其中,所述插件的类型包括salt插件、cmd插件、db插件以及webinfo插件。

在可选的一种实施方式中,所述插件用于在运行的同时以同步或异步的方式将所述维护命令的执行结果和日志回调至所述任务调度引擎。

在可选的一种实施方式中,上述变更工艺生成引擎还用于获取所述数据库服务架构中待维护服务器的第二基础信息,并根据所述第二基础信息生成变更工艺的次维护流程。其中,所述第二基础信息包括复制分发、负载均衡ip、群集虚ip、aglistener。

在可选的一种实施方式中,上述系统还包括变更工艺调整引擎,用于按照预设条件对所述变更工艺进行调整,并调用上述数据库服务架构确定引擎和上述变更工艺生成引擎。

虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这些仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1