CN107861737A - 一种大型系统的数据库版本迁移方法 - Google Patents
一种大型系统的数据库版本迁移方法 Download PDFInfo
- Publication number
- CN107861737A CN107861737A CN201711077111.2A CN201711077111A CN107861737A CN 107861737 A CN107861737 A CN 107861737A CN 201711077111 A CN201711077111 A CN 201711077111A CN 107861737 A CN107861737 A CN 107861737A
- Authority
- CN
- China
- Prior art keywords
- version
- database
- file
- migration
- record
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本发明涉及软件版本升级技术领域,特别是一种大型系统的数据库版本迁移方法。本发明的方法是定义各组件数据库版本迁移文件;新增各组件数据库中版本迁移数据表;迁移子程序读取配置文件,根据传入参数执行数据库版本迁移。本发明提出了一种大型系统的数据库版本迁移方法,具有通用性,方便大型系统在进行版本升级时数据库版本变更的管理。
Description
技术领域
本发明涉及软件版本升级技术领域,特别是一种大型系统的数据库版本迁移方法。
背景技术
随着软件系统的功能越来越强大,相应的其复杂度也会越来越大。特别的,软件系统在整个生命周期内需要不断的升级,有时候根据实际需要也需要从高级版本降低到更低版本。系统的每一层升降级都会带来很大的工作量,尤其是当系统是一个异构多组件系统时,其升降级难度和复杂度会非常大。
在一个大型系统的版本升级过程中,最主要的也是最常见的升级就是数据库版本的变更,特别的,当一个大型系统是由多个组件组成,每个组件由不同的开发团队负责时,数据库的版本变更就变得非常的难以控制。
发明内容
本发明解决的技术问题在于提出一种大型系统的数据库版本迁移方法,实现对系统版本升级过程中系统数据库版本的有效管理,简化升降级版本的复杂度和难度。
本发明解决上述技术问题的技术方案是:
所述的方法包括如下步骤:
(1)定义各组件数据库版本迁移文件;包括设置迁移文件的文件名格式和内容格式;
(2)新增各组件数据库中版本迁移数据表;
(3)迁移子程序读取配置文件,获取组件数据库连接属性,包括组件数据库所在服务器IP、端口号,登录组件数据库的用户名和密码;
(4)读取组建数据库gc_db_version版本表,根据组件数据库名字读取当前版本,如果获取不到当前版本号,则返回默认版本0;
(5)根据当前版本和参数传递的目标版本从数据库版本迁移文件目录中获取需要执行的版本迁移文件列表;
(6)依次执行版本迁移文件,记录执行后的响应输出;如果执行成功,则将文件名添加到成功文件数组里,同时向gc_db_migrate_log表写入迁移记录;
(7)如果中途版本执行出现错误,则记录错误,然后根据成功的文件数组获取回滚的数组,并且执行回滚操作,同时向gc_db_migrate_log表写入迁移记录;
(8)当版本迁移文件列表全部成功执行完之后,更新gc_db_version版本号为本次目标版本号。
所述的设置迁移文件的文件名格式和内容格式如下:
(11)数据库版本迁移文件文件名格式设置,包括如下设置:
升级变更记录文件,格式:版本_up_数据库名#备注.sql;
降级变更记录文件,格式:版本_down_数据库名#备注.sql。
(12)数据库版本迁移文件文件内容格式设置,包括如下设置:
以注释的方式记录每一次增加变更记录的变更日期、变更人、变更内容描述;
以SQL语句的形式定义数据库表结构及表数据的变更;
所述每一次增加变更记录都必须同时增加升级变更记录文件和降级变更记录文件,且文件名版本一致,文件内容中数据库SQL变更脚本相对。
所述新增各组件数据库中版本迁移数据表包括:
(21)gc_db_version版本表,用于记录组件数据库当前版本,包括组件数据库名称字段和版本字段;
(22)gc_db_migrate_log数据库版本迁移日志表,用于记录组件数据库版本迁移历史记录,主要包括UUID字段,数据库版本迁移文件文件名字段,版本字段,迁移类型字段,迁移结果字段,迁移错误码字段,迁移时间字段。
所述迁移子程序是一个通用的独立于大型系统的单独程序,可以是用java编写的一个可执行jar包文件程序;
所述迁移子程序的配置文件指定组件数据库版本迁移文件所在地址目录。
所述数据库版本迁移包括数据表的增加、删除和修改,数据表结构字段的增加、删除和修改,数据表内容记录的增加、删除和修改。
本发明方案的有益效果如下:
1、本发明方法提供一个统一的变更方法,可以有效的降低大型软件系统(尤其是多组件多团队开发的大型异构系统)数据库版本变更过程中的难度和复杂度。
2、本发明提供一种大型系统的数据库版本迁移方法,具有通用性且实现简单,独立于大型系统本身,可以被大型系统开发团队集成实现。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明方法的流程图;
图2为本发明方法的另一个子流程图。
具体实施方式
本发明解决的技术在于提出了一种大型系统的数据库版本迁移方法,实现了对大型系统版本变更过程中数据库版本迁移的有效管理,简化升降级版本的复杂度和难度。
请参见图1、2。下面分别对其各个流程具体实现进行描述。
(1)定义各组件数据库版本迁移文件,以国云G-Cloud云操作系统总线适配层组件gcloud-esb-web为例,设置数据库升级变更记录文件和降级变更记录文件,如下:
0001_up_gcloud_esb#initData.sql
0001_down_gcloud_esb#initData.sql
0002_up_gcloud_esb#remark.sql
0002_down_gcloud_esb#remark.sql
其中0001_up_gcloud_esb#initData.sql和
001_down_gcloud_esb#initData.sql为组件数据库的初始SQL文件;
0002_up_gcloud_esb#remark.sql和0002_down_gcloud_esb#remark.sql
为组件数据库的一次变更SQL文件,其内容如下所示:
1)0002_up_gcloud_esb#remark.sql
USE gcloud_esb;
--20161114 add docker module
INSERT INTO`module`VALUES(’81’,’dc’,’COMPUTE’);
--20170116 yuanjz add schedule module
INSERT INTO`module`(`id`,`uri`,`componentType`)VALUES(’82’,’schedule’,’COMPUTE’);
……
2)0002_down_gcloud_esb#remark.sql
USE gcloud_esb;
--20161114 add docker module
DELETE FROM`module`WHERE id=’81’;
--20170116 yuanjz add schedule module
DELETE FROM`module`WHERE id=’82’;
……
以上版本迁移文件定义中,升级变更记录文件0002_up_gcloud_esb#remark.sql中定义了两条向gcloud_esb数据库的module数据表中插入记录的SQL语句;相应的,降级变更记录文件0002_down_gcloud_esb#remark.sql中定义了两条向gcloud_esb数据库的module数据表中移除记录的SQL语句,并且每一条记录中都以注释的方式记录每一次增加变更记录的变更日期、变更人、变更内容描述。
(2)新增各组件数据库中版本迁移数据表;
1)gc_db_vetsion版本表
2)gc_db_migrate_log数据库版本迁移日志表
(3)迁移子程序读取配置文件,根据传入参数执行数据库版本迁移。
其中依次执行数据库版本变更文件部分实现伪代码如下(DbSqlOperateImpl类subExecute方法):
以上描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出实质性创造所获得的方案,都属于本发明保护的范围。
Claims (7)
1.一种大型系统的数据库版本迁移方法,其特征在于:所述的方法包括如下步骤:
(1)定义各组件数据库版本迁移文件;包括设置迁移文件的文件名格式和内容格式;
(2)新增各组件数据库中版本迁移数据表;
(3)迁移子程序读取配置文件,获取组件数据库连接属性,包括组件数据库所在服务器IP、端口号,登录组件数据库的用户名和密码;
(4)读取组建数据库gc_db_version版本表,根据组件数据库名字读取当前版本,如果获取不到当前版本号,则返回默认版本0;
(5)根据当前版本和参数传递的目标版本从数据库版本迁移文件目录中获取需要执行的版本迁移文件列表;
(6)依次执行版本迁移文件,记录执行后的响应输出;如果执行成功,则将文件名添加到成功文件数组里,同时向gc_db_migrate_log表写入迁移记录;
(7)如果中途版本执行出现错误,则记录错误,然后根据成功的文件数组获取回滚的数组,并且执行回滚操作,同时向gc_db_migrate_log表写入迁移记录;
(8)当版本迁移文件列表全部成功执行完之后,更新gc_db_version版本号为本次目标版本号。
2.根据权利要求1所述的方法,其特征在于,所述的设置迁移文件的文件名格式和内容格式如下:
(11)数据库版本迁移文件文件名格式设置,包括如下设置:
升级变更记录文件,格式:版本_up_数据库名#备注.sql;
降级变更记录文件,格式:版本_down_数据库名#备注.sql。
(12)数据库版本迁移文件文件内容格式设置,包括如下设置:
以注释的方式记录每一次增加变更记录的变更日期、变更人、变更内容描述;
以SQL语句的形式定义数据库表结构及表数据的变更;
所述每一次增加变更记录都必须同时增加升级变更记录文件和降级变更记录文件,且文件名版本一致,文件内容中数据库SQL变更脚本相对。
3.根据权利要求1所述的方法,其特征在于,所述新增各组件数据库中版本迁移数据表包括:
(21)gc_db_version版本表,用于记录组件数据库当前版本,包括组件数据库名称字段和版本字段;
(22)gc_db_migrate_log数据库版本迁移日志表,用于记录组件数据库版本迁移历史记录,主要包括UUID字段,数据库版本迁移文件文件名字段,版本字段,迁移类型字段,迁移结果字段,迁移错误码字段,迁移时间字段。
4.根据权利要求2所述的方法,其特征在于,所述新增各组件数据库中版本迁移数据表包括:
(21)gc_db_vetsion版本表,用于记录组件数据库当前版本,包括组件数据库名称字段和版本字段;
(22)gc_db_migrate_log数据库版本迁移日志表,用于记录组件数据库版本迁移历史记录,主要包括UUID字段,数据库版本迁移文件文件名字段,版本字段,迁移类型字段,迁移结果字段,迁移错误码字段,迁移时间字段。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述迁移子程序是一个通用的独立于大型系统的单独程序,可以是用java编写的一个可执行jar包文件程序;
所述迁移子程序的配置文件指定组件数据库版本迁移文件所在地址目录。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述数据库版本迁移包括数据表的增加、删除和修改,数据表结构字段的增加、删除和修改,数据表内容记录的增加、删除和修改。
7.根据权利要求5所述的方法,其特征在于,所述数据库版本迁移包括数据表的增加、删除和修改,数据表结构字段的增加、删除和修改,数据表内容记录的增加、删除和修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711077111.2A CN107861737A (zh) | 2017-11-06 | 2017-11-06 | 一种大型系统的数据库版本迁移方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711077111.2A CN107861737A (zh) | 2017-11-06 | 2017-11-06 | 一种大型系统的数据库版本迁移方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107861737A true CN107861737A (zh) | 2018-03-30 |
Family
ID=61700945
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711077111.2A Withdrawn CN107861737A (zh) | 2017-11-06 | 2017-11-06 | 一种大型系统的数据库版本迁移方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107861737A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189783A (zh) * | 2018-08-03 | 2019-01-11 | 北京涛思数据科技有限公司 | 一种时序数据库表结构改变处理方法 |
CN111061699A (zh) * | 2019-11-05 | 2020-04-24 | 广西电网有限责任公司 | 一种电能表数据库版本更新的方法及装置 |
CN112799697A (zh) * | 2021-01-05 | 2021-05-14 | 上海浪潮云计算服务有限公司 | 一种基于标准框架的配置文件版本迁移方法 |
CN113420010A (zh) * | 2021-06-23 | 2021-09-21 | 建信金融科技有限责任公司 | 数据库的管理方法、装置、电子设备和存储介质 |
CN115658119A (zh) * | 2022-12-26 | 2023-01-31 | 北京沃德博创信息科技有限公司 | 一种根据软件版本迁移配置数据的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971556A (zh) * | 2005-11-26 | 2007-05-30 | 华为技术有限公司 | 在后台管理系统中实现数据库升级的系统和方法 |
CN101174222A (zh) * | 2006-10-31 | 2008-05-07 | 中兴通讯股份有限公司 | 数据版本升级方法 |
US20130138695A1 (en) * | 2011-11-30 | 2013-05-30 | Autodesk, Inc. | Database versioning system |
CN105630898A (zh) * | 2015-12-18 | 2016-06-01 | 国云科技股份有限公司 | 一种适用于应用程序数据库表数据版本切换的方法 |
-
2017
- 2017-11-06 CN CN201711077111.2A patent/CN107861737A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1971556A (zh) * | 2005-11-26 | 2007-05-30 | 华为技术有限公司 | 在后台管理系统中实现数据库升级的系统和方法 |
CN101174222A (zh) * | 2006-10-31 | 2008-05-07 | 中兴通讯股份有限公司 | 数据版本升级方法 |
US20130138695A1 (en) * | 2011-11-30 | 2013-05-30 | Autodesk, Inc. | Database versioning system |
CN105630898A (zh) * | 2015-12-18 | 2016-06-01 | 国云科技股份有限公司 | 一种适用于应用程序数据库表数据版本切换的方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109189783A (zh) * | 2018-08-03 | 2019-01-11 | 北京涛思数据科技有限公司 | 一种时序数据库表结构改变处理方法 |
CN109189783B (zh) * | 2018-08-03 | 2023-10-03 | 北京涛思数据科技有限公司 | 一种时序数据库表结构改变处理方法 |
CN111061699A (zh) * | 2019-11-05 | 2020-04-24 | 广西电网有限责任公司 | 一种电能表数据库版本更新的方法及装置 |
CN111061699B (zh) * | 2019-11-05 | 2024-02-09 | 广西电网有限责任公司 | 一种电能表数据库版本更新的方法及装置 |
CN112799697A (zh) * | 2021-01-05 | 2021-05-14 | 上海浪潮云计算服务有限公司 | 一种基于标准框架的配置文件版本迁移方法 |
CN112799697B (zh) * | 2021-01-05 | 2023-12-22 | 上海浪潮云计算服务有限公司 | 一种基于标准框架的配置文件版本迁移方法 |
CN113420010A (zh) * | 2021-06-23 | 2021-09-21 | 建信金融科技有限责任公司 | 数据库的管理方法、装置、电子设备和存储介质 |
CN113420010B (zh) * | 2021-06-23 | 2023-05-26 | 中国建设银行股份有限公司 | 数据库的管理方法、装置、电子设备和存储介质 |
CN115658119A (zh) * | 2022-12-26 | 2023-01-31 | 北京沃德博创信息科技有限公司 | 一种根据软件版本迁移配置数据的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107861737A (zh) | 一种大型系统的数据库版本迁移方法 | |
US11663257B2 (en) | Design-time information based on run-time artifacts in transient cloud-based distributed computing clusters | |
US20200201748A1 (en) | Systems and methods for testing source code | |
US20210326194A1 (en) | Integrating a process cloud services system with an intelligence cloud service based on converted pcs analytics data | |
US10509696B1 (en) | Error detection and mitigation during data migrations | |
US11042503B1 (en) | Continuous data protection and restoration | |
US11860741B2 (en) | Continuous data protection | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN105005618A (zh) | 一种异构数据库之间的数据同步方法及系统 | |
US8135732B2 (en) | System and method for providing network-based services to users with high availability | |
US11237911B2 (en) | Object store for database backups | |
US10311030B1 (en) | Method and system for implementing an automated migration tool | |
CN103810272A (zh) | 一种数据处理方法和系统 | |
CN103139281A (zh) | 个性化印刷系统及其控制方法 | |
US9104742B1 (en) | Method and system for optimized parallel queuing | |
US10055474B1 (en) | Method and system for connecting a content repository to a file sharing service | |
CN111048164A (zh) | 一种医学大数据长期保存系统 | |
US20100325139A1 (en) | Service Provider Management Console | |
US10963227B2 (en) | Technique for transforming a standard messaging component to a customized component | |
Singh et al. | Mastering Hadoop 3: Big data processing at scale to unlock unique business insights | |
US20180004767A1 (en) | REST APIs for Data Services | |
CN106201193A (zh) | 一种在移动终端中显示应用信息的方法和装置 | |
US20200073727A1 (en) | Scheduling software jobs having dependencies | |
CN115952238A (zh) | 一种数据同步的方法及装置 | |
CN108763471A (zh) | 一种部署集群中http文件服务器的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180330 |
|
WW01 | Invention patent application withdrawn after publication |