一种服务器在线升级方法及装置与流程

文档序号:26139030发布日期:2021-08-03 14:22阅读:111来源:国知局
一种服务器在线升级方法及装置与流程

本公开涉及计算机技术领域,尤其涉及一种服务器在线升级方法及装置。



背景技术:

随着互联网应用技术的快速发展,云服务应用的范围越来越广泛。为了实现新的功能及解决应用中遇到的问题,不可避免地要对系统进行升级。

传统的人工升级方法需要对平台逐个进行升级,其效率非常低,出错的概率较高。如果少量的勉强可以进行,如果数量达到成千上万台,甚至更多,则该方法不具备可操作性。



技术实现要素:

本公开实施例提供一种服务器在线升级方法及装置,能够解决现有技术中对服务器批量升级效率低下的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种服务器在线升级方法,该方法包括:

获取升级文件,所述升级文件包括版本校验文件、升级脚本和目标升级版本的程序;

接收用户设置的升级策略,所述升级策略包括所述目标升级版本的版本号,升级开始时间和至少一个升级目标用户;

根据所述升级策略,将所述升级文件发送给所述至少一个升级目标用户对应的至少一个虚拟机,并启动所述升级脚本进行升级。

本公开实施例提供的服务器在线升级方法,首先获取升级文件,目标升级版本升级文件包括版本校验文件、升级脚本和目标升级版本的程序;然后接收用户设置的升级策略,目标升级版本升级策略包括目标升级版本目标升级版本的版本号,升级开始时间和至少一个升级目标用户;最后根据目标升级版本升级策略,将目标升级版本升级文件发送给目标升级版本至少一个升级目标用户对应的至少一个虚拟机,并启动目标升级版本升级脚本进行升级。本公开提供的服务器在线升级方法,通过在线批量升级的方式,减少维护工程师的工作量以及出错的概率,节约管理成本。

在一个实施例中,在所述启动所述升级脚本进行升级之前,上述方法还包括:

检查所述至少一个升级目标用户是否有现有版本软件安装目录下的校验文件生成软件;

在检查结果为是时,检查所述校验文件生成软件得到的校验文件是否与所述版本校验文件相同;

在检查结果为是时,检查所述至少一个升级目标用户的操作系统类型是否与所述目标升级版本的程序所需的操作系统类型相符;

在检查结果为是时,检查所述至少一个升级目标用户的操作系统版本是否高于或等于所述目标升级版本的程序所需的操作系统版本的最低要求;

在检查结果为是时,检查所述至少一个升级目标用户的运行库是否是所述目标升级版本的程序需要的运行库;

在检查结果为是时,启动所述升级脚本进行升级。

本公开实施例通过上述方法,在升级之前对升级目标用户进行检查,保证了升级能够正常顺利进行。

在一个实施例中,在所述检查所述至少一个升级目标用户是否有现有版本软件安装目录下的校验文件生成软件之后,上述方法还包括:

在检查结果为否时,显示升级失败信息;

在所述检查所述校验文件生成软件得到的校验文件是否与所述版本校验文件相同之后,上述方法还包括:

在检查结果为否时,显示升级失败信息;

在所述检查所述至少一个升级目标用户的操作系统类型是否与所述目标升级版本的程序所需的操作系统类型相符之后,上述方法还包括:

在检查结果为否时,显示升级失败信息;

在所述检查所述至少一个升级目标用户的操作系统版本是否高于或等于所述目标升级版本的程序所需的操作系统版本的最低要求之后,上述方法还包括:

在检查结果为否时,显示升级失败信息。

本公开实施例通过上述方法,在检查中出现异常情况时,给出显示信息,方便用户及时获取升级失败的原因。

在一个实施例中,所述检查所述至少一个升级目标用户的运行库是否是所述目标升级版本的程序需要的运行库包括:

检查所述至少一个升级目标用户是否有运行库;

在检查结果为是时,检查所述至少一个升级目标用户的运行库是否符合所述目标升级版本;

在检查结果为否时,安装所述目标升级版本的程序需要的运行库;

在所述检查所述至少一个升级目标用户的运行库是否符合所述目标升级版本之后,上述方法还包括:

在检查结果为否时,卸载所述至少一个升级目标用户的运行库;

安装所述目标升级版本的程序需要的运行库。

在一个实施例中,在所述启动所述升级脚本进行升级之前,上述方法还包括:

对所述至少一个升级目标用户的业务数据进行备份,所述业务数据包括配置文件和数据库文件;

其中,对所述至少一个升级目标用户的配置文件进行备份包括:

获取所述至少一个升级目标用户的现有版本和所述目标升级版本的版本号;

根据所述目标升级版本的版本号创建目标文件;

获取所述至少一个升级目标用户的现有版本的配置文件;

将所述至少一个升级目标用户的现有版本的配置文件字段写入所述目标升级版本的配置文件的相应字段。

本公开实施例通过以上方法,对升级目标用户的现有版本的业务数据进行备份,以确保升级后保留用户的所有数据,不影响用户使用。

在一个实施例中,将所述至少一个升级目标用户的现有版本的配置文件字段写入所述目标升级版本的配置文件的相应字段包括:

判断所述至少一个升级目标用户的现有版本的配置文件中相对于所述目标升级版本是否有新增字段;

在判断结果为是时,将所述新增字段的值写入所述目标文件;

在判断结果为否时,判断所述至少一个升级目标用户的现有版本的配置文件中相对于所述目标升级版本是否有拆分字段;

在判断结果为是时,获取所述拆分字段的值,对所述拆分字段的值进行拆分,将拆分后的值写入所述目标文件;

在判断结果为否时,判断所述至少一个升级目标用户的现有版本的配置文件中相对于所述目标升级版本是否有合并字段;

在判断结果为是时,获取所述合并字段的值,对所述合并字段的值进行合并,将合并后的值写入所述目标文件;

在判断结果为否时,获取所述至少一个升级目标用户的现有版本的配置文件字段,将所述至少一个升级目标用户的现有版本的配置文件字段写入所述目标文件。

本公开实施例通过以上方法,可以在目标升级版本不兼容现有版本的配置文件时,通过判断合并字段、拆分字段、新增字段的情况,将现有版本格式转化为目标升级版本格式。

在一个实施例中,上述方法还包括:

判断所述至少一个升级目标用户的现有版本的配置文件字段是否全部写入所述目标文件;

在判断结果为是时,启动所述升级脚本进行升级;

在判断结果为否时,对所述至少一个升级目标用户的业务数据重新进行备份。

本公开实施例通过以上方法,进一步对配置文件备份的完整性进行检查,进一步保证了用户数据备份的完整性。

在一个实施例中,在所述目标升级版本高于所述至少一个升级目标用户的现有版本两级及以上时,所述启动所述升级脚本进行升级包括:

启动所述升级脚本对所述至少一个升级目标用户进行逐级升级。

本公开实施例通过以上方法,通过逐级升级的方式,减少了升级的复杂度,提高了升级的成功率。

在一个实施例中,根据所述升级策略,将所述升级文件发送给所述至少一个升级目标用户对应的至少一个虚拟机,并启动所述升级脚本进行升级包括:

将所述升级策略发送给代理服务器,以使所述代理服务器将所述升级文件发送给所述至少一个升级目标用户对应的至少一个虚拟机,并启动所述升级脚本进行升级。

根据本公开实施例的第二方面,提供一种服务器在线升级装置,包括:获取模块、接收模块和处理模块;

所述获取模块,用于获取升级文件,所述升级文件包括版本校验文件、升级脚本和目标升级版本的程序;

所述接收模块,用于接收用户设置的升级策略,所述升级策略包括所述目标升级版本的版本号,升级开始时间和至少一个升级目标用户;

所述处理模块,用于根据所述升级策略,将所述升级文件发送给所述至少一个升级目标用户对应的至少一个虚拟机,并启动所述升级脚本进行升级。

