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
information
database
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

Abstract

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

Description

升级程序的方法
技术领域
本发明涉及计算积及通信技术领域,尤其涉及一种统一升级程序的方法。 背景技术
随着软件业的发展,软件业务更新快、版本变化大和版本问題多,导致软
件升级成为软件技术支持最大的业务,投入人力资源相当多(>50%)。
目前,在UNIX系统下升级软件需要先开发出新版并给出一个相对上一个版 本的升级指导i兌明书,然后技术支持人员根据升级指导说明书,通过手工输入 命令对各软件模块进行升级,通过手工方式对配置文件和参数进行修改,其主 要过程如下:
A、 检查*系统的版本,检查升级所需条件是否满足;
B、 a原数据库的数据;
C、 M原应用系统的文件;
D、 *原应用系统的配置信息;
E、 停止原应用系统的服务;
F、 将新版本包解开,覆盖原应用系统的文件;
G、 利用备除的配置信息,将新版本中的配置文件配置为原应用系统中的值;
H、 启动原应用系统,进行升级测试;
I、 如杲升级失敗,进行手工回滚,回滚包括应用和数据库两方面回滚。 在升级过程中,如果涉及到双机的升级,还需要考虑主备机升级过程的差异性。
以上升级方法主要存以下不足:
1、由于版本的配套要求高而导致联动升级,在没有自动或者半自动升级工
具的情况下,只能通过手工输入命令或手工修改来完成升级,而每个软件模块
都有不同的SHELL程序,其配置文件和参数也不相同。因此,通过手工方式完 成不仅操作复杂,而且速度也慢。
2、 每一次升级都依赖于个人,每个人的升级步骤都有可能不同,升级过程 复杂而容易出错,导致升级经常失败,所以这种升级的可靠性较差;同时,需 要多方的人力支持,其升级成本也高。
3、 在升级失败后,4艮难通过手工恢复到升级前的状态。
发明内容
本发明提供一种升级程序的方法,以解决现有技术在UNIX系统下升级程序 因需要通过手工输入大量的操作命令而存在操作复杂、升级效率低和可靠性差 的问题。
本发明提供以下技术方案:
一种升级程序的方法,用于在UNIX操作系统下升级程序;该方法包括如下 步骤:
A、 获取与被升级程序相关的环境信息,所述环境信息包括系统信息和应用 程序信息;
B、 备份被升级程序、数据库和所述环境信息;
C、 利用升级包程序覆盖所述被升级程序和升级数据库,并才艮据备份的环境 信息更新升级后的配置文件;
D、 确定本次升级是否成功,若是则结束升级,否则,利用备^P分的环境信息 将系统恢复到升级前的状态。
其中:
步骤A中所述系统信息从系统文件和系统命令中获取,所述应用程序信息 从应用程序的配置文件中获取。 在步骤C之前还包括步骤:
Bl、根据被升级程序的版本信息确定对应的升级程序包。 在步骤C之前还包括步骤:B2、停止与被升级程序相关并正在运行的程序。
在步骤C之前还包括步骤:
B3、停止^寺升级的热双才几或冷双才几。
在步骤D中,根据用户定义的进程是否重新启动或日志文件是否有异常记 录来判断升级是否成功。
在步骤C中,利用升级包程序覆盖所述被升级程序之后,还添加用于外部 测试的浮动IP地址,在步骤D中,还根据外部测试来正确升级是否成功。
本发明统一了 UNIX平台下的软件升级过程,程序的环境信息和配置信息的 更新由程序自动完成,无须手动干预,不仅简化了操作,而且也提高了升级的 可靠性和可维护性。
根据实际统计,每个局点平均每年升级6.5次,采用现有技术每次人工升 级(包括准备工作)的时间为:2.5人天/局点,而使用本发明,每次升级(包 括准备工作)则只需要0. 5天,可以节省80%的工作量。
附图说明
图1为本发明升级的示意图; 图2为本发明升级的流程图; 图3为单机升级的流程图; 图4为热双机升级的流程图; 图5为冷双;f几升级的流程图。
具体实施方式
在UNIX系统下,根据用户特征可将升级程序可以分为三层:第一层为升级 标准步骤层,用户为最终升级用户;第二层为产品二次开发层,用户为软件产 品的开发人员;第三层为升级函数层,提供升级过程中的原子功能,如图1所 示。对最终用户而言,通过输入几条简单的命令即可完成升级,对升级产品的 开发人员而言,可以利用底层提供的原子功能完成自己的升级过程。底层的原
子功能则屏蔽了操作系统的差异,向上提供操作系统无差别且具有一定功能的 接口。
参阅图2所示,升级程序的主要过程如下:
步骤l:获取环境信息。如环境信息中最重要的安装目录、用户和配置信息 等,以便于在升级过程中同步更新到新版本中。
环境信息包括应用程序信息和系统信息,系统信息从系统文件和系统命令 中获取,如双机信息、数据库配置信息等.应用程序信息从应用程序的配置文 件中获取,如应用程序的名字,应用程序配置文件中配置项的值,应用程序的 用户信息等.
步骤2:确定升级包.将被升级程序的版本与定义升级包的配置文件中定义 的版本信息进行比较,确定用于对程序进行升级的升级包。 步猓3: *被升级程序及其相关的环境信息。
备汾包括数据库的备份和应用程序的备盼,其中,备份数据库时先进行0 级备盼,然后再进行1级备份。备盼应用程序包括应用程序M和应用程序配 置信息的备份,应用程序备份主要备份文件、目录等,备份的配置信息是需要 更新到升级后的系统中的配置信息,以避免升级后用户要重新配置一遍系统才 能正常工作,如用户端口, IP地址等。
步骤4:进行实际的升级操作,即拷贝新的程序以覆盖旧的程序,并从旧的 环境中获取必要的信息并更新到新的配置文件中去。
在升级的实际搮作前,还检测是否有与被升级程序相关的应用程序在运行, 若有则停止应用程序的运行。检测是否有相关程序在运行可通过执行外部脚本 来检测,不同的应用程序其检测标准可能不同。
步骤5:检测升级是否成功,如果升级成功,则结束本次升级(步骤5-2); 否則i^A回滚状态,即利用备份将被升级程序还原到升级前的状态(步骤5-1 )。
一般是通过检查用户定义的进程是否重新启动或日志文件是否有异常记录 来判断升级是否成功,有时为了满足不同产品特殊的需求,还可以附加一些特 殊的检查步骤。
通过提供以上基本步骤,所有系统升级对最终升级用户而言看起来都是一 样的,升级程序自动完成配置文件更新,数据库更新,替换文件等操作,并提 供失败后的回滚功能,保证升级的安全性和成功率。
对于单机和集群(Cluster)系统在升级过程中其具体处理步骤稍有差异, 下面分别进行说明,其中集群主要以热双机和冷双机(集群是多台机器组成的 系统,^J^l只有两台机器)为例:
参阅图3所示,对于单机,其升级过程如下:
步骤10:获取环境信息。
步驟ll:确定升级包。
步骤12: #故升级程序及其相关的环境信息。
步驟13:判断是否有相关的应用程序在运行,若否,则直接进行步骤14, 若是,则停止应用程序(步骤13-1)。
步骤14:开始拷贝新的程序以覆盖被升级程序。其中还包括使用M的旧 系统的配置信息更新新程序的配置文件,以^t于升级完成后新的系统能保持原 来系统的配置信息,
步骤15:升级数据库,对数据库的升级使用结构化查询语言(SQL)语句进 行,对原数据库执行SQL语句即达到修改原数据库的目的。 一般都是对数据库 中的数据表的结构进行修改,如果需要对表中的数据进行修改,则还会增加将 数据从数据库中导出、修改后再导入数据库的操作。
步骤16:启动升级后的程序,判断升级是否成功,如果升级成功,则结束 本次升级(步骤16-2 );否则进入回滚状态,即利用备盼将被升级程序还原到升 级前的状态(步骤16-1 )。
参阅图4所示,如果应用程序建立在双机上,对于热3CMiU(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:启动备机应用和数据库。在双机升级过程中不用升级备机上的数 据库,因为主机和备机数据库都正常工作时,备机数据库每隔一段很短的时间 间隔就使用主Wt据库同步自己备机数据库。
步骤30:启动双机。
步骤31:检查双机是否启动成功,若成功给出相应的提示并结束整个升级
过程;否则进行步骤32。
由于启动双机的命令都有返回值,因此,通过返回值可以得知命令执行是 否成功。另外,双机启动后,双机资源的状态都应该是某个期望值,如果这些 资源是所期望的值,则也可"^充明启动双机成功。
步骤32:主机升级失敗进行回滚,即利用M使主机恢复到升级前的状态。 其处理过程依次为:回滚数据库(可以不用停止数据库),停止主机上的应用并 回滚应用。
对于备机升级失败可以不进行回滚操作。
上述步稞24以独立成工具的形式单独调用,在升级之前系统询问用户是否 停止双机,由用户确认。
对于冷5S4JL (SHARE,正常工作时仅在主机上运行应用程序)其处理过程如
下:
步骤40:收集主机上挂接点(mount, raount是Unix中的术语,即挂接的 意思,Unix中的文件系统必须先挂接了才能使用)的逻辑巻信息,以获取环境 信息。
步骤41:确定升级包。
步骤42: 4H^t升级程序及其相关的环境信息。 步骤43:停止双机应用程序。
如果停应用失敗则退出升级,冷双机也可以直接停止双机,不需理会应用。 步骤44:启动并升级主机上的数据库(DB)。
若要使用某些逻辑巻处于未挂接状态,这时就需要先把它们挂接到操作系 统上(桂接的过程就是执行一条或多条Unix命令的过程)。
步骤":度盖升级主机的旧应用程序,其中包括使用M的旧系统的配置 信息更新新程序的配置文件,以便于升级完成后新的系统能保持原来系统的配
置信息。
步骤46:启动主机上的应用程序。
步骤47:检查升级是否成功。包括:检查进程是否重启,若重启则进行步
骤50,否则等待用户确认外部测试是否升级成功(由于添加了浮动IP,这样可 以进行外部测试),若用户确认升级失败则进行步骤50,若成功則进行步骤48。 步骤48:启动双机。
步骤49:用户确认是否升级成功,若升级成功则给出相应提示并退出,否 则进行步骤50。
由于程序能判断的条件总是有限的,但是现实的情况往往比较复杂,这步 给用户提供检查系统运行情况并确认升级是否成功的机会,当用户选择失敗时, 会执行自动回滚的操作,把系统恢复到升级前的状态。
步骤50:冷双机失敗回滚。包括:先回滚数据库(数据库可不用停止),然 后停止应用程序,利用备盼恢复应用程序并启动应用程序,最后启动双机。
本发明具有以下特点:
1、 在升级中进行环境检查,从而保证环境的完备性。
2、 升级前对与升IM目关的程序进行备份,从而保证了升级失败后能够恢复 到升级前的状态。
3、 数据库的O级备除。O级备份属于数据库操作专用数据,经过0级^# 的数据库可以恢复成备盼前时刻的状态,包括库结构和库内容等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求 及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1、一种升级程序的方法,用于UNIX操作系统中;其特征在于,该方法包括如下步骤: A、获取与被升级程序相关的环境信息,所述环境信息包括系统信息和应用程序信息; B、备份被升级程序、数据库和所述环境信息; C、利用升级包程序覆盖所述被升级程序,并根据备份的环境信息更新升级后的配置文件; D、确定本次升级是否成功;若是,则结束升级;否则,利用备份的环境信息将系统恢复到升级前的状态。
2、 如权利要求l所述的方法,其特征在于,步骤A中所述系统信息从系统 文件和系统命令中获取,所述应用程序信息从应用程序的配置文件中获取。
3、 如权利要求l所述的方法,其特征在于,步骤C中还通过执行命令升级 数据库。
4、 如权利要求l所述的方法,其特征在于,在步骤C之前还包括步骤: Bl 、根据被升级程序的版本信息确定对应的升级程序包。
5、 如权利要求l所述的方法,其特征在于,在步骤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 (18)

* 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 浪潮天元通信信息系统有限公司 一种移动通信场景化配置系统模型升级与核查的方法
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 北京贞宇科技有限公司 智能机器人
CN109729156A (zh) * 2018-12-18 2019-05-07 中信百信银行股份有限公司 基于后端应用服务变更自动化调整中间件的连接方法
CN111782236A (zh) * 2020-05-11 2020-10-16 广州朗国电子科技有限公司 系统软件升级方法、装置、存储介质及一体机设备

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) 支持多租户应用服务器环境中的补丁修补的系统和方法
CN101771762B (zh) 业务系统中业务动态加载系统及方法
US7464118B2 (en) Algorithm for maximizing application availability during automated enterprise deployments
CN102023881B (zh) 一种软件升级方法、装置及嵌入式设备
US9043781B2 (en) Algorithm for automated enterprise deployments
CN100489778C (zh) Java程序可动态更新化实现方法
CN103853595A (zh) 用于替换虚拟机盘的方法和系统
CN107220100A (zh) 一种开发运维方法、装置及云计算PaaS平台
CN101393528B (zh) 软件动态更新中确定实例对象转换次序的方法及系统
CN105740093A (zh) 备份方法、环境更新预先检测方法及其系统
CN106933570B (zh) 一种基于插件技术的航天测发控软件平台
EP2115586A2 (en) Distributed platform management for high availability systems
CN103036855B (zh) 一种权限管理的实现设备和方法
CN102207879A (zh) Lua脚本热更新方法及系统
CN106371874A (zh) 一种插件数据加载方法及设备
CN104216751A (zh) 一种应用程序的功能组件界面资源的加载方法及系统
US9900212B2 (en) Installation of an arbitrary server as an extension of a computing platform
CN103761169A (zh) 石油地质软件数据库的热备份方法及装置
CN104318091B (zh) 一种基于虚拟化计算机系统的小卫星地面测试方法
CN106406933A (zh) 一种Tomcat集群一键自动部署方法
CN103970854A (zh) Sap ecc端与sap bw端之间增量凭证信息同步方法
CN112199157A (zh) 一种云环境管理方法
CN106445565A (zh) 现场可编程门阵列的升级方法及装置
CN111897567A (zh) 代码版本管理方法和装置

Legal Events

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