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

系统升级方法、升级系统、计算机设备和可读存储介质与流程

2022-11-23 07:43:33 来源:中国专利 TAG:


1.本发明涉及分布式系统技术领域,尤其涉及一种系统升级方法、升级系统、计算机设备和可读存储介质。


背景技术:

2.面对大型复杂分布式系统,总是会面临各种各样的系统升级,随着分布式、集群、模块化等技术的广泛引用,系统运行和部署的架构越来越复杂,系统升级往往会涉及数据库、sql脚本、配置、目录文件、程序文件等内容的升级,还需要兼顾现场运维对系统的修改,使得升级和回退逻辑越来越复杂,且经常需要定制升级脚本,严重影响成功率,造成升级回退成了必备的保障机制,而回退相比升级更加复杂,且本身存在可靠性和一致性问题。
3.在现有技术中,升级方法包括面向数据的升级方法和面向业务流程的升级方法。前者主要针对的是简单的文件替换和增量sql执行框架,这些技术不能完全覆盖复杂场景下的系统升级,例如系统有过定制、运维修改过系统配置、部分业务涉及复杂的数据迁移、无法通过sql升级等。对于复杂系统,通常采用后者,也即面向业务流程的升级方法进行升级,具体地,由升级程序负责升级主流程,如校验、基线升级以及模块升级等,通过插件来实现业务的各个升级子流程,对于不同的业务,定制不同的插件。这种方法中,升级插件与业务及环境高度耦合,导致升级系统的每个版本时,都需要定制插件,不仅升级复杂,开发维护成本高,还会因插件代码过多而容易出现升级故障。
4.因此,如何降低系统升级的复杂性和故障率,成为本领域亟需解决的技术问题。


技术实现要素:

5.本发明的目的是提供一种系统升级方法、升级系统、计算机设备和可读存储介质,用于解决现有技术中的上述技术问题。
6.一方面,为实现上述目的,本发明提供了一种系统升级方法。
7.该系统升级方法包括:获取状态文件配置,其中,所述状态文件配置包括对若干状态文件进行变更操作的配置,所述状态文件为所述系统运行所在环境中可被修改的系统内容;确定所述状态文件配置中的待执行变更操作;以及根据所述待执行变更操作的状态文件的类型调用升级插件,以使所述升级插件对所述状态文件进行变更。
8.进一步地,所述状态文件包括实现数据库升级时被修改的内容、实现系统配置升级时被修改的内容和实现程序升级时被修改的内容。
9.进一步地,系统升级包括若干升级事务;在获取状态文件配置的步骤之前,所述系统升级方法还包括:解析所述升级事务的事务组件包,其中,所述事务组件包包括所述状态文件配置和事务流程配置,所述事务流程配置包括执行各所述变更操作的次序配置;确定所述待执行变更操作的步骤包括:根据所述事务流程配置确定所述待执行变更操作。
10.进一步地,所述升级插件还用于当所述变更操作执行异常时,生成异常信息,当所述变更操作执行成功时,记录升级日志;所述系统升级方法还包括:调用快照插件,对所述
待执行变更操作的状态文件进行快照,并保存快照文件;在接收到所述异常信息时,遍历所述升级日志,确定所述异常信息所在升级事务中,已被执行变更操作的状态文件,并基于所述已被执行变更操作的状态文件对应的快照文件进行恢复。
11.进一步地,对所述待执行变更操作的状态文件进行快照的步骤包括:当所述状态文件为实现数据库升级时被修改的内容时,通过数据库的checkpoint机制进行快照;当所述状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且所述状态文件小于预设阈值时,通过对状态文件进行备份来进行快照;当所述状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且所述状态文件大于或等于预设阈值时,计算变更操作前后的状态文件的二进制差异进行快照。
12.进一步地,所述系统升级方法还包括:在解析所述升级事务的事务组件包之前,获取并解析升级内容包,其中,所述升级内容包包括全局事务配置和若干所述事务组件包,所述全局事务配置用于对各个所述升级事务进行配置;根据所述全局事务配置创建事务目录,其中,所述升级事务的事务组件包中所有所述变更操作执行完成时,所述升级事务完成;以及在一个所述升级事务完成后,根据所述事务目录解析下一个所述升级事务的事务组件包。
13.进一步地,所述升级内容包还包括全局校验规则和升级结果校验配置,所述事务组件包还包括事务校验规则,所述系统升级方法还包括:在解析所述升级内容包之后,根据所述全局事务配置创建事务目录之前,调用规则校验插件,以根据所述全局校验规则进行校验,其中,当所述全局校验规则校验成功时,执行根据所述全局事务配置创建事务目录的步骤;在解析所述升级事务的事务组件包之后,根据所述事务流程配置确定所述待执行变更操作之前,调用所述规则校验插件,以根据所述事务校验规则进行校验,其中,当所述事务校验规则校验成功时,执行根据所述事务流程配置确定所述待执行变更操作的步骤;在一个所述升级事务完成后,调用所述结果校验插件,以根据所述升级结果校验配置对所述升级事务的升级结果进行校验。
14.另一方面,为实现上述目的,本发明提供了一种升级系统。
15.该升级系统包括状态变更框架和升级插件,其中,所述状态变更框架用于获取状态文件配置,确定所述状态文件配置中的待执行变更操作,以及根据所述待执行变更操作的状态文件的类型调用升级插件,其中,所述状态文件配置包括对若干状态文件进行变更操作的配置,所述状态文件为所述系统运行所在环境中可被修改的系统内容;所述升级插件用于对所述状态文件进行变更。
16.进一步地,系统升级包括若干升级事务,所述升级系统还包括升级框架,所述升级框架用于解析所述升级事务的事务组件包,并提交所述事务组件包至所述状态变更框架,其中,所述事务组件包包括所述状态文件配置和事务流程配置,所述事务流程配置包括执行各所述变更操作的次序配置;所述状态变更框架在确定所述待执行变更操作时,具体执行的步骤包括:根据所述事务流程配置确定所述待执行变更操作。
17.进一步地,所述升级系统还包括事务管理器和快照插件,所述快照插件用于对所述待执行变更操作的状态文件进行快照,并将快照文件提交至所述事务管理器;所述事务管理器用于保存所述快照文件;所述升级插件还用于当所述变更操作执行异常时,生成异常信息,并向所述状态变更框架提交所述异常信息,当所述变更操作执行成功时,向所述事
务管理器提交升级记录;所述事务管理器还用于根据所述升级记录形成升级日志;所述状态变更框架还用于在接收到所述异常信息时,向所述事务管理器发起事务回退;所述事务管理器还用于在接收到事务回退时,遍历所述升级日志,确定所述异常信息所在升级事务中,已被执行变更操作的状态文件,并基于所述已被执行变更操作的状态文件对应的快照文件进行恢复。
18.进一步地,所述升级框架还用于获取并解析升级内容包,其中,所述升级内容包包括全局事务配置和若干所述事务组件包,所述全局事务配置用于对各个所述升级事务进行配置;所述升级框架还用于根据所述全局事务配置,将各个所述升级事务的配置提交至所述事务管理器;所述事务管理器还用于根据各个所述升级事务的配置创建事务目录;所述升级框架还用于当一个所述升级事务完成后,解析下一个所述升级事务的事务组件包,其中,所述升级事务的事务组件包中所有所述变更操作执行完成时,所述升级事务完成。
19.进一步地,所述升级内容包还包括全局校验规则文件和升级结果校验配置,所述事务组件包还包括事务校验规则文件,所述升级系统还包括升级校验框架、规则校验插件、升级结果巡检框架和结果校验插件,所述升级框架还用于在解析所述升级内容包之后,根据所述全局事务配置,将各个所述升级事务的配置提交至所述事务管理器之前,将所述全局校验规则文件提交至升级校验框架;所述升级校验框架用于调用所述规则校验插件;所述规则校验插件用于根据所述全局校验规则文件进行校验,得到第一校验结果,并将所述第一校验结果提交至所述升级框架;所述升级框架还用于当第一校验结果为校验成功时,根据所述全局事务配置,将各个所述升级事务的配置提交至所述事务管理器;所述状态变更框架还用于在获取所述状态文件配置之前,将所述事务校验规则文件提交至所述升级校验框架;所述规则校验插件还用于根据所述事务校验规则文件进行校验,得到第二校验结果,并将所述第二校验结果提交至所述状态变更框架;所述状态变更框架还用于当第二校验结果为校验成功时,获取所述状态文件配置;所述升级框架还用于当一个所述升级事务完成后,提交所述升级结果校验配置至所述升级结果巡检框架;所述升级结果巡检框架用于调用结果校验插件;所述结果校验插件用于根据所述升级结果校验配置对所述升级事务的升级结果进行校验。
20.为实现上述目的,本发明还提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
21.为实现上述目的,本发明还提供计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。
22.本发明提供的系统升级方法、升级系统、计算机设备和可读存储介质,将系统运行所在环境中可被修改的系统内容抽象为状态文件,在系统升级前,形成包括对若干该状态文件进行变更操作配置的状态文件配置,以及对应状态文件类型的升级插件,在进行系统升级时,获取状态文件配置,确定状态文件配置中的待执行变更操作,根据待执行变更操作的状态文件的类型调用升级插件,以使升级插件对状态文件进行变更。通过本发明,将系统升级的逻辑抽象为对状态文件的变更,也即通过对状态文件的变更实现系统升级,使得系统升级过程从业务逻辑中抽离出来,无论系统升级对应怎样的业务逻辑变化,均归结为对状态文件的变更,从而降低系统升级的复杂性,同时,同一类型的状态文件可复用相同的升
级插件,而无需针对业务的不同变化设置插件,减少插件代码,降低系统升级的故障率。
附图说明
23.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
24.图1为本发明实施例一提供的系统升级方法的流程图;
25.图2为本发明实施例二提供的升级包的组成示意图;
26.图3至图5为本发明实施例二提供的升级方法的流程示意图;
27.图6为本发明实施例三提供的升级系统的框图;
28.图7为本发明实施例四提供的计算机设备的硬件结构图。
具体实施方式
29.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
30.实施例一
31.本发明实施例提供了一种系统升级方法,该系统升级方法是一种面向状态的升级方法,将待升级系统运行所在环境中可被修改的系统内容均抽象为状态文件,从而将复杂的系统升级逻辑抽象为对系统上状态文件的变更,使系统升级跳出了业务逻辑本身,简化了系统升级逻辑,达到降低系统升级的复杂性和故障率的效果。可选地,该系统升级方法的执行主体为程序框架,通过调用插件实现状态文件的变更。具体地,图1为本发明实施例一提供的系统升级方法的流程图,如图1所示,该实施例提供的系统升级方法包括如下的步骤s101至步骤s103。
32.步骤s101:获取状态文件配置。
33.其中,状态文件配置包括对若干状态文件进行变更操作的配置,状态文件为系统运行所在环境中可被修改的系统内容。
34.可选地,在一种实施例中,状态文件包括实现数据库升级时被修改的内容、实现系统配置升级时被修改的内容和实现程序升级时被修改的内容。其中,实现数据库升级时被修改的内容包括数据表以及数据库表结构等;实现系统配置升级时被修改的内容包括防火墙规则配置、hosts文件配置、组件配置参数列表等;实现程序升级时被修改的内容包括程序目录结构树等。其中,数据表、防火墙规则配置、程序目录结构树等,每种具体的内容又可视为一种状态文件的类型。
35.在该实施例中,将系统运行所在环境中可被修改的系统内容均抽象为状态文件,因此,当系统升级时,也即系统运行所在环境中的系统内容需要修改时,对系统的升级可抽象为对状态文件的变更,包括对状态文件的增删改。可通过状态文件配置,来配置哪些状态文件需要变更以及如何变更,在该步骤中,获取该状态文件配置。
36.可选地,在一种实施例中,可对每一类型的状态文件提供统一的结构化的配置窗
口,具体可以是结构化文件或配置页面,用于开发人员记录升级针对的状态文件以及状态文件的变更方式,通过该配置窗口,可形成状态文件配置,有利于统一一线运维和系统升级对系统文件/配置等状态的修改入口和模式,可大大降低现场运维定制修改和版本升级的冲突。
37.步骤s102:确定状态文件配置中的待执行变更操作。
38.当状态文件配置包括对两个以上的状态文件进行变更操作的配置时,该步骤可被执行多次,也即,通过遍历状态文件配置,确定当前需要执行的变更操作,也即待执行变更操作,然后执行下述步骤s103。
39.步骤s103:根据待执行变更操作的状态文件的类型调用升级插件,以使升级插件对状态文件进行变更。
40.对应状态文件的类型,预置对应的升级插件,使得同一类型的状态文件可复用相同的升级插件,例如,对应表征数据表的状态文件,设置可使数据表变更的升级插件,对应表征防火墙规则配置的状态文件,设置可使防火墙规则配置变更的升级插件。从而,在该步骤s103中,针对每一待执行变更操作,根据待执行变更操作的状态文件的类型调用相应的升级插件,以使该升级插件对状态文件进行变更。通过步骤s102和步骤s103的交替执行,完成对状态文件配置中所配置的状态文件的变更。
41.为了方便理解该实施例基于状态文件的系统升级机制,下表列举出系统升级常见的相关操作所对应的状态文件和状态文件的变更操作类型,以及与现有技术中的原始逻辑和原始实现方式的比对:
[0042][0043][0044]
在该实施例提供的系统升级方法中,将系统运行所在环境中可被修改的系统内容抽象为状态文件,在系统升级前,形成包括对若干该状态文件进行变更操作配置的状态文件配置,以及对应状态文件类型的升级插件,在进行系统升级时,获取状态文件配置,确定状态文件配置中的待执行变更操作,根据待执行变更操作的状态文件的类型调用升级插
件,以使升级插件对状态文件进行变更。采用该实施例提供的系统升级方法,将系统升级的逻辑抽象为对状态文件的变更,也即通过对状态文件的变更实现系统升级,使得系统升级过程从业务逻辑中抽离出来,无论系统升级对应怎样的业务逻辑变化,均归结为对状态文件的变更,从而降低系统升级的复杂性,同时,同一类型的状态文件可复用相同的升级插件,而无需针对业务的不同变化设置插件,减少插件代码,降低系统升级的故障率。
[0045]
可选地,在一种实施例中,系统升级内容包括若干升级事务;在获取状态文件配置的步骤之前,系统升级方法还包括:解析升级事务的事务组件包,其中,事务组件包包括状态文件配置和事务流程配置,事务流程配置包括执行各变更操作的次序配置;确定待执行变更操作的步骤包括:根据事务流程配置确定待执行变更操作。
[0046]
具体而言,为了保证系统升级后的正常运行,将系统升级内容逻辑划分为若干升级事务,一个升级事务对应一个事务组件包,各个事务组件包之间相互独立,同一个升级事务中的状态文件变更操作相互关联。在事务组件包中设置状态文件配置和事务流程配置,通过事务流程配置,配置状态文件配置中执行各变更操作的次序,基于此,在上述步骤s102中,确定待执行变更操作时,按照事务流程配置进行确定。
[0047]
可选地,在一种实施例中,升级插件还用于当变更操作执行异常时,生成异常信息,当变更操作执行成功时,记录升级日志;系统升级方法还包括:调用快照插件,对待执行变更操作的状态文件进行快照,并保存快照文件;在接收到异常信息时,遍历升级日志,确定异常信息所在升级事务中,已被执行变更操作的状态文件,并基于已被执行变更操作的状态文件对应的快照文件进行恢复。
[0048]
具体而言,被调用的升级插件若能够正常完成变更操作,也即变更操作执行成功,形成升级记录,记录在升级日志中;在升级过程中,调用的升级插件若在执行变更操作的过程中出现故障时,也即变更操作执行异常,此时,生成异常信息。在接收到异常信息时,进行事务回退。
[0049]
其中,可通过快照插件对待执行变更操作的状态文件进行快照,形成快照文件,异常信息可包括其所在升级事务的事务id,在执行事务回退时,通过异常信息确定出其所在的升级事务的事务id,然后遍历升级日志确定出该事务id下已被执行变更操作的状态文件,再获取这些状态文件对应的快照文件,即可实现对该事务id下已被执行变更操作的状态文件的恢复,实现该升级事务的回退。
[0050]
采用该实施例提供的系统升级方法,当变更操作执行异常时,将该变更操作所在的升级事务全部回退,进一步保证系统的正常运行,当变更操作执行成功时记录升级日志,能够快速准确地实现升级事务的全部回退。同时,基于快照文件的方式,可有效解决现有技术中配置无法回退的问题。
[0051]
可选地,在一种实施例中,对待执行变更操作的状态文件进行快照的步骤包括:当状态文件为实现数据库升级时被修改的内容时,通过数据库的checkpoint机制进行快照;当状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且状态文件小于预设阈值时,通过对状态文件进行备份来进行快照;当状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且状态文件大于或等于预设阈值时,计算变更操作前后的状态文件的二进制差异进行快照。
[0052]
具体而言,依据状态文件的内容和大小,设置不同的快照插件,以采用不同的快照
实现方式完成对状态文件的快照,具体包括如下几种:
[0053]
数据库快照:数据库自带的checkpoint机制,使用此快照可避免对数据库文件进行全量备份,有利于快速恢复,避免不必要的冗余操作;
[0054]
文件备份快照:通过对状态文件进行备份来实现建立快照,适用于较小的配置或程序文件,有利于快速恢复;
[0055]
文件差异快照:对升级前后状态文件的二进制差异进行保存,适用于较大的配置或程序文件,从而在恢复时,按照二进制差异块进行逆向替换。
[0056]
可选地,在一种实施例中,系统升级方法还包括:在解析升级事务的事务组件包之前,获取并解析升级内容包,其中,升级内容包包括全局事务配置和若干事务组件包,全局事务配置用于对各个升级事务进行配置;根据全局事务配置创建事务目录,其中,升级事务的事务组件包中所有变更操作执行完成时,升级事务完成;以及在一个升级事务完成后,根据事务目录解析下一个升级事务的事务组件包。
[0057]
具体地,将系统升级内容逻辑划分为若干升级事务,通过设置全局事务配置对各个升级事务进行配置,可以根据各个升级事务的配置创建事务目录,包括事务id,事务快照目录以及升级日志等,以对系统升级的各个升级事务进行统一的管理。
[0058]
可选地,在一种实施例中,升级内容包还包括全局校验规则和升级结果校验配置,事务组件包还包括事务校验规则,系统升级方法还包括:在解析升级内容包之后,根据全局事务配置创建事务目录之前,调用规则校验插件,以根据全局校验规则进行校验,其中,当全局校验规则校验成功时,执行根据全局事务配置创建事务目录的步骤;在解析升级事务的事务组件包之后,根据事务流程配置确定待执行变更操作之前,调用规则校验插件,以根据事务校验规则进行校验,其中,当事务校验规则校验成功时,执行根据事务流程配置确定待执行变更操作的步骤;在一个升级事务完成后,调用结果校验插件,以根据升级结果校验配置对升级事务的升级结果进行校验。
[0059]
具体而言,在升级内容包中封装全局校验规则和升级结果校验配置,在事务组件包中封装事务校验规则,预先设置规则校验插件和结果校验插件,以在系统升级开始前通过调用规则校验插件按照全局校验规则进行升级前的校验,在每个升级事务开始前,通过调用规则校验插件按照事务校验规则进行升级事务前的校验,在每个升级事务完成后通过调用结果校验插件按照升级结果校验配置进行升级后的校验。
[0060]
实施例二
[0061]
在上述实施例一的基础上,该实施例二为一种优选的实施例,提供一种优选的系统升级方法,以对ngsoc系统(也即态势感知与安全运营平台)为例的系统进行系统升级,当然,可以理解的是,该实施例二提供的系统升级方法并不限于ngsoc系统。图2为本发明实施例二提供的升级包的组成示意图,图3至图5为本发明实施例二提供的升级方法的流程示意图。
[0062]
如图2至5所示,通过打包工具获取ngsoc系统升级相关的全局配置和各模块的增量升级内容,并按指定目录结构生成文件压缩包,也即得到升级包,该升级包包括升级程序包和升级内容包。
[0063]
其中,升级程序包包括各程序框架以及插件。通过程序框架对升级内容包进行解析、校验、执行升级和结果检查等,具体包括升级框架、状态变更框架、升级校验框架、升级
结果巡检框架和事务管理器。插件包括升级插件、快照插件、规则校验插件、结果校验插件。升级内容包包括全局事务配置、全局校验规则、升级结果校验配置以及若干事务组件包。事务组件包包括状态文件配置、事务流程配置和事务校验规则。
[0064]
升级框架(uf)为升级主流程,负责整个升级流程的控制,包括升级内容包的解析、事务组件包的解析和事务流程配置的解析。
[0065]
状态变更框架(scuf)负责解析升级内容包中的各事务组件包中的状态文件配置,并按事务流程配置,依次调用升级插件,执行状态文件配置中对状态文件的变更操作,其中程序文件目录、数据库表、es模板、系统配置、业务参数配置等都可以视为不同类型的状态文件,如需要部署目录下的某个程序文件,则可视为对“目录树状态文件”中的某一条记录的修改。
[0066]
升级校验框架(uvf)负责调用规则校验插件,执行升级前的全局校验,和升级事务前对不同种类状态文件内容的不同规则的校验。
[0067]
升级结果巡检框架(urcf)负责调用结果校验插件,以通过一系列命令和参数配置,对升级结果进行验证。
[0068]
事务管理器,负责按照全局事务配置对整个系统升级过程划分为若干独立升级事务,对升级事务内的状态文件的变更操作进行原子化升级和回退,负责调用快照插件,在升级过程中创建状态文件变更前的快照文件,以及在异常产生后能够快速恢复操作。
[0069]
升级扩展插件(uep)包括升级插件、规则校验插件和结果校验插件,实现各种状态文件的内容校验、变更维护、变更记录维护等;不同类型的状态文件的变更由不同的升级插件负责,如数据库插件、程序文件部署插件、系统环境配置插件、业务配置参数维护插件等,同一种类型的状态文件,可复用一个插件。
[0070]
通过升级程序包对升级内容包中内容的操作,实现对ngsoc系统的升级,系统升级方法的具体流程如下:
[0071]