本公开实施例提供的服务器在线升级装置,包括获取模块、接收模块和处理模块;获取模块获取升级文件,升级文件包括版本校验文件、升级脚本和目标升级版本的程序;接收模块接收用户设置的升级策略,升级策略包括目标升级版本的版本号,升级开始时间和至少一个升级目标用户;处理模块根据升级策略,将升级文件发送给至少一个升级目标用户对应的至少一个虚拟机,并启动升级脚本进行升级。本公开提供的服务器在线升级装置,通过在线批量升级的方式,减少维护工程师的工作量以及出错的概率,节约管理成本。

根据本公开实施例的第三方面,提供一种服务器在线升级设备,所述服务器在线升级设备包括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述指令由所述处理器加载并执行以实现上述任一项所述的服务器在线升级方法中所执行的步骤。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述存储介质中存储有至少一条计算机指令,所述指令由处理器加载并执行以实现上述任一项所述的服务器在线升级方法中所执行的步骤。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种服务器在线升级方法的流程图;

图2是本公开实施例提供的服务器在线升级方法的流程示意图;

图3是本公开实施例提供的一种服务器在线升级方法中升级脚本执行的流程图;

图4是本公开实施例提供的一种服务器在线升级方法中检查升级文件的流程图;

图5是本公开实施例提供的一种服务器在线升级方法中配置文件备份的流程图;

图6是本公开实施例提供的一种服务器在线升级装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开实施例提供一种服务器在线升级方法,如图1所示,该服务器在线升级方法包括以下步骤:

步骤101、获取升级文件,升级文件包括版本校验文件、升级脚本和目标升级版本的程序;

具体的,本公开服务器可以是cloudaccess云服务器;管理员上传升级所需的文件,升级所需文件主要包括版本校验文件,升级脚本和新版本的程序。

步骤102、接收用户设置的升级策略,升级策略包括目标升级版本的版本号,升级开始时间和至少一个升级目标用户;

实际使用中,管理员配置升级策略,主要包括升级的目标版本,升级开始时间,升级的目标用户,默认可选择对全部用户,提供选择部分用户的功能。

步骤103、根据升级策略,将升级文件发送给至少一个升级目标用户对应的至少一个虚拟机,并启动升级脚本进行升级。

具体的,根据升级策略,在到达升级开始时间时,启动升级。升级脚本执行业务数据升级,主要包括配置文件和数据库文件,先对数据进行备份,程序升级完成后,将业务数据还原,从用户的角度讲,如果不关心版本间的细节差异或者不去查看版本号,无法直观地感觉到版本的升级;

升级脚本执行升级程序升级,先卸载原版本程序,再安装新版本的程序,由程序的开发者来保证新旧版本的兼容性。

在一个实施例中,在启动升级脚本进行升级之前,上述方法还包括:

检查至少一个升级目标用户是否有现有版本软件安装目录下的校验文件生成软件;

在检查结果为是时,检查校验文件生成软件得到的校验文件是否与版本校验文件相同;

在检查结果为是时,检查至少一个升级目标用户的操作系统类型是否与目标升级版本的程序所需的操作系统类型相符;

在检查结果为是时,检查至少一个升级目标用户的操作系统版本是否高于或等于目标升级版本的程序所需的操作系统版本的最低要求;

在检查结果为是时,检查至少一个升级目标用户的运行库是否是目标升级版本的程序需要的运行库;

在检查结果为是时,启动升级脚本进行升级。

本公开实施例通过上述方法,在升级之前对升级目标用户进行检查,保证了升级能够正常顺利进行。

在一个实施例中,在检查至少一个升级目标用户是否有现有版本软件安装目录下的校验文件生成软件之后,上述方法还包括:

在检查结果为否时,显示升级失败信息;

在检查校验文件生成软件得到的校验文件是否与版本校验文件相同之后,上述方法还包括:

在检查结果为否时,显示升级失败信息;

在检查至少一个升级目标用户的操作系统类型是否与目标升级版本的程序所需的操作系统类型相符之后,上述方法还包括:

在检查结果为否时,显示升级失败信息;

在检查至少一个升级目标用户的操作系统版本是否高于或等于目标升级版本的程序所需的操作系统版本的最低要求之后,上述方法还包括:

在检查结果为否时,显示升级失败信息。

本公开实施例通过上述方法,在检查中出现异常情况时,给出显示信息,方便用户及时获取升级失败的原因。

在一个实施例中,检查至少一个升级目标用户的运行库是否是目标升级版本的程序需要的运行库包括:

检查至少一个升级目标用户是否有运行库;

在检查结果为是时,检查至少一个升级目标用户的运行库是否符合目标升级版本;

在检查结果为否时,安装目标升级版本的程序需要的运行库;

在检查至少一个升级目标用户的运行库是否符合目标升级版本之后,上述方法还包括:

在检查结果为否时,卸载至少一个升级目标用户的运行库;

安装目标升级版本的程序需要的运行库。

在一个实施例中,在启动升级脚本进行升级之前,上述方法还包括:

对至少一个升级目标用户的业务数据进行备份,业务数据包括配置文件和数据库文件;

其中,对至少一个升级目标用户的配置文件进行备份包括:

获取至少一个升级目标用户的现有版本和目标升级版本的版本号;

根据目标升级版本的版本号创建目标文件;

获取至少一个升级目标用户的现有版本的配置文件;

将至少一个升级目标用户的现有版本的配置文件字段写入目标升级版本的配置文件的相应字段。

本公开实施例通过以上方法,对升级目标用户的现有版本的业务数据进行备份,以确保升级后保留用户的所有数据,不影响用户使用。

在一个实施例中,将至少一个升级目标用户的现有版本的配置文件字段写入目标升级版本的配置文件的相应字段包括:

判断至少一个升级目标用户的现有版本的配置文件中相对于目标升级版本是否有新增字段;

在判断结果为是时,将新增字段的值写入目标文件;

在判断结果为否时,判断至少一个升级目标用户的现有版本的配置文件中相对于目标升级版本是否有拆分字段;

在判断结果为是时,获取拆分字段的值,对拆分字段的值进行拆分,将拆分后的值写入目标文件;

在判断结果为否时,判断至少一个升级目标用户的现有版本的配置文件中相对于目标升级版本是否有合并字段;

在判断结果为是时,获取合并字段的值,对合并字段的值进行合并,将合并后的值写入目标文件;

在判断结果为否时,获取至少一个升级目标用户的现有版本的配置文件字段,将至少一个升级目标用户的现有版本的配置文件字段写入目标文件。

本公开实施例通过以上方法,可以在目标升级版本不兼容现有版本的配置文件时,通过判断合并字段、拆分字段、新增字段的情况,将现有版本格式转化为目标升级版本格式。

在一个实施例中,上述方法还包括:

判断至少一个升级目标用户的现有版本的配置文件字段是否全部写入目标文件;

在判断结果为是时,启动升级脚本进行升级;

在判断结果为否时,对至少一个升级目标用户的业务数据重新进行备份。

本公开实施例通过以上方法,进一步对配置文件备份的完整性进行检查,进一步保证了用户数据备份的完整性。

在一个实施例中,在目标升级版本高于至少一个升级目标用户的现有版本两级及以上时,启动升级脚本进行升级包括:

启动升级脚本对至少一个升级目标用户进行逐级升级。

本公开实施例通过以上方法,通过逐级升级的方式,减少了升级的复杂度,提高了升级的成功率。

在一个实施例中,根据升级策略,将升级文件发送给至少一个升级目标用户对应的至少一个虚拟机,并启动升级脚本进行升级包括:

将升级策略发送给代理服务器,以使代理服务器将升级文件发送给至少一个升级目标用户对应的至少一个虚拟机,并启动升级脚本进行升级。

