升级程序的方法

文档序号:6554266阅读:268来源:国知局
专利名称:升级程序的方法
技术领域
本发明涉及计算机及通信技术领域,尤其涉及一种统一升级程序的方法。
背景技术
随着软件业的发展,软件业务更新快、版本变化大和版本问题多,导致软件升级成为软件技术支持最大的业务,投入人力资源相当多(>50%)。
目前,在UNIX系统下升级软件需要先开发出新版并给出一个相对上一个版本的升级指导说明书,然后技术支持人员根据升级指导说明书,通过手工输入命令对各软件模块进行升级,通过手工方式对配置文件和参数进行修改,其主要过程如下A、检查备份系统的版本,检查升级所需条件是否满足;B、备份原数据库的数据;C、备份原应用系统的文件;D、备份原应用系统的配置信息;E、停止原应用系统的服务;F、将新版本包解开,覆盖原应用系统的文件;G、利用备份的配置信息,将新版本中的配置文件配置为原应用系统中的值;H、启动原应用系统,进行升级测试;I、如果升级失败,进行手工回滚,回滚包括应用和数据库两方面回滚。
在升级过程中,如果涉及到双机的升级,还需要考虑主备机升级过程的差异性。
以上升级方法主要存以下不足1、由于版本的配套要求高而导致联动升级,在没有自动或者半自动升级工具的情况下,只能通过手工输入命令或手工修改来完成升级,而每个软件模块都有不同的SHELL程序,其配置文件和参数也不相同。因此,通过手工方式完成不仅操作复杂,而且速度也慢。
2、每一次升级都依赖于个人,每个人的升级步骤都有可能不同,升级过程复杂而容易出错,导致升级经常失败,所以这种升级的可靠性较差;同时,需要多方的人力支持,其升级成本也高。
3、在升级失败后,很难通过手工恢复到升级前的状态。

发明内容
本发明提供一种升级程序的方法,以解决现有技术在UNIX系统下升级程序因需要通过手工输入大量的操作命令而存在操作复杂、升级效率低和可靠性差的问题。
本发明提供以下技术方案一种升级程序的方法,用于在UNIX操作系统下升级程序;该方法包括如下步骤A、获取与被升级程序相关的环境信息;B、备份被升级程序、数据库和所述环境信息;C、利用所述升级包程序覆盖所述被升级程序和升级数据库,并根据备份的环境信息更新升级后的配置文件;D、确定本次升级是否成功,若是则结束升级,否则,利用备份将系统恢复到升级前的状态。
其中步骤A中所述环境信息包括系统信息和应用程序信息;所述系统信息从系统文件和系统命令中获取,所述应用程序信息从应用程序的配置文件中获取。
在步骤C之前还包括步骤B1、根据被升级程序的版本信息确定对应的升级程序包。
在步骤C之前还包括步骤
B2、停止与被升级程序相关并正在运行的程序。
在步骤C之前还包括步骤B3、停止待升级的热双机或冷双机。
在步骤D中,根据用户定义的进程是否重新启动或日志文件是否有异常记录来判断升级是否成功。
在步骤C中,还添加用于外部测试的浮动IP地址,在步骤D中,还根据外部测试来正确升级是否成功。
本发明统一了UNIX平台下的软件升级过程,程序的环境信息和配置信息的更新由程序自动完成,无须手动干预,不仅简化了操作,而且也提高了升级的可靠性和可维护性。
根据实际统计,每个局点平均每年升级6.5次,采用现有技术每次人工升级(包括准备工作)的时间为2.5人天/局点,而使用本发明,每次升级(包括准备工作)则只需要0.5天,可以节省80%的工作量。


图1为本发明升级的示意图;图2为本发明升级的流程图;图3为单机升级的流程图;图4为热双机升级的流程图;图5为冷双机升级的流程图。
具体实施例方式
在UNIX系统下,根据用户特征可将升级程序可以分为三层第一层为升级标准步骤层,用户为最终升级用户;第二层为产品二次开发层,用户为软件产品的开发人员;第三层为升级函数层,提供升级过程中的原子功能,如图1所示。对最终用户而言,通过输入几条简单的命令即可完成升级,对升级产品的开发人员而言,可以利用底层提供的原子功能完成自己的升级过程。底层的原子功能则屏蔽了操作系统的差异,向上提供操作系统无差别且具有一定功能的接口。
参阅图2所示,升级程序的主要过程如下步骤1获取环境信息。如环境信息中最重要的安装目录、用户和配置信息等,以便于在升级过程中同步更新到新版本中。
环境信息包括应用程序信息和系统信息,系统信息从系统文件和系统命令中获取,如双机信息、数据库配置信息等。应用程序信息从应用程序的配置文件中获取,如应用程序的名字,应用程序配置文件中配置项的值,应用程序的用户信息等。
步骤2确定升级包。将被升级程序的版本与定义升级包的配置文件中定义的版本信息进行比较,确定用于对程序进行升级的升级包。
步骤3备份被升级程序及其相关的环境信息。
备份包括数据库的备份和应用程序的备份,其中,备份数据库时先进行0级备份,然后再进行1级备份。备份应用程序包括应用程序备份和应用程序配置信息的备份,应用程序备份主要备份文件、目录等,备份的配置信息是需要更新到升级后的系统中的配置信息,以避免升级后用户要重新配置一遍系统才能正常工作,如用户端口,IP地址等。
步骤4进行实际的升级操作,即拷贝新的程序以覆盖旧的程序,并从旧的环境中获取必要的信息并更新到新的配置文件中去。
在升级的实际操作前,还检测是否有与被升级程序相关的应用程序在运行,若有则停止应用程序的运行。检测是否有相关程序在运行可通过执行外部脚本来检测,不同的应用程序其检测标准可能不同。
步骤5检测升级是否成功,如果升级成功,则结束本次升级(步骤5-2);否则进入回滚状态,即利用备份将被升级程序还原到升级前的状态(步骤5-1)。
一般是通过检查用户定义的进程是否重新启动或日志文件是否有异常记录来判断升级是否成功,有时为了满足不同产品特殊的需求,还可以附加一些特殊的检查步骤。
通过提供以上基本步骤,所有系统升级对最终升级用户而言看起来都是一样的,升级程序自动完成配置文件更新,数据库更新,替换文件等操作,并提供失败后的回滚功能,保证升级的安全性和成功率。
对于单机和集群(Cluster)系统在升级过程中其具体处理步骤稍有差异,下面分别进行说明,其中集群主要以热双机和冷双机(集群是多台机器组成的系统,双机只有两台机器)为例参阅图3所示,对于单机,其升级过程如下步骤10获取环境信息。
步骤11确定升级包。
步骤12备份被升级程序及其相关的环境信息。
步骤13判断是否有相关的应用程序在运行,若否,则直接进行步骤14,若是,则停止应用程序(步骤13-1)。
步骤14开始拷贝新的程序以覆盖被升级程序。其中还包括使用备份的旧系统的配置信息更新新程序的配置文件,以便于升级完成后新的系统能保持原来系统的配置信息。
步骤15升级数据库。对数据库的升级使用结构化查询语言(SQL)语句进行,对原数据库执行SQL语句即达到修改原数据库的目的。一般都是对数据库中的数据表的结构进行修改,如果需要对表中的数据进行修改,则还会增加将数据从数据库中导出、修改后再导入数据库的操作。
步骤16启动升级后的程序,判断升级是否成功,如果升级成功,则结束本次升级(步骤16~2);否则进入回滚状态,即利用备份将被升级程序还原到升级前的状态(步骤16-1)。
参阅图4所示,如果应用程序建立在双机上,对于热双机(HDR,即主机和备机均同时运行应用程序)其处理过程如下步骤21获取环境信息。
步骤22确定升级包。
步骤23备份被升级程序及其相关的环境信息。
步骤24停止双机应用程序。
在此过程中,先依次停止备机上的应用的监控程序、应用程序和数据库,然后停止主机上的应用的监控程序、应用程序、数据库和集群(cluster)软件。这些操作可配置,可以只执行其中一部分操作。也可以配置要停止的应用程序。
步骤25在主机上开始拷贝新的程序以覆盖被升级程序。其中还包括使用备份的旧系统的配置信息更新新程序的配置文件,以便于升级完成后新的系统能保持原来系统的配置信息。
步骤26升级主机的数据库(DB)。启动数据库后通过执行一条结构化查询语言(SQL)升级数据库。
在升级数据库后,对于向外提供服务的应用程序还可加上浮动IP(使用Unix命令ifconfig给机器的主通讯网卡添加一个IP地址即可)来测试升级是否成功。因为外部访问这个向外提供服务的应用程序时,需要一个明确的IP地址来表明是哪台机器。加上浮动IP后,外部就可以向这个IP地址申请服务,如果这个IP地址所属的机器能提供服务,说明应用程序工作正常,升级成功。。
步骤27启动主机应用程序,检查主机升级是否成功;若是,则进行步骤28,否则进行步骤33。
检查主机升级是否成功包括A、检查进程是否重启或日志文件是否有异常记录,若是则进行步骤31,否则进行步骤B;B、利用添加的浮动IP,进行外部测试,等待用户确认测试是否升级成功,若用户确认升级成功则继续步骤28,否则进行步骤31。
步骤28拷贝新的程序以覆盖备机上的被升级程序。
步骤29启动备机应用和数据库。在双机升级过程中不用升级备机上的数据库,因为主机和备机数据库都正常工作时,备机数据库每隔一段很短的时间间隔就使用主机数据库同步自己备机数据库。
步骤30启动双机。
步骤31检查双机是否启动成功,若成功给出相应的提示并结束整个升级过程;否则进行步骤32。
由于启动双机的命令都有返回值,因此,通过返回值可以得知命令执行是否成功。另外,双机启动后,双机资源的状态都应该是某个期望值,如果这些资源是所期望的值,则也可说明启动双机成功。
步骤32主机升级失败进行回滚,即利用备份使主机恢复到升级前的状态。其处理过程依次为回滚数据库(可以不用停止数据库),停止主机上的应用并回滚应用。
对于备机升级失败可以不进行回滚操作。
上述步骤24以独立成工具的形式单独调用,在升级之前系统询问用户是否停止双机,由用户确认。
对于冷双机(SHARE,正常工作时仅在主机上运行应用程序)其处理过程如下步骤40收集主机上挂接点(mount,mount是Unix中的术语,即挂接的意思,Unix中的文件系统必须先挂接了才能使用)的逻辑卷信息,以获取环境信息。
步骤41确定升级包。
步骤42备份被升级程序及其相关的环境信息。
步骤43停止双机应用程序。
如果停应用失败则退出升级,冷双机也可以直接停止双机,不需理会应用。
步骤44启动并升级主机上的数据库(DB)。
若要使用某些逻辑卷处于未挂接状态,这时就需要先把它们挂接到操作系统上(挂接的过程就是执行一条或多条Unix命令的过程)。
步骤45覆盖升级主机的旧应用程序,其中包括使用备份的旧系统的配置信息更新新程序的配置文件,以便于升级完成后新的系统能保持原来系统的配置信息。
步骤46启动主机上的应用程序。
步骤47检查升级是否成功。包括检查进程是否重启,若重启则进行步骤50,否则等待用户确认外部测试是否升级成功(由于添加了浮动IP,这样可以进行外部测试),若用户确认升级失败则进行步骤50,若成功则进行步骤48。
步骤48启动双机。
步骤49用户确认是否升级成功,若升级成功则给出相应提示并退出,否则进行步骤50。
由于程序能判断的条件总是有限的,但是现实的情况往往比较复杂,这步给用户提供检查系统运行情况并确认升级是否成功的机会,当用户选择失败时,会执行自动回滚的操作,把系统恢复到升级前的状态。
步骤50冷双机失败回滚。包括先回滚数据库(数据库可不用停止),然后停止应用程序,利用备份恢复应用程序并启动应用程序,最后启动双机。
本发明具有以下特点1、在升级中进行环境检查,从而保证环境的完备性。
2、升级前对与升级相关的程序进行备份,从而保证了升级失败后能够恢复到升级前的状态。
3、数据库的0级备份。0级备份属于数据库操作专用数据,经过0级备份的数据库可以恢复成备份前时刻的状态,包括库结构和库内容等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种升级程序的方法,用于UNIX操作系统中;其特征在于,该方法包括如下步骤A、获取与被升级程序相关的环境信息;B、备份被升级程序、数据库和所述环境信息;C、利用所述升级包程序覆盖所述被升级程序,并根据备份的环境信息更新升级后的配置文件;D、确定本次升级是否成功;若是,则结束升级;否则,利用备份将系统恢复到升级前的状态。
2.如权利要求1所述的方法,其特征在于,步骤A中所述环境信息包括系统信息和应用程序信息;所述系统信息从系统文件和系统命令中获取,所述应用程序信息从应用程序的配置文件中获取。
3.如权利要求1所述的方法,其特征在于,步骤C中还通过执行命令升级数据库。
4.如权利要求1所述的方法,其特征在于,在步骤C之前还包括步骤B1、根据被升级程序的版本信息确定对应的升级程序包。
5.如权利要求1所述的方法,其特征在于,在步骤C之前还包括步骤B2、停止与被升级程序相关并正在运行的程序。
6.如权利要求4所述的方法,其特征在于,在步骤C之前还包括步骤B3、停止待升级的集群系统中的应用程序、数据库和相关的管理程序。
7.如权利要求5所述的方法,其特征在于,停止集群系统时,先停止备机上的应用程序,然后再停止主机上的应用程序。
8.如权利要求5所述的方法,其特征在于,在步骤C中,还添加用于外部测试的IP地址;在步骤D中,还利用该IP地址进行外部测试来确定升级是否成功。
9.如权利要求5所述的方法,其特征在于,在步骤D中,根据用户定义的进程是否重新启动或日志文件是否有异常记录来判断升级是否成功。
10.如权利要求9所述的方法,其特征在于,在步骤D中,还包括由用户检测升级后的系统运行情况确定升级是否成功。
全文摘要
本发明公开了一种升级程序的方法,用于在UNIX操作系统下升级程序;该方法为获取与被升级程序相关的环境信息;备份被升级程序、数据库和所述环境信息;利用所述升级包程序覆盖所述被升级程序和升级数据库,并根据备份的环境信息更新升级后的配置文件;确定本次升级是否成功,若是则结束升级,否则利用备份将系统恢复到升级前的状态。
文档编号G06F11/14GK1858704SQ20061000352
公开日2006年11月8日 申请日期2006年2月7日 优先权日2006年2月7日
发明者陶凤梅, 陈刚 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1