CN102902818A - 一种数据库升级的方法及装置 - Google Patents

一种数据库升级的方法及装置 Download PDF

Info

Publication number
CN102902818A
CN102902818A CN2012104179346A CN201210417934A CN102902818A CN 102902818 A CN102902818 A CN 102902818A CN 2012104179346 A CN2012104179346 A CN 2012104179346A CN 201210417934 A CN201210417934 A CN 201210417934A CN 102902818 A CN102902818 A CN 102902818A
Authority
CN
China
Prior art keywords
database
upgrading
name
new database
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.)
Pending
Application number
CN2012104179346A
Other languages
English (en)
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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN2012104179346A priority Critical patent/CN102902818A/zh
Publication of CN102902818A publication Critical patent/CN102902818A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明提供一种数据库升级的方法和装置。所述方法包括:通过先建立新数据库,然后获取新数据库与旧数据库的共有结构,根据所述共有结构组装升级语句,再对新数据库批量执行所述升级语句,最后用新数据库替换旧数据库,完成数据库的升级。通过本发明,数据库升级之后能够实现配置兼容,且在升级过程中可不中断业务,发明方法简便、容易使用。

Description

一种数据库升级的方法及装置
技术领域
本发明涉及数据通信领域,尤其涉及一种数据库升级的方法和装置。
背景技术
数据库在设备中起着非常重要的作用,存储着设备当前的配置等关键信息,它的正确与否直接影响着设备是否正常运行。网络设备在运行过程中,由于增加新的功能或者问题的修复等,可能需要更换软件版本。在数据库升级时,如果数据库不兼容,则会导致用户配置的紊乱,重新做一遍配置会很繁琐,并且浪费时间和精力,且以引起网络长时间的中断。
发明内容
有鉴于此,本发明提供一种数据库升级的方法和装置,升级方法和装置简洁、方便。升级之后能够实现配置兼容,且在升级过程中可不中断业务。
本发明提供一种实现数据库升级的方法,适用于关系型数据库,所述方法包括:
步骤a、建立新数据库,所述新数据库为新版本数据库;
步骤b、获取新数据库与旧数据库的共有结构,根据所述共有结构组装升级语句,所述旧数据库为旧版本数据库;
步骤c、对新数据库批量执行所述升级语句;
步骤d、用新数据库替换旧数据库,完成数据库的升级。
本发明同时一种实现数据库升级的装置,适用于关系型数据库,所述装置包括:
创建模块,用于建立新数据库,所述新数据库为新版本数据库;
升级模块,用于获取新数据库与旧数据库的共有结构,根据所述共有结构组装升级语句,所述旧数据库为旧版本数据库;
执行模块,用于对新数据库批量执行所述升级语句;
替换模块,用新数据库替换旧数据库,完成数据库的升级。
由此可见,本发明通过先建立需要升级的数据库版本,然后获取新旧数据库的共有结构后执行升级语句来进行数据库的升级,操作简洁方便,升级之后可实现配置兼容,且可以在不中断业务的情况下升级。
附图说明
图1是本发明实施例的方法流程示意图。
图2是本发明另一实施例的具体方法流程示意图。
图3是本发明实施例的装置逻辑结构图。
图4是本发明实施例升级模块子模块逻辑结构图。
图5是本发明实施例组装升级模块子模块逻辑结构图。
具体实施方式
本发明实施例提供一种数据库升级的方法和装置,所述方法和装置适用于关系型数据库。所述关系型数据库是指采用了关系模型进行组织数据的数据库。所述的关系模型指二维表格模型。本发明实施例通过先建立新数据库,然后获取新数据库与旧数据库的共有结构,根据所述共有结构组装升级语句,再对新数据库批量执行所述升级语句,最后用新数据库替换旧数据库,完成数据库的升级。
为使本发明实施例技术方案更加清楚和明白,以下结合本发明具体实施例加以详细说明。如图1所示,为本发明提供的一种实现数据库升级的方法,适用于关系型数据库,所述方法包括:
步骤a、建立新数据库,所述新数据库为新版本数据库;
在数据库升级的初始阶段,首先根据数据库的建表语句建立新的数据库,所述新数据库为计划升级的新版本数据库。
步骤b、获取新数据库与旧数据库的共有结构,根据所述共有结构组装升级语句,所述旧数据库为旧版本数据库;
所述共有结构为新数据库和旧数据库中表名相同的数据表中相同的列名。关系型数据库是由二维表及其之间的联系组成的一个数据组织,每一张二维表都有一个表名。每一个二维表有若干行和列组成,行在数据库中用元组表示,列在数据库中用字段表示,指每个实体的属性,用于标识元组。当新数据库建立完成之后,同时打开新数据库和旧数据库,获取新数据库与旧数据库的共有结构,即获取新数据库和旧数据库中表名相同的数据表中相同的列名,然后组装与所述共有结构相对应的升级语句,例如insert或replace语句,但并不限于此语句。
步骤c、对新数据库批量执行所述升级语句;
当获取完成新数据库和旧数据库中全部的共有结构,并组装所有与所述共有结构相对应的升级语句之后,对新数据库批量执行所述的升级语句,进行升级。
步骤d、用新数据库替换旧数据库,完成数据库的升级。
当执行升级语句完成之后,旧数据库中的数据已经拷贝到新数据库中,因此用新数据库替换旧数据库,完成数据库的升级。
进一步地,所述步骤b具体包括:
步骤b1、从新数据库中获取一个表名;
步骤b2、查找旧数据库是否存在与获取的表名相同的表名,若是,执行步骤b3,若否,执行步骤b4;
步骤b3、根据新数据库和旧数据库中,具有所述相同的表名的数据表中的相同列名,组装升级语句;
步骤b4、判断是否已经获取完新数据库中的所有表名,若是,执行步骤c,若否,从新数据库中获取下一个表名后返回步骤b2。
进一步地,所述步骤b3具体包括:
步骤b31、从新数据表中获取一个列名,所述的新数据表是指新数据库中的表;
步骤b32、查找旧数据表是否存在与获取的列名相同的列名,若是,执行步骤b33,若否,则执行步骤b34,所述旧数据表是指旧数据库中的表;
步骤b33、组装升级语句;
步骤b34、判断是否已经获取完新数据表中所有列名,若是,则执行步骤b4,若否,从数据表中获取下一个列名之后返回步骤b32。
如图2所示为本发明另一具体实施例的方法流程示意图。所述包括:
步骤1、根据建表语句建立新数据库;
步骤2、从新数据库中获取一个表名,所述新数据库为欲升级的新版本数据库;
步骤3、查找旧数据库中是否存在与获取的表名相同的表名,若是,则执行步骤4,若否,则执行步骤8,所述的旧数据库为旧版本数据库;
步骤4、从新数据表中获取一个列名,所述的新数据表为新数据库中的数据表;
步骤5、查找旧数据表中是否存在与获取的列名相同的列名,若是,则执行步骤6,若否则执行步骤7,所述的旧数据表为旧数据库中的数据表;
步骤6、组装升级语句;
步骤7、判断是否已经获取完新数据表中所有列名,若是,则执行步骤8,若否,则从数据表中获取下一个列名之后返回步骤5;
步骤8、判断是否已经获取完新数据库中所有的表名,若是,则执行步骤9,若否,则从数据库中获取下一个表名之后返回步骤3;
步骤9、对新数据库批量执行所述升级语句;
步骤10、用新数据库替换旧数据库,完成数据库的升级。
请参考图3,本发明实施例同时提供一种实现数据库升级的装置,适用于关系型数据库,其特征在于,所述装置包括:
创建模块,用于建立新数据库,所述新数据库为新版本数据库;
在数据库升级的初始阶段,首先创建模块根据数据库的建表语句建立新的数据库,所述新数据库为计划升级的新版本数据库。
升级模块,用于获取新数据库与旧数据库的共有结构,根据所述共有结构组装升级语句,所述旧数据库为旧版本数据库;
所述共有结构为新数据库和旧数据库中表名相同的数据表中相同的列名。关系型数据库是由二维表及其之间的联系组成的一个数据组织,每一张二维表都有一个表名。每一个二维表有若干行和列组成,行在数据库中用元组表示,列在数据库中用字段表示,指每个实体的属性,用于标识元组。当新数据库建立完成之后,同时打开新数据库和旧数据库,升级模块获取新数据库与旧数据库的共有结构,即获取新数据库和旧数据库中表名相同的数据表中相同的列名,然后组装与所述共有结构相对应的升级语句,例如insert或replace语句,但并不限于此语句。
执行模块,用于对新数据库批量执行所述升级语句;
当获取完成新数据库和旧数据库中全部的共有结构,并组装所有与所述共有结构相对应的升级语句之后,执行模块对新数据库批量执行所述的升级语句,进行升级。
替换模块,用于新数据库替换旧数据库,完成数据库的升级。
当执行升级语句完成之后,旧数据库中的数据已经拷贝到新数据库中,因此替换模块用新数据库替换旧数据库,完成数据库的升级。
进一步地,请参考图4,所述的一种实现数据库升级的装置,其中所述升级模块进一步包括:
获取模块,用于从新数据库中获取一个表名;
查找模块,用于查找旧数据库是否存在与获取的表名相同的表名,若是,则触发组装升级模块,若否,则触发判断模块;
组装升级模块,用于根据新数据库和旧数据库中,具有所述相同的表名的数据表中的相同列名,组装升级语句;
判断模块,用于判断是否已经获取完新数据库中的所有表名,若是,则转至执行模块,若否,从新数据库中获取下一个表名后转至查找模块。
进一步地,请参考图5,所述的一种实现数据库升级的装置中的升级模块,其中所述组装升级模块进一步包括:
获取子模块,用于从新数据表中获取一个列名,所述的新数据表是指新数据库中的表;
查找子模块,用于查找旧数据表是否存在与获取的列名相同的列名,若是,触发组装升级子模块,若否,触发判断子模块,所述旧数据表是指旧数据库中的表;
组装升级子模块,用于组装升级语句;
判断子模块,用于判断是否已经获取完新数据表中所有列名,若是,则转至判断模块,若否,从数据表中获取下一个列名之后返回查找子模块。
以上所述仅仅为本发明较佳的实现方式,任何基于本发明精神所做出的等同的修改皆应涵盖于本发明的权利要求范围中。

