CN1315043C - 一种嵌入式程序的兼容性升级方法 - Google Patents
一种嵌入式程序的兼容性升级方法 Download PDFInfo
- Publication number
- CN1315043C CN1315043C CNB2004100494987A CN200410049498A CN1315043C CN 1315043 C CN1315043 C CN 1315043C CN B2004100494987 A CNB2004100494987 A CN B2004100494987A CN 200410049498 A CN200410049498 A CN 200410049498A CN 1315043 C CN1315043 C CN 1315043C
- Authority
- CN
- China
- Prior art keywords
- database
- field
- backup
- upgrading
- new
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种嵌入式程序的兼容性升级方法,以解决现有升级嵌入式应用程序中存在兼容性差和升级复杂的问题;该方法为:在设备上完成升级程序的加载并重新启动设备,判断升级前和升级后的数据库是否相同,如果相同则将升级前的备份数据库复制到内存;如果不相同,则执行升级程序创建新数据库,然后将新数据库中各字段与备份数据库中的字段进行比较,如果字段相同则将备份数据库该字段对应的数据复制到新数据库对应的字段中;最后正常启动设备并完成升级。
Description
技术领域
本发明涉及通信及计算机技术领域,尤其涉及一种嵌入式程序的兼容性升级方法。
背景技术
嵌入式应用程序已广泛地应用于通信领域,在同步数字传输网络/同步光传输网络/密集波分复用(SDH/SONET/DWDM)等光网络传输系统应用中,网元设备便是基于嵌入式应用程序,通过该嵌入式应用程序,各网络节点都需要实现配置/状态数据的存储、备份、复制和保护等功能,使得在网元软件异常、复位、设备掉电、芯片损坏等异常情况下确保各网络节点仍然能够正确保存并复制出正确的配置/状态数据,确保光网络传输系统正常运行。基于嵌入式程序的设备则通常是采用数据库来存储配置/状态数据。
由于在实际应用当中,需要不断对网元设备的应用软件进行升级,以增强其功能或解决当前运行程序的缺陷。为了支持网元设备的可扩展性,需要支持应用软件的兼容性升级,以保证扩展功能的应用和保持对前向功能的兼容,而保证兼容性升级功能的实现,但最核心的部分是支持数据库的兼容性。
由于现有技术不支持数据库升级,在升级软件时只能删除所有的备份数据,并且在升级完成后重新下发配置,然后再备份数据。在此过程中,存在业务受到影响甚至中断的危险。同时,为保证数据库的一致性,必须在原有的数据库结构不变的情况下对字段进行重新定义,或重新设计一个数据库,放弃原有的数据库设计。因此,利用现有技术升级嵌入式应用程序存在兼容性差和升级复杂的缺点。
发明内容
本发明提供一种嵌入式程序的兼容性升级方法,以解决现有升级嵌入式应用程序中存在兼容性差和升级复杂的问题。
为解决上述问题,本发明提供以下技术方案:
一种嵌入式程序的兼容性升级方法,包括下述步骤:
A、在设备上完成升级程序的加载并重新启动设备;
B、判断升级前和升级后的数据库的版本号是否一致,如果不一致,则执行升级程序创建新数据库并进行步骤C,否则,将升级前的备份数据库复制到内存并进行步骤D;
C、将新数据库中各字段与备份数据库中的字段进行比较,如果字段相同则将备份数据库该字段对应的数据复制到新数据库对应的字段中;以及,在数据库复制完成后,删除升级前的备份数据库并备份当前使用的数据库。
D、正常启动设备并完成升级。
根据上述方法:
步骤C包括下述步骤:
(1)取新数据库的一个字段作为当前字段;
(2)将当前字段与备份数据库中的字段进行比较,判断当前字段是否为备份数据库中的一个字段,如果是则进行步骤(3),否则进行步骤(4);
(3)将备份数据库中对应字段的所有数据复制到新数据库的当前字段中;
(4)判断是否已比较完新数据库中的字段,如果是则结束比较,否则,取新数据库中的下一个字段作为当前字段并进行步骤(2)。
如果备份数据库存在多级备份,则在使用备份数据库前先对各级备份进行统一,并在后续步骤中使用统一后的备份数据库。
步骤C中,如果新数据库中的字段与备份数据库中的字段不相同,则给该字段赋默认的数据。
所述设备为传输网络中的网元设备。
采用本发明,可以提高设备的可扩展性,使设备具有前向兼容的扩展能力;同时也能提高设备的可维护性,简化升级步骤,以及提高设备维护升级的安全性。
附图说明
图1为网元设备中数据库的存储及备份示意图;
图2为本发明的实现兼容性升级的主要流程图;
图3为从备份数据库复制数据到新建数据库的流程图。
具体实施方式
对于基于嵌入式应用程序的设备而言,一般采用嵌入式关系型数据库来存储配置和状态信息。在升级过程中,加载完升级程序后需要对数据库进行升级处理。由于升级后使用的数据库可能与升级前使用的数据库相同,也可能不相同,因此需要在加载完升级程序后的重启动过程对数据库进行处理。
对于升级前后的数据库是否相同,可通过版本号进行识别。在本发明中,对于升级前后使用相同的数据库则直接从备份的数据库中复制数据,如果升级前后使用的数据库不相同,则将新建的数据库与备份的数据库中的字段比较,并将相同字段的数据从备份数据库中复制到新建的数据库中。
在嵌入式关系型数据库管理系统中,文件实际上是内存中的一块区域。关系型数据库是基于表格的数据管理,基本单位是记录(record)和字段(field),如表1所示:
表1
字段1 | 字段2 | … | … | 字段n |
Value1 | Value2 | … | … | Valuen |
… | … | … | … | … |
数据库文件包括一个数据库文件结构块和若干个记录块。数据库文件结构块包括库文件标志信息和字段描述块两部分,如表2所示:
表2
类别 | 子类别 |
数据库文件结构块 | 文件标志信息 |
字段描述块 | |
数据库文件结构块结束标志 | |
记录块 | 各记录起始/删除标志 |
记录体 | |
库文件存贮结束标志 |
本发明所述数据库的兼容性是指支持数据库字段的任意增加、删除、插入和顺序的调整,数据库记录数的增加、减少;但不支持数据库字段属性的改变。
本实施例主要以光传输网络中的网络设备为例对本发明进行说明。
参阅图1所示,SDRAM为网元设备的内存,非易失性存储器(NVRAM)和FLASH用于备份SDRAM中的数据库文件。SDRAM中的数据库文件实时地备份到NVRAM中,而NVRAM中的数据库文件则定时或通过人工方式备份到FLASH中。
应用程序模块通过调用数据库模块的应用编程接口(API)实现数据库文件的创建,每个数据库文件都有版本号标识,在API参数中有版本号信息。本发明通过版本号标识确定是否进行升级,所以在创建每个数据库文件时首先判断版本号,如果API参数中的版本号与备份数据库文件的版本号一致,则表明不需要升级处理,直接复制数据库文件既可;如果API参数的版本号与备份数据库文件的版本号不一致(通常在程序设计时版本号都会递加),则启动数据库文件升级操作。
参阅图2所示,实现兼容性升级的主要过程如下:
步骤100:在网元设备上完成升级程序的加载并重新启动网元设备。
步骤110:调用创建数据库的应用编程接口(API),进入数据库创建过程。
步骤120:判断升级前和升级后的数据库的版本号是否一致,如果不一致,则进行步骤130,否则进行步骤170。
步骤130:将非易失性存储器(NVRAM)和闪存(FLASH)中的多级备份数据库统一备份到NVRAM中。
由于数据库多级备份,可能各备份区的数据库文件不同,将NVRAM/FLASH等存储介质的备份数据库进行比较,并将最新的数据库统一备份到NVRAM中。
步骤140:执行升级程序在SDRAM中根据新的数据库结构创建新数据库。
步骤150:比较新数据库的每个字段是否是原有数据库有的字段;如果是则将原有数据库对应字段的数据复制到新数据库的对应字段中。
步骤160:删除NVRAM/FLASH中的原有数据库,将新的数据库备份到NVRAM/FLASH中,进行步骤180。
步骤170:将非易失性存储器(NVRAM)和闪存(FLASH)中的多级备份数据库统一备份到NVRAM中,并将统一后的备份数据库复制到内存。
步骤180:数据库数据的复制工作完成后正常启动设备以完成升级。
参阅图3所示,上述步骤150中,从备份数据库复制数据到新建数据库的具体处理过程如下:
步骤200:从新数据库中取第一个字段作为当前字段;
步骤210:将当前字段与备份数据库中的字段进行比较,判断当前字段是否为备份数据库中的一个字段,如果是则进行步骤220,否则进行步骤230。
步骤220:将备份数据库中对应字段的所有数据复制到新数据库的当前字段中。
步骤230:判断是否已比较完新数据库中的字段,如果是则结束比较,进行上述流程中的步骤160,否则进行步骤240。
步骤240:取新数据库中的下一个字段作为当前字段并进行步骤210。
在将新数据库与备份数据库的字段比较过程中,如果新数据库的字段不是备份数据库中的字段即是新增加的字段,则给新数据库中的该字段赋默认的数据,比如全赋0。
以上虽然网元设备为例对本发明的实现进行说明,但并不限于此,本发明同样适用于其他基于嵌入式应用程序的设备,其实现原理相同。
Claims (5)
1、一种嵌入式程序的兼容性升级方法,其特征在于包括下述步骤:
A、在设备上完成升级程序的加载并重新启动设备;
B、判断升级前和升级后的数据库的版本号是否一致,如果不一致,则执行升级程序创建新数据库并进行步骤C,否则,将升级前的备份数据库复制到内存并进行步骤D;
C、将新数据库中各字段与备份数据库中的字段进行比较,如果字段相同则将备份数据库该字段对应的数据复制到新数据库对应的字段中;以及,在数据库复制完成后,删除升级前的备份数据库并备份当前使用的数据库;
D、正常启动设备并完成升级。
2、如权利要求1所述的方法,其特征在于,步骤C包括下述步骤:
(1)取新数据库的一个字段作为当前字段;
(2)将当前字段与备份数据库中的字段进行比较,判断当前字段是否为备份数据库中的一个字段,如果是则进行步骤(3),否则进行步骤(4);
(3)将备份数据库中对应字段的所有数据复制到新数据库的当前字段中;
(4)判断是否已比较完新数据库中的字段,如果是则结束比较,否则,取新数据库中的下一个字段作为当前字段并进行步骤(2)。
3、如权利要求1或2所述的方法,其特征在于,如果备份数据库存在多级备份,则在使用备份数据库前先对各级备份进行统一,并在后续步骤中使用统一后的备份数据库。
4、如权利要求3所述的方法,其特征在于,步骤C中,如果新数据库中的字段与备份数据库中的字段不相同,则给该字段赋默认的数据。
5、如权利要求1所述的方法,其特征在于,所述设备为传输网络中的网元设备。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100494987A CN1315043C (zh) | 2004-06-24 | 2004-06-24 | 一种嵌入式程序的兼容性升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100494987A CN1315043C (zh) | 2004-06-24 | 2004-06-24 | 一种嵌入式程序的兼容性升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1713143A CN1713143A (zh) | 2005-12-28 |
CN1315043C true CN1315043C (zh) | 2007-05-09 |
Family
ID=35718775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100494987A Expired - Fee Related CN1315043C (zh) | 2004-06-24 | 2004-06-24 | 一种嵌入式程序的兼容性升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1315043C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101188516B (zh) * | 2007-12-21 | 2013-04-17 | 康佳集团股份有限公司 | 一种网络设备软件系统高可靠性自适应远程更新的方法 |
CN102841843B (zh) * | 2012-07-12 | 2018-04-10 | 中兴通讯股份有限公司 | 兼容判断方法及装置 |
CN104636157A (zh) * | 2013-11-14 | 2015-05-20 | 中兴通讯股份有限公司 | 基于数据兼容的软件升级方法、客户端、服务器及系统 |
CN105224361B (zh) * | 2015-09-15 | 2018-05-25 | 华讯方舟科技有限公司 | 一种对sqlite3型嵌入式数据库进行升级的方法及系统 |
KR102464235B1 (ko) * | 2016-03-31 | 2022-11-04 | 엘에스일렉트릭(주) | 이중화 ems 서버의 db 관리 방법 |
CN106909429A (zh) * | 2017-04-05 | 2017-06-30 | 微鲸科技有限公司 | 一种同步升级方法及装置 |
CN110764810A (zh) * | 2019-11-05 | 2020-02-07 | 四川虹美智能科技有限公司 | 安卓应用升级修复方法及终端设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729735A (en) * | 1995-02-08 | 1998-03-17 | Meyering; Samuel C. | Remote database file synchronizer |
US20040054854A1 (en) * | 2002-09-17 | 2004-03-18 | Pirasenna Thiyagaranjan | Hybrid system and method for updating remote cache memory |
CN1492362A (zh) * | 2002-10-25 | 2004-04-28 | 联想(北京)有限公司 | 一种嵌入式数据库的数据备份和恢复方法 |
CN1506822A (zh) * | 2002-12-09 | 2004-06-23 | 联想(北京)有限公司 | 基于可扩充表单的可复用嵌入式系统的硬件驱动和软件更新方法 |
-
2004
- 2004-06-24 CN CNB2004100494987A patent/CN1315043C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729735A (en) * | 1995-02-08 | 1998-03-17 | Meyering; Samuel C. | Remote database file synchronizer |
US20040054854A1 (en) * | 2002-09-17 | 2004-03-18 | Pirasenna Thiyagaranjan | Hybrid system and method for updating remote cache memory |
CN1492362A (zh) * | 2002-10-25 | 2004-04-28 | 联想(北京)有限公司 | 一种嵌入式数据库的数据备份和恢复方法 |
CN1506822A (zh) * | 2002-12-09 | 2004-06-23 | 联想(北京)有限公司 | 基于可扩充表单的可复用嵌入式系统的硬件驱动和软件更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1713143A (zh) | 2005-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1081814C (zh) | 系统文件的更新和复原方法 | |
EP1769343B1 (en) | Method and system for in-place updating content stored in a storage device | |
US7831561B2 (en) | Automated disk-oriented backups | |
US7555750B1 (en) | Update package generator employing partial predictive mapping techniques for generating update packages for mobile handsets | |
CN100343807C (zh) | 一种Boot软件升级方法和一种Boot软件恢复方法 | |
US20120124003A1 (en) | Using versioning to back up multiple versions of a stored object | |
CN1277214C (zh) | 一种嵌入式系统升级的方法 | |
CN1694070A (zh) | Pos终端设备的升级方法 | |
US7299376B2 (en) | Apparatus, system, and method for verifying backup data | |
CN1595365A (zh) | 自动和动态优化应用数据资源以满足业务目标的系统和方法 | |
CN1364390A (zh) | 下载到无线终端的方法和设备 | |
CN101046772A (zh) | 回收存储器中的空间的方法和装置 | |
CN1315043C (zh) | 一种嵌入式程序的兼容性升级方法 | |
CN1713154A (zh) | 一种移动通信网管系统的升级方法 | |
CN1877539A (zh) | 冷启动模式下的数据备份/恢复系统及其实现方法 | |
CN111221682B (zh) | 一种存储系统镜像的方法 | |
CN1916861A (zh) | 修改计算机的配置信息的方法 | |
CN1801090A (zh) | 移动通信终端的文件更新系统和启动管理系统及其方法 | |
CN101043318A (zh) | 前后台数据同步的方法及用于前后台数据同步的装置 | |
CN101800840B (zh) | 一种机顶盒升级方法 | |
CN1295903C (zh) | 一种系统安全启动方法 | |
CN101046761A (zh) | 一种取快照数据的装置及方法 | |
CN1991777A (zh) | 镜像文件的数据预装系统及方法 | |
CN1245686C (zh) | 嵌入式系统中软件补丁的加载与同步的方法 | |
CN1798057A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070509 Termination date: 20150624 |
|
EXPY | Termination of patent right or utility model |