升级框架获取并解析升级内容包,解析失败则退出,解析成功则继续。
[0072]
升级内容包包括全局事务配置、若干事务组件包、全局校验规则文件和升级结果校验配置。事务组件包包括状态文件配置、事务流程配置和事务校验规则文件。全局事务配置用于对各个升级事务进行配置,状态文件配置包括对若干状态文件进行变更操作的配置,状态文件为所述系统运行所在环境中可被修改的系统内容事务流程配置包括执行各变更操作的次序配置。
[0073]

升级框架解析全局校验规则文件,解析失败则退出,成功则继续。
[0074]

升级框架将全局校验规则文件提交至升级校验框架,升级校验框架调用规则校验插件执行校验,校验不通过则退出,通过则继续;
[0075]

升级框架解析全局事务配置,解析失败则退出,成功则继续;
[0076]

升级框架遍历全局事务配置,创建事务对象,将各个升级事务的配置提交至事务管理器,事务管理器创建事务快照目录,包括事务id录和执行日志等。
[0077]

升级框架解析事务对应的事务组件包;
[0078]

升级框架提交事务组件包至状态变更框架,以执行升级事务,状态变更框架在执行升级事务之前,先执行升级前的校验,通过升级校验框架调用规则校验插件,按规则执行校验;
[0079]