本公开实施例提供的服务器在线升级方法,首先获取升级文件,目标升级版本升级文件包括版本校验文件、升级脚本和目标升级版本的程序;然后接收用户设置的升级策略,目标升级版本升级策略包括目标升级版本目标升级版本的版本号,升级开始时间和至少一个升级目标用户;最后根据目标升级版本升级策略,将目标升级版本升级文件发送给目标升级版本至少一个升级目标用户对应的至少一个虚拟机,并启动目标升级版本升级脚本进行升级。本公开提供的服务器在线升级方法,通过在线批量升级的方式,减少维护工程师的工作量以及出错的概率,节约管理成本。

基于上述图1对应的实施例提供的服务器在线升级方法,本公开另一实施例提出了一种服务器在线升级方法,如图2所示,包括以下步骤:

步骤1、管理员将升级所需的文件上传到文件服务器,升级所需文件主要包括版本校验文件,升级脚本和新版本的程序;

具体的,文件服务器一般为版本服务器。

步骤2、管理员在管理平台上配置升级策略,主要包括升级的目标版本,升级开始时间,升级,升级的目标用户;

实际使用中,默认可选择对全部用户进行升级,同时也提供选择部分用户的功能。

步骤3、管理平台读取用户设置的升级策略,在升级开始时间到时,管理平台通知管理代理启动升级;

步骤4、管理代理根据配置升级策略下载升级所需的文件到服务器本地;

步骤5、管理代理根据配置升级策略启动升级脚本;

步骤6、升级脚本执行业务数据升级,主要包括配置文件和数据库文件,先对业务数据进行备份,程序升级完成后,将业务数据还原;

从用户的角度讲,如果不关心版本间的细节差异或者不去查看版本号,无法直观地感觉到版本的升级;

步骤7、升级脚本执行升级程序升级,先卸载原版本程序,再安装新版本的程序;

本步骤中,新旧版本的兼容性由程序的开发者来进行保证。

步骤6和步骤7合起来是升级脚本的任务,整个升级过程中,升级脚本最为关键,升级脚本执行的流程如图3所示。

其中,升级前检查升级文件,主要包含以下步骤,如图4所示:

(1)检查是否有旧版本的软件:主要是要用到旧版软件安装目录下的校验文件生成软件,如果有,则进行校验,否则升级失败,在日志信息中记录升级失败原因:没有检查到旧版本软件(也就是说,要升级软件,必须有原版本,全新的操作系统上不能进行升级软件,需要手动安装软件);

(2)检查升级文件的完整性:升级脚本通过运行校验文件生成软件得到校验文件,将得到的校验文件同服务器下载的版本校验文件比较,如果相同,则校验成功,进行升级,否则升级失败,在日志信息中记录升级失败原因:升级文件校验失败;

(3)检查操作系统类型:获取操作系统类型,如果当前操作系统类型同软件安装包所需的操作类型相符,则继续升级,否则升级失败,在日志信息中记录升级失败原因:操作系统类型不符合要求;

(4)检查操作系统版本:获取操作系统版本号,如果当前版本号符合安装包所需版本的最低要求,则继续升级,否则升级失败,在日志信息中记录升级失败原因:操作系统版本不符合要求;

(5)检查依赖运行库的版本:检查软件运行依赖的版本库是否安装,如果已经安装,则需要检查版本是否是所需要的版本,如果没有安装,则需要运行脚本进行安装。

升级文件检查无误后,将用户的业务数据进行备份,业务数据主要包括配置文件和数据库文件;

卸载旧版本并安装新版本程序,一般情况下,卸载和安装由软件安装包自动实现,安装包会自动检测是否存在旧版本,如果存在,则先执行卸载操作,再执行安装操作,如果不存在,则直接执行安装操作;

其中,业务数据恢复有三种情况:

(1)新版本兼容旧版本的配置文件,这种情况下数据恢复比较简单,直接进行文件替换即可,这种情况一般通过脚本文件对数据进行恢复。原则上要求新版本对旧版本配置文件的兼容性,但在实际操作中,极有可能由于需求变化很大,或者对配置文件进行整合精简,会出现配置文件不兼容的情况。

(2)新版本不兼容老版本的配置文件,比如配置项有拆分或者合并的操作,再比如数据库的某张表增加了一列属性的操作,这种情况下需要读取配置文件或者数据库的数据,从老版本格式转换为新版本的格式。数据的格式与程序密切相关,数据的备份与恢复方法有软件开发者直接负责实施,这种情况一般通过可执行文件恢复数据。

具体做法是:如图5所示,可执行文件分配了一块存储区域,存储配置文件格式列表,该表记录了所有版本的配置文件格式。程序获取到新版本号和旧版本号后,根据新版本的文件格式创建好文件,然后读取旧版本的配置文件,将旧版本配置文件字段的值写入到新版本配置文件的相应字段,对于新版本中新增的字段取默认值即可,对于拆分出来的字段要分别读取原值,然后写入到新版本配置文件的相应字段。

(3)特殊情况下,如果要跨版本进行升级,则按照逐级升级的方法进行,例如从1.0升级到4.0,不是数据的直接转化,而是按1.0->2.0->3.0->4.0方式升级,这种方案会减少升级复杂度,增加升级时间,但业务数据的数据量通常不是特别大,用户体验差别不大。

最后,升级完成后,根据实际需要对服务器或操作系统进行重启。

本公开实施例提供的服务器在线升级方法,可以对不同操作系统上的软件进行升级,可以跨版本升级,还可以在虚拟机关机的状态下自动启动虚拟机,再进行升级。另外,还可对升级过程进行限制,在某个用户正在使用的时候先对属于该用户的系统跳过升级,等到系统闲置的时候对系统进行升级,升级的过程中保留用户的所有数据,升级完成后保留用户的状态。本公开整个升级结果只能出现两种结果,一是升级成功,二是升级失败,如果升级失败,能够保证系统还原到升级前的状态,不影响用户的正常使用。

基于上述图1和图2对应的实施例中所描述的服务器在线升级方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。

本公开实施例提供一种服务器在线升级装置20,如图6所示,包括:获取模块201、接收模块202和处理模块203;

获取模块201,用于获取升级文件,升级文件包括版本校验文件、升级脚本和目标升级版本的程序;

接收模块202,用于接收用户设置的升级策略,升级策略包括目标升级版本的版本号,升级开始时间和至少一个升级目标用户;

处理模块203,用于根据升级策略,将升级文件发送给至少一个升级目标用户对应的至少一个虚拟机,并启动升级脚本进行升级。

本公开实施例提供的服务器在线升级装置,包括获取模块201、接收模块202和处理模块203;获取模块201获取升级文件,升级文件包括版本校验文件、升级脚本和目标升级版本的程序;接收模块202接收用户设置的升级策略,升级策略包括目标升级版本的版本号,升级开始时间和至少一个升级目标用户;处理模块203根据升级策略,将升级文件发送给至少一个升级目标用户对应的至少一个虚拟机,并启动升级脚本进行升级。本公开提供的服务器在线升级装置,通过在线批量升级的方式,减少维护工程师的工作量以及出错的概率,节约管理成本。

基于上述图1和图2对应的实施例中描述的服务器在线升级方法,本公开另一实施例还提供一种服务器在线升级设备,该服务器在线升级设备包括处理器和存储器,存储器中存储有至少一条计算机指令,该指令由处理器加载并执行以实现上述图1和图2对应的实施例中所描述的服务器在线升级方法。

基于上述图1和图2对应的实施例中所描述的服务器在线升级方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:readonlymemory,rom)、随机存取存储器(英文:randomaccessmemory,ram)、cd-rom、磁带、软盘和光数据存储装置等。该存储介质上存储有至少一条计算机指令,用于执行上述图1和图2对应的实施例中所描述的服务器在线升级方法,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

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