Claims (8)

1.一种实现数据库升级的方法,适用于关系型数据库,其特征在于,所述方法包括:
步骤a、建立新数据库,所述新数据库为新版本数据库;
步骤b、获取新数据库与旧数据库的共有结构,根据所述共有结构组装升级语句,所述旧数据库为旧版本数据库;
步骤c、对新数据库批量执行所述升级语句;
步骤d、用新数据库替换旧数据库,完成数据库的升级。
2.如权利要求1所述的方法,其特征在于:
所述共有结构为新数据库和旧数据库中表名相同的数据表中相同的列名。
3.如权利要求1所述的方法,其特征在于,所述步骤b具体包括:
步骤b1、从新数据库中获取一个表名;
步骤b2、查找旧数据库是否存在与获取的表名相同的表名,若是,执行步骤b3,若否,执行步骤b4;
步骤b3、根据新数据库和旧数据库中,具有所述相同的表名的数据表中的相同列名,组装升级语句;
步骤b4、判断是否已经获取完新数据库中的所有表名,若是,执行步骤c,若否,从新数据库中获取下一个表名后返回步骤b2。
4.如权利要求3所述的方法,其特征在于,所述步骤b3具体包括:
步骤b31、从新数据表中获取一个列名,所述的新数据表是指新数据库中的表;
步骤b32、查找旧数据表是否存在与获取的列名相同的列名,若是,执行步骤b33,若否,则执行步骤b34,所述旧数据表是指旧数据库中的表;
步骤b33、组装升级语句;
步骤b34、判断是否已经获取完新数据表中所有列名,若是,则执行步骤b4,若否,从数据表中获取下一个列名之后返回步骤b32。
5.一种实现数据库升级的装置,适用于关系型数据库,其特征在于,所述装置包括:
创建模块,用于建立新数据库,所述新数据库为新版本数据库;
升级模块,用于获取新数据库与旧数据库的共有结构,根据所述共有结构组装升级语句,所述旧数据库为旧版本数据库;
执行模块,用于对新数据库批量执行所述升级语句;
替换模块,用于新数据库替换旧数据库,完成数据库的升级。
6.如权利要求5所述的装置,其特征在于:
所述共有结构为新数据库和旧数据库中表名相同的数据表中相同的列名。
7.如权利要求5所述的装置,其特征在于,所述升级模块进一步包括:
获取模块,用于从新数据库中获取一个表名;
查找模块,用于查找旧数据库是否存在与获取的表名相同的表名,若是,则触发组装升级模块,若否,则触发判断模块;
组装升级模块,用于根据新数据库和旧数据库中,具有所述相同的表名的数据表中的相同列名,组装升级语句;
判断模块,用于判断是否已经获取完新数据库中的所有表名,若是,则转至执行模块,若否,从新数据库中获取下一个表名后转至查找模块。
8.如权利要求7所述的方法,其特征在于,所述组装升级模块包括:
获取子模块,用于从新数据表中获取一个列名,所述的新数据表是指新数据库中的表;
查找子模块,用于查找旧数据表是否存在与获取的列名相同的列名,若是,触发组装升级子模块,若否,触发判断子模块,所述旧数据表是指旧数据库中的表;
组装升级子模块,用于组装升级语句;
判断子模块,用于判断是否已经获取完新数据表中所有列名,若是,则转至判断模块,若否,从数据表中获取下一个列名之后返回查找子模块。
CN2012104179346A 2012-10-26 2012-10-26 一种数据库升级的方法及装置 Pending CN102902818A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2012104179346A CN102902818A (zh) 2012-10-26 2012-10-26 一种数据库升级的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2012104179346A CN102902818A (zh) 2012-10-26 2012-10-26 一种数据库升级的方法及装置

Publications (1)

Publication Number Publication Date
CN102902818A true CN102902818A (zh) 2013-01-30

Family

ID=47575050

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2012104179346A Pending CN102902818A (zh) 2012-10-26 2012-10-26 一种数据库升级的方法及装置

Country Status (1)

Country Link
CN (1) CN102902818A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104750774A (zh) * 2014-12-15 2015-07-01 北京星网锐捷网络技术有限公司 数据库升级方法及装置
CN105335436A (zh) * 2014-08-11 2016-02-17 方正国际软件(北京)有限公司 一种升级数据库结构的方法和设备
CN106407375A (zh) * 2016-09-12 2017-02-15 杭州迪普科技有限公司 数据库升级的方法及装置
CN106598977A (zh) * 2015-10-15 2017-04-26 北京国双科技有限公司 数据迁移方法和装置
CN107807816A (zh) * 2016-09-08 2018-03-16 阿里巴巴集团控股有限公司 服务端程序和数据库的升级方法、装置和设备
CN108431769A (zh) * 2016-01-21 2018-08-21 微软技术许可有限责任公司 无停机时间的数据库和服务升级
CN109597819A (zh) * 2018-12-07 2019-04-09 北京字节跳动网络技术有限公司 用于更新数据库的方法和装置
CN111506592A (zh) * 2020-04-21 2020-08-07 腾讯科技(深圳)有限公司 一种数据库的升级方法和装置
CN113296804A (zh) * 2020-09-01 2021-08-24 阿里云计算有限公司 升级数据库的方法以及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734887A (en) * 1995-09-29 1998-03-31 International Business Machines Corporation Method and apparatus for logical data access to a physical relational database
CN101183361A (zh) * 2006-11-13 2008-05-21 中兴通讯股份有限公司 一种关系数据库应用自动升级的方法
CN102065413A (zh) * 2010-11-17 2011-05-18 北京北方烽火科技有限公司 数据库升级方法及系统、基站自启动方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734887A (en) * 1995-09-29 1998-03-31 International Business Machines Corporation Method and apparatus for logical data access to a physical relational database
CN101183361A (zh) * 2006-11-13 2008-05-21 中兴通讯股份有限公司 一种关系数据库应用自动升级的方法
CN102065413A (zh) * 2010-11-17 2011-05-18 北京北方烽火科技有限公司 数据库升级方法及系统、基站自启动方法及系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335436A (zh) * 2014-08-11 2016-02-17 方正国际软件(北京)有限公司 一种升级数据库结构的方法和设备
CN104750774A (zh) * 2014-12-15 2015-07-01 北京星网锐捷网络技术有限公司 数据库升级方法及装置
CN106598977A (zh) * 2015-10-15 2017-04-26 北京国双科技有限公司 数据迁移方法和装置
CN108431769A (zh) * 2016-01-21 2018-08-21 微软技术许可有限责任公司 无停机时间的数据库和服务升级
CN108431769B (zh) * 2016-01-21 2021-09-17 微软技术许可有限责任公司 无停机时间的数据库和服务升级
CN107807816A (zh) * 2016-09-08 2018-03-16 阿里巴巴集团控股有限公司 服务端程序和数据库的升级方法、装置和设备
CN106407375A (zh) * 2016-09-12 2017-02-15 杭州迪普科技有限公司 数据库升级的方法及装置
CN109597819A (zh) * 2018-12-07 2019-04-09 北京字节跳动网络技术有限公司 用于更新数据库的方法和装置
CN109597819B (zh) * 2018-12-07 2020-12-18 北京字节跳动网络技术有限公司 用于更新数据库的方法和装置
CN111506592A (zh) * 2020-04-21 2020-08-07 腾讯科技(深圳)有限公司 一种数据库的升级方法和装置
CN111506592B (zh) * 2020-04-21 2023-12-26 腾讯云计算(长沙)有限责任公司 一种数据库的升级方法和装置
CN113296804A (zh) * 2020-09-01 2021-08-24 阿里云计算有限公司 升级数据库的方法以及装置

Similar Documents

Publication Publication Date Title
CN102902818A (zh) 一种数据库升级的方法及装置
CN100570604C (zh) 一种关系数据库应用自动升级的方法
CN104133772A (zh) 一种自动生成测试数据的方法
CN102402559A (zh) 一种数据库升级脚本的生成方法和装置
CN104899295B (zh) 一种异构数据源数据关联分析方法
CN103440303A (zh) 一种异构云存储系统及其数据处理方法
CN102254021A (zh) 基于虚拟机管理系统的数据库构建方法
CN103049251B (zh) 一种数据库持久层装置及数据库操作方法
CN103559025A (zh) 一种采用聚类方式进行软件重构的方法
CN102426587A (zh) 一种基于复杂产品异构bom的定制查询方法
CN102156640A (zh) 一种数据操作代码生成方法
CN103995698A (zh) 一种面向业务的应用表单敏捷开发方法及系统
CN102393889A (zh) 一种权限配置管理系统
CN105653716A (zh) 一种基于分类-属性-值的数据库构造方法和构造系统
CN109977099A (zh) 数据库部署方法、用户设备、存储介质及装置
CN101887464A (zh) 显示数据库中的数据的方法、装置
CN103246704A (zh) 一种基于通用数据结构描述的实体与关系数据的映射方法
CN105447105A (zh) 基于NoSQL的分布式物联网数据的单字段区间索引查询方式
CN103593182A (zh) 一种采用聚类方式进行软件重构的方法
CN104915412A (zh) 一种动态管理数据库连接的方法及系统
CN102148714A (zh) 软件升级方法和设备
CN106789236B (zh) 一种融合WiFiP2P的FOTA远程在线升级的方法
CN112925767A (zh) 基于互联网监管的多数据源动态数据同步治理方法及系统
CN103177016A (zh) 关系型数据库访问方法和装置
CN103020285A (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
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20130130