在校验通过后,状态变更框架获取状态文件配置,遍历状态文件配置中的待执行变更操作;
[0080]

状态变更框架根据待执行变更操作的状态文件的类型调用升级插件,以进行状态文件的变更;
[0081]

快照插件对状态文件创建快照,并将快照提交至事务管理器进行保存,记录快照记录;
[0082]
升级插件对状态文件进行变更,执行变更操作;
[0083]
升级插件执行成功,则提交升级记录至事务管理器,以使事务管理器记录升级日志,异常则生成异常信息,并提交至状态变更框架;
[0084]
升级插件执行成功后,继续下一个状态文件的变更,状态变更框架完成升级事务,则返回升级框架,继续下一个升级事务的处理;直至所有升级事务执行完成,也即系统升级完成;
[0085]
当升级异常,状态变更框架收到异常信息,向事务管理器发起事务回退,事务管理器遍历升级日志,获取相关状态文件的快照文件依次进行快照恢复,直至所有状态文件恢复完成,则事务回退完成。
[0086]
实施例三
[0087]
对应于上述实施例一和实施例二,本发明实施例三提供了一种升级系统,相应的技术特征细节和对应的技术效果可参考上述实施例一和实施例二,在该实施例中不再赘述。图6为本发明实施例三提供的升级系统的框图,如图6所示,该升级系统包括状态变更框架a301和升级插件b301。
[0088]
其中,所述状态变更框架a301用于获取状态文件配置,确定所述状态文件配置中的待执行变更操作,以及根据所述待执行变更操作的状态文件的类型调用升级插件b301,其中,所述状态文件配置包括对若干状态文件进行变更操作的配置,所述状态文件为所述系统运行所在环境中可被修改的系统内容;所述升级插件b301用于对所述状态文件进行变更。
[0089]
可选地,在一种实施例中,系统升级包括若干升级事务,所述升级系统还包括升级框架a302,所述升级框架a302用于解析所述升级事务的事务组件包,并提交所述事务组件包至所述状态变更框架a301,其中,所述事务组件包包括所述状态文件配置和事务流程配置,所述事务流程配置包括执行各所述变更操作的次序配置;所述状态变更框架a301在确定所述待执行变更操作时,具体执行的步骤包括:根据所述事务流程配置确定所述待执行变更操作。
[0090]
可选地,在一种实施例中,所述状态文件包括实现数据库升级时被修改的内容、实现系统配置升级时被修改的内容和实现程序升级时被修改的内容。
[0091]
可选地,在一种实施例中,所述升级系统还包括事务管理器a303和快照插件b302。所述快照插件b302用于对所述待执行变更操作的状态文件进行快照,并将快照文件提交至所述事务管理器a303;所述事务管理器a303用于保存所述快照文件;所述升级插件b301还用于当所述变更操作执行异常时,生成异常信息,并向所述状态变更框架a301提交所述异
常信息,当所述变更操作执行成功时,向所述事务管理器a303提交升级记录;所述事务管理器a303还用于根据所述升级记录形成升级日志;所述状态变更框架a301还用于在接收到所述异常信息时,向所述事务管理器a303发起事务回退;所述事务管理器a303还用于在接收到事务回退时,遍历所述升级日志,确定所述异常信息所在升级事务中,已被执行变更操作的状态文件,并基于所述已被执行变更操作的状态文件对应的快照文件进行恢复。
[0092]
可选地,在一种实施例中,快照插件b302对所述待执行变更操作的状态文件进行快照时,具体执行的步骤包括:当所述状态文件为实现数据库升级时被修改的内容时,通过数据库的checkpoint机制进行快照;当所述状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且所述状态文件小于预设阈值时,通过对状态文件进行备份来进行快照;当所述状态文件为实现系统配置升级时被修改的内容或实现程序升级时被修改的内容,且所述状态文件大于或等于预设阈值时,计算变更操作前后的状态文件的二进制差异进行快照。
[0093]
可选地,在一种实施例中,所述升级框架a302还用于获取并解析升级内容包,其中,所述升级内容包包括全局事务配置和若干所述事务组件包,所述全局事务配置用于对各个所述升级事务进行配置;所述升级框架a302还用于根据所述全局事务配置,将各个所述升级事务的配置提交至所述事务管理器a303;所述事务管理器a303还用于根据各个所述升级事务的配置创建事务目录;所述升级框架a302还用于当一个所述升级事务完成后,解析下一个所述升级事务的事务组件包,其中,所述升级事务的事务组件包中所有所述变更操作执行完成时,所述升级事务完成。
[0094]
可选地,在一种实施例中,所述升级内容包还包括全局校验规则文件和升级结果校验配置,所述事务组件包还包括事务校验规则文件,所述升级系统还包括升级校验框架a304、规则校验插件b303、升级结果巡检框架a305和结果校验插件b304。
[0095]
所述升级框架a302还用于在解析所述升级内容包之后,根据所述全局事务配置,将各个所述升级事务的配置提交至所述事务管理器a303之前,将所述全局校验规则文件提交至升级校验框架a304;所述升级校验框架a304用于调用所述规则校验插件b303;所述规则校验插件b303用于根据所述全局校验规则文件进行校验,得到第一校验结果,并将所述第一校验结果提交至所述升级框架a302;所述升级框架a302还用于当第一校验结果为校验成功时,根据所述全局事务配置,将各个所述升级事务的配置提交至所述事务管理器a303;所述状态变更框架a301还用于在获取所述状态文件配置之前,将所述事务校验规则文件提交至所述升级校验框架a304;所述规则校验插件b303还用于根据所述事务校验规则文件进行校验,得到第二校验结果,并将所述第二校验结果提交至所述状态变更框架a301;所述状态变更框架a301还用于当第二校验结果为校验成功时,获取所述状态文件配置;所述升级框架a302还用于当一个所述升级事务完成后,提交所述升级结果校验配置至所述升级结果巡检框架a305;所述升级结果巡检框架a305用于调用结果校验插件b304;所述结果校验插件b304用于根据所述升级结果校验配置对所述升级事务的升级结果进行校验。
[0096]
实施例四
[0097]
本实施例还提供一种计算机设备,如可以执行程序的智能手机、平板电脑、笔记本电脑、台式计算机、机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图7所示,本实施例的计算机设备01至
少包括但不限于:可通过系统总线相互通信连接的存储器012、处理器011,如图7所示。需要指出的是,图7仅示出了具有组件存储器012和处理器011的计算机设备01,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。
[0098]
本实施例中,存储器012(即可读存储介质)包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器012可以是计算机设备01的内部存储单元,例如该计算机设备01的硬盘或内存。在另一些实施例中,存储器012也可以是计算机设备01的外部存储设备,例如该计算机设备01上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flashcard)等。当然,存储器012还可以既包括计算机设备01的内部存储单元也包括其外部存储设备。本实施例中,存储器012通常用于存储安装于计算机设备01的操作系统和各类应用软件,例如实施例二的升级系统的程序代码等。此外,存储器012还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0099]
处理器011在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器011通常用于控制计算机设备01的总体操作。本实施例中,处理器011用于运行存储器012中存储的程序代码或者处理数据,例如系统升级方法等。
[0100]
实施例五
[0101]
本实施例还提供一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,其上存储有计算机程序,程序被处理器执行时实现相应功能。本实施例的计算机可读存储介质用于存储升级系统,被处理器执行时实现实施例一的系统升级方法。
[0102]
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0103]
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0104]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
[0105]
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

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

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

相关文献