CN100395707C - 升级程序的方法 - Google Patents

升级程序的方法 Download PDF

Info

Publication number
CN100395707C
CN100395707C CNB2006100035256A CN200610003525A CN100395707C CN 100395707 C CN100395707 C CN 100395707C CN B2006100035256 A CNB2006100035256 A CN B2006100035256A CN 200610003525 A CN200610003525 A CN 200610003525A CN 100395707 C CN100395707 C CN 100395707C
Authority
CN
China
Prior art keywords
upgrading
program
upgraded
database
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CNB2006100035256A
Other languages
English (en)
Other versions
CN1858704A (zh
Inventor
陶凤梅
陈刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2006100035256A priority Critical patent/CN100395707C/zh
Publication of CN1858704A publication Critical patent/CN1858704A/zh
Application granted granted Critical
Publication of CN100395707C publication Critical patent/CN100395707C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明公开了一种升级程序的方法,用于在UNIX操作***下升级程序;该方法为:获取与被升级程序相关的环境信息,所述环境信息包括***信息和应用程序信息;备份被升级程序、数据库和所述环境信息;利用升级包程序覆盖所述被升级程序和升级数据库,并根据备份的环境信息更新升级后的配置文件;确定本次升级是否成功,若是则结束升级,否则利用备份的环境信息将***恢复到升级前的状态。

Description

升级程序的方法
技术领域
本发明涉及计算机及通信技术领域,尤其涉及一种统一升级程序的方法。
背景技术
随着软件业的发展,软件业务更新快、版本变化大和版本问题多,导致软件升级成为软件技术支持最大的业务,投入人力资源相当多(>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级备份的数据库可以恢复成备份前时刻的状态,包括库结构和库内容等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

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中,还包括由用户检测升级后的***运行情况确定升级是否成功。
CNB2006100035256A 2006-02-07 2006-02-07 升级程序的方法 Active CN100395707C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2006100035256A CN100395707C (zh) 2006-02-07 2006-02-07 升级程序的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2006100035256A CN100395707C (zh) 2006-02-07 2006-02-07 升级程序的方法

Publications (2)

Publication Number Publication Date
CN1858704A CN1858704A (zh) 2006-11-08
CN100395707C true CN100395707C (zh) 2008-06-18

Family

ID=37297613

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006100035256A Active CN100395707C (zh) 2006-02-07 2006-02-07 升级程序的方法

Country Status (1)

Country Link
CN (1) CN100395707C (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7783921B2 (en) * 2007-02-21 2010-08-24 International Business Machines Corporation Code recovery system and method
CN101625640B (zh) * 2009-08-05 2013-01-16 中兴通讯股份有限公司 一种多环境下软件升级脚本合一的装置及方法
CN101894059B (zh) * 2010-06-11 2016-02-24 中兴通讯股份有限公司 一种运行状态的检测方法及***
CN103019752B (zh) * 2011-09-20 2016-08-03 金蝶软件(中国)有限公司 应用程序的升级方法及装置
CN102394761B (zh) * 2011-11-02 2014-02-19 华为技术有限公司 计费***升级方法和装置
CN102752394B (zh) * 2012-07-13 2015-10-21 携程计算机技术(上海)有限公司 面向集群站点的发布控制方法和***
CN103729261A (zh) * 2012-10-15 2014-04-16 亚旭电脑股份有限公司 操作***更新的方法及手持电子装置
CN103440179B (zh) * 2013-08-23 2016-09-28 安徽安庆瀚科莱德信息科技有限公司 存储设备配置信息的连续保存方法
CN103812945A (zh) * 2014-02-26 2014-05-21 可牛网络技术(北京)有限公司 一种数据升级的方法和中心服务器
CN106155716A (zh) * 2015-03-30 2016-11-23 联想(北京)有限公司 Bios的配置保存方法和配置保存装置
CN105117263B (zh) * 2015-09-14 2018-06-22 北京空间飞行器总体设计部 一种unix环境软件***升级方法
CN106919411A (zh) * 2015-12-25 2017-07-04 英业达科技有限公司 适用于Linux的操作***更新***及其方法
CN105682123B (zh) * 2016-02-18 2019-02-26 浪潮天元通信信息***有限公司 一种移动通信场景化配置***模型升级与核查的方法
US12001825B2 (en) 2016-02-19 2024-06-04 Ford Global Technologies, Llc Method and apparatus for vehicle software update installation
CN106227561A (zh) * 2016-07-20 2016-12-14 杭州华三通信技术有限公司 一种云操作***升级方法及装置
CN108829420A (zh) * 2018-06-12 2018-11-16 郑州云海信息技术有限公司 一种基于rpm包的分布式存储***软件升级方法
CN108958773A (zh) * 2018-07-10 2018-12-07 北京贞宇科技有限公司 智能机器人
CN109729156B (zh) * 2018-12-18 2021-12-28 中信百信银行股份有限公司 基于后端应用服务变更自动化调整中间件的连接方法
CN111522575B (zh) * 2020-04-15 2023-11-24 维沃移动通信有限公司 一种应用程序升级方法及电子设备
CN111782236A (zh) * 2020-05-11 2020-10-16 广州朗国电子科技有限公司 ***软件升级方法、装置、存储介质及一体机设备
CN112230977B (zh) * 2020-09-06 2022-06-17 厦门天锐科技股份有限公司 软件项目的数据迭代***及方法
CN112631627B (zh) * 2020-12-10 2023-02-24 武汉联影医疗科技有限公司 软件升级方法、装置、计算机设备和存储介质
CN113848829A (zh) * 2021-09-09 2021-12-28 许昌许继软件技术有限公司 一种厂矿电网调控***的主子站一体化运维方法和***
CN116009912B (zh) * 2022-12-26 2023-08-18 郑州云智信安安全技术有限公司 针对私网环境的自动生成升级包的构建方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4954941A (en) * 1988-08-31 1990-09-04 Bell Communications Research, Inc. Method and apparatus for program updating
CN1477500A (zh) * 2002-08-19 2004-02-25 万达信息股份有限公司 一种Client/Server架构下软件自动升级更新的方法
CN1584822A (zh) * 2003-08-19 2005-02-23 联想(北京)有限公司 一种升级计算机固件程序的方法
CN1684427A (zh) * 2004-04-14 2005-10-19 华为技术有限公司 一种软件升级及回退方法
CN1719413A (zh) * 2004-07-07 2006-01-11 华为技术有限公司 通信设备的升级方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4954941A (en) * 1988-08-31 1990-09-04 Bell Communications Research, Inc. Method and apparatus for program updating
CN1477500A (zh) * 2002-08-19 2004-02-25 万达信息股份有限公司 一种Client/Server架构下软件自动升级更新的方法
CN1584822A (zh) * 2003-08-19 2005-02-23 联想(北京)有限公司 一种升级计算机固件程序的方法
CN1684427A (zh) * 2004-04-14 2005-10-19 华为技术有限公司 一种软件升级及回退方法
CN1719413A (zh) * 2004-07-07 2006-01-11 华为技术有限公司 通信设备的升级方法

Also Published As

Publication number Publication date
CN1858704A (zh) 2006-11-08

Similar Documents

Publication Publication Date Title
CN100395707C (zh) 升级程序的方法
CN106716360B (zh) 支持多租户应用服务器环境中的补丁修补的***和方法
CN102023881B (zh) 一种软件升级方法、装置及嵌入式设备
CN106933570B (zh) 一种基于插件技术的航天测发控软件平台
CN101771762B (zh) 业务***中业务动态加载***及方法
US8010504B2 (en) Increasing application availability during automated enterprise deployments
CN100489778C (zh) Java程序可动态更新化实现方法
CN108647265B (zh) 基于多平台数据交互式***
CN107566165B (zh) 一种发现及部署电力云数据中心可用资源的方法及***
CN103853595A (zh) 用于替换虚拟机盘的方法和***
CN105740093A (zh) 备份方法、环境更新预先检测方法及其***
CN101393528B (zh) 软件动态更新中确定实例对象转换次序的方法及***
CN103036855B (zh) 一种权限管理的实现设备和方法
US9043781B2 (en) Algorithm for automated enterprise deployments
EP2115586A2 (en) Distributed platform management for high availability systems
CN106371874A (zh) 一种插件数据加载方法及设备
US20160127177A1 (en) Installation of an arbitrary server as an extenstion of a computing platform
CN104318091B (zh) 一种基于虚拟化计算机***的小卫星地面测试方法
CN112199157A (zh) 一种云环境管理方法
CN106406933A (zh) 一种Tomcat集群一键自动部署方法
CN109918109B (zh) 针对sd-wan***实现软件版本平滑升级功能的***及方法
CN115185561A (zh) 一种基于Serveless Jenkins的CICD***和实现方法
CN112055086B (zh) 一种IIS站点、Windows服务的发布与管理方法、运维***及平台
CN114185590A (zh) 应用***运维配置管理方法及装置
CN103761169A (zh) 石油地质软件数据库的热备份方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant