CN112100194A - 一种数据库版本管理方法及系统 - Google Patents

一种数据库版本管理方法及系统 Download PDF

Info

Publication number
CN112100194A
CN112100194A CN202011081322.5A CN202011081322A CN112100194A CN 112100194 A CN112100194 A CN 112100194A CN 202011081322 A CN202011081322 A CN 202011081322A CN 112100194 A CN112100194 A CN 112100194A
Authority
CN
China
Prior art keywords
version
database
metadata table
migration
file
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
Application number
CN202011081322.5A
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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202011081322.5A priority Critical patent/CN112100194A/zh
Publication of CN112100194A publication Critical patent/CN112100194A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据库版本管理方法及系统,所述方法包括:管理系统启动,根据配置数据源文件连接待同步数据库;检查元数据表是否存在,如果不存在,创建元数据表,所述元数据表用于记录数据库版本变更历史及版本校验码;如果元数据表存在,读取元数据表的执行记录,验证已迁移版本文件;将存储装置中的版本文件与元数据表中的执行记录进行比对:如果该版本在元数据表中存在,则跳过此版本;如果该版本在元数据表中不存在,则扫描存储装置中的版本文件,按照顺序将版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录。所述系统包括存储装置和功能装置。本发明实现了记录数据库版本演化过程,根据需求完成数据库版本升级。

Description

一种数据库版本管理方法及系统
技术领域
本发明涉及数据库开发领域,具体涉及一种数据库版本管理方法及系统。
背景技术
在软件项目开发初期,会对数据库进行全局设计。但是随着产品开发过程中需求的变化,经常会遇到更新数据库模式(schema)的情况,比如新增表、新增字段或者新增数据等情况。当开发人员完成了数据库脚本的开发后,通常需要对其它开发者的数据库或者测试环境等进行数据库脚本的同步,由于各环境的管理者不同,通常需要不同的角色手动执行脚本,完成脚本的更新。
然而,不同环境场景下的数据库同步,可能导致项目组中各研发角色对数据库维护造成本地与原始环境出现差异性,影响版本升级的准确性。
发明内容
为了解决上述技术问题,本发明提出了一种数据库版本管理方法及系统,实现了对数据库版本的演化过程进行记录,根据需求完成数据库版本的升级更新。
为实现上述目的,本发明采用以下技术方案:
一种数据库版本管理方法,包括:
管理系统启动,根据配置数据源文件连接待同步数据库;
检查元数据表是否存在,如果不存在,创建元数据表,所述元数据表用于记录数据库版本变更历史及版本校验码;
如果元数据表存在,读取元数据表的执行记录,验证已迁移版本文件;
将存储装置中的版本文件与元数据表中的执行记录进行比对:如果该版本在元数据表中存在,则跳过此版本;
如果该版本在元数据表中不存在,则扫描存储装置中的版本文件,按照顺序将版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录。
进一步地,所述验证已迁移版本文件,包括:
将元数据表中的版本校验码与存储装置中的版本文件的校验码进行比对;
如果校验码相同,验证通过;
如果校验码不同,验证失败,调用对应版本文件,在待同步数据库中更新。
进一步地,若版本文件迁移失败,则读取存储装置中的撤销脚本,将数据库中版本文件回滚至本次迁移前的版本。
进一步地,当元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
进一步地,当需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象。
进一步地,还包括:读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本。
本发明还提出了一种数据库版本管理系统,包括存储装置和功能装置;
所述存储装置用于存放数据库脚本;
所述功能装置包括:
配置数据源文件,用于配置连接执行版本同步的待同步数据库;
迁移模块,用于比对存储装置中的版本文件与元数据表中的执行记录,将存储装置中的版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录;
验证模块,用于根据读取的元数据表执行记录,验证已迁移版本文件。
进一步地,所述功能装置还包括撤销模块,用于在版本文件迁移失败时,按照文件迁移的执行倒序顺序撤销迁移,直到目标版本以下。
进一步地,所述存储装置包括版本升级脚本库、撤销迁移脚本库和可重复迁移脚本库;
所述版本升级脚本库被迁移模块调用,用于创建、修改、删除表、数据调整;每个版本升级脚本在元数据表中写入一条记录,包括版本号、描述、校验码;所述版本号作为唯一标识记录数据库的迁移过程;
所述撤销迁移脚本库被撤销模块调用,用于对最新执行的版本迁移进行撤销;
所述可重复迁移脚本库被迁移模块调用,用于管理不稳定的数据库对象,可以按照顺序重复执行。
进一步地,所述功能装置还包括打印模块,用于读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本;
清除模块,用于在需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象;
修复模块,用于在元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
本发明的有益效果是:
本发明通过提出一种数据库版本管理方法及系统,解决了数据库同步出现差异的问题,本发明实通过建立元数据表的方式记录追踪SQL语句的执行状态,根据需求完成版本的升级更新。
本发明针对分布式数据库实现同步管理,便于对数据库修改记录进行追踪,实现不同环境场景下的数据库同步,避免了项目组中各研发角色对数据库维护造成本地与原始环境的差异性,有效提升版本升级准确性。
附图说明
图1是本发明实施例数据库版本管理方法流程示意图;
图2是本发明实施例数据库版本管理系统结构示意图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
如图1所示,本发明实施例公开了一种数据库版本管理方法,包括:
管理系统启动,根据配置数据源文件连接待同步数据库;
检查元数据表是否存在,如果不存在,创建元数据表,所述元数据表用于记录数据库版本变更历史及版本校验码;
如果元数据表存在,读取元数据表的执行记录,验证已迁移版本文件;
将存储装置中的版本文件与元数据表中的执行记录进行比对:如果该版本在元数据表的version字段中存在,则跳过此版本,进入下一版本的比对中;
如果该版本在元数据表中不存在,则扫描存储装置中的版本文件,按照顺序将版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录。
具体地,所述元数据表的表字段包括installed_rank、version、description、type、script、checksum(检验码)、installed_by(责任人)、installed_on(执行时间)、success(是否执行成功)等。
所述验证已迁移版本文件,包括:
将元数据表中的版本校验码checksum值与存储装置中的版本文件的校验码checksum值进行比对;
如果校验码相同,验证通过;
如果校验码不同,验证失败,说明存储装置中的文件发生了变更,此时调用对应版本文件,在待同步数据库中更新,防止数据不一致的情况发生。
如果版本文件迁移成功,元数据表的sucess字段写入y;如果版本文件迁移失败,元数据表的sucess字段写入n,执行撤销操作,读取存储装置中的撤销脚本,将数据库中版本文件回滚至本次迁移前的版本。
当元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
在项目开发与测试阶段中,当需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象。具体删除的对象包括:表结构、视图、存储过程、函数及数据。
本发明实施例的数据库版本管理方法还包括:读取元数据表的执行记录,打印版本文件迁移信息,用于定位当前数据库版本,查看迁移数据的执行状态,包括执行记录,是否执行以及执行是否成功等。
如图2所示,本发明实施例还公开了一种数据库版本管理系统,包括存储装置和功能装置;
所述存储装置用于存放数据库脚本;包括版本升级脚本库、撤销迁移脚本库和可重复迁移脚本库;
所述版本升级脚本库被迁移模块调用,用于创建、修改、删除表、数据调整等操作,用做普通的DDL(Data Definition Language,数据定义语言)、DML(Data ManipulationLanguage,数据操纵语言)变更,DDL包括cerate、drop、alter等,DML包括insert、delete、update等;每个版本升级脚本在元数据表中写入一条记录,包括版本号、描述、校验码;所述版本号作为唯一标识记录数据库的迁移过程;
所述撤销迁移脚本库被撤销模块调用,用于对最新执行的版本迁移进行撤销;开发人员提供版本升级脚本时,同步提供对应的撤销迁移脚本,供恢复数据库使用;
所述可重复迁移脚本库被迁移模块调用,包括可重复加载的版本脚本,用于管理不稳定的数据库对象,可以按照顺序重复执行。
所述功能装置包括:
配置数据源文件,用于配置连接执行版本同步的待同步数据库;
迁移模块,用于比对存储装置中的版本文件与元数据表中的执行记录,将存储装置中的版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录;
验证模块,用于根据读取的元数据表执行记录,验证已迁移版本文件。
功能装置还包括:
撤销模块,用于在版本文件迁移失败时,按照文件迁移的执行倒序顺序撤销迁移,直到目标版本以下;
打印模块,用于读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本;
清除模块,用于在需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象;
修复模块,用于在元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制。对于所属领域的技术人员来说,在上述说明的基础上还可以做出其它不同形式的修改或变形。这里无需也无法对所有的实施方式予以穷举。在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。

Claims (10)

1.一种数据库版本管理方法,其特征在于,包括:
管理系统启动,根据配置数据源文件连接待同步数据库;
检查元数据表是否存在,如果不存在,创建元数据表,所述元数据表用于记录数据库版本变更历史及版本校验码;
如果元数据表存在,读取元数据表的执行记录,验证已迁移版本文件;
将存储装置中的版本文件与元数据表中的执行记录进行比对:如果该版本在元数据表中存在,则跳过此版本;
如果该版本在元数据表中不存在,则扫描存储装置中的版本文件,按照顺序将版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录。
2.根据权利要求1所述的数据库版本管理方法,其特征在于,所述验证已迁移版本文件,包括:
将元数据表中的版本校验码与存储装置中的版本文件的校验码进行比对;
如果校验码相同,验证通过;
如果校验码不同,验证失败,调用对应版本文件,在待同步数据库中更新。
3.根据权利要求1所述的数据库版本管理方法,其特征在于,若版本文件迁移失败,则读取存储装置中的撤销脚本,将数据库中版本文件回滚至本次迁移前的版本。
4.根据权利要求1所述的数据库版本管理方法,其特征在于,当元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
5.根据权利要求1所述的数据库版本管理方法,其特征在于,当需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象。
6.根据权利要求1所述的数据库版本管理方法,其特征在于,还包括:读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本。
7.一种数据库版本管理系统,其特征在于,包括存储装置和功能装置;
所述存储装置用于存放数据库脚本;
所述功能装置包括:
配置数据源文件,用于配置连接执行版本同步的待同步数据库;
迁移模块,用于比对存储装置中的版本文件与元数据表中的执行记录,将存储装置中的版本文件迁移到待同步数据库,并将版本的升级信息写入元数据表的执行记录;
验证模块,用于根据读取的元数据表执行记录,验证已迁移版本文件。
8.根据权利要求7所述的数据库版本管理系统,其特征在于,所述功能装置还包括撤销模块,用于在版本文件迁移失败时,按照文件迁移的执行倒序顺序撤销迁移,直到目标版本以下。
9.根据权利要求8所述的数据库版本管理系统,其特征在于,所述存储装置包括版本升级脚本库、撤销迁移脚本库和可重复迁移脚本库;
所述版本升级脚本库被迁移模块调用,用于创建、修改、删除表、数据调整;每个版本升级脚本在元数据表中写入一条记录,包括版本号、描述、校验码;所述版本号作为唯一标识记录数据库的迁移过程;
所述撤销迁移脚本库被撤销模块调用,用于对最新执行的版本迁移进行撤销;
所述可重复迁移脚本库被迁移模块调用,用于管理不稳定的数据库对象,可以按照顺序重复执行。
10.根据权利要求7所述的数据库版本管理系统,其特征在于,所述功能装置还包括打印模块,用于读取元数据表的执行记录,打印版本文件迁移信息,定位当前数据库版本;
清除模块,用于在需要重新更新和生成数据库的表结构时,删除已配置构架中的所有对象;
修复模块,用于在元数据表发生错误时,调用修复执行的历史记录表,删除执行失败的元数据记录。
CN202011081322.5A 2020-10-10 2020-10-10 一种数据库版本管理方法及系统 Withdrawn CN112100194A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011081322.5A CN112100194A (zh) 2020-10-10 2020-10-10 一种数据库版本管理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011081322.5A CN112100194A (zh) 2020-10-10 2020-10-10 一种数据库版本管理方法及系统

Publications (1)

Publication Number Publication Date
CN112100194A true CN112100194A (zh) 2020-12-18

Family

ID=73783831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011081322.5A Withdrawn CN112100194A (zh) 2020-10-10 2020-10-10 一种数据库版本管理方法及系统

Country Status (1)

Country Link
CN (1) CN112100194A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420010A (zh) * 2021-06-23 2021-09-21 建信金融科技有限责任公司 数据库的管理方法、装置、电子设备和存储介质
CN113741931A (zh) * 2021-08-18 2021-12-03 苏州浪潮智能科技有限公司 软件升级方法、装置、电子设备及可读存储介质
CN114760320A (zh) * 2020-12-29 2022-07-15 广州视源电子科技股份有限公司 客户端与中台服务器的数据同步方法、系统及客户端
WO2023123768A1 (zh) * 2021-12-27 2023-07-06 中国民航信息网络股份有限公司 一种制品管理方法、系统、存储介质和电子设备
CN117971565A (zh) * 2024-03-29 2024-05-03 天津南大通用数据技术股份有限公司 一种恢复列存储分布式数据库误删除数据的方法及系统

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114760320A (zh) * 2020-12-29 2022-07-15 广州视源电子科技股份有限公司 客户端与中台服务器的数据同步方法、系统及客户端
CN114760320B (zh) * 2020-12-29 2023-09-12 广州视源电子科技股份有限公司 客户端与中台服务器的数据同步方法、系统及客户端
CN113420010A (zh) * 2021-06-23 2021-09-21 建信金融科技有限责任公司 数据库的管理方法、装置、电子设备和存储介质
CN113741931A (zh) * 2021-08-18 2021-12-03 苏州浪潮智能科技有限公司 软件升级方法、装置、电子设备及可读存储介质
CN113741931B (zh) * 2021-08-18 2023-07-25 苏州浪潮智能科技有限公司 软件升级方法、装置、电子设备及可读存储介质
WO2023123768A1 (zh) * 2021-12-27 2023-07-06 中国民航信息网络股份有限公司 一种制品管理方法、系统、存储介质和电子设备
CN117971565A (zh) * 2024-03-29 2024-05-03 天津南大通用数据技术股份有限公司 一种恢复列存储分布式数据库误删除数据的方法及系统

Similar Documents

Publication Publication Date Title
CN112100194A (zh) 一种数据库版本管理方法及系统
US7739547B2 (en) Failure recovery and error correction techniques for data loading in information warehouses
US9996341B2 (en) Infrastructure for the automation of the assembly of schema maintenance scripts
US10810248B2 (en) Upgrading a database from a first version to a second version
CN110209735B (zh) 数据库备份方法、数据库备份装置、计算设备和存储介质
EP2194467A1 (en) Extend CRUD to support lifecycle management and business continuity
CN101308471B (zh) 一种恢复数据的方法及装置
US7487385B2 (en) Apparatus and method for recovering destroyed data volumes
CN106991104B (zh) 数据库脚本部署装置和数据库脚本部署方法
US11537570B2 (en) Systems and/or methods for migrating live database schemas to support zero downtime deployments with zero data losses
CN111104151B (zh) 一种基于Shell脚本的Git代码简化的管理方法
CN109947742B (zh) 面向二阶段锁的多版本数据库并发控制方法和系统
CN102193841B (zh) 一种Subversion配置库的备份方法及装置
EP2797001B1 (en) System and method for creating variants in a test database during various test stages
CN114564500A (zh) 在区块链系统中实现结构化数据存储和查询的方法和系统
CN112966025A (zh) 一种binlog日志挖掘字典实现方法
CN114003266B (zh) 一种基于Android刷机固件生成多个差分包的方法与装置
CN113792026B (zh) 数据库脚本的部署方法、装置及计算机可读存储介质
CN115658391A (zh) 基于QianBase MPP数据库的WAL机制的备份恢复方法
CN111240891A (zh) 基于数据库多表间数据一致性的数据恢复方法及装置
CN114490570A (zh) 生产数据同步方法、装置、数据同步系统及服务器
CN111400243B (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置
US20170300387A1 (en) Always Current backup and recovery method on large databases with minimum resource utilization.
US10922301B1 (en) Apparatus, computer program, and method for trigger-based tracking of database modifications
CN113778997B (zh) 一种数据库版本管理方法、系统及设备

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: 20201218

WW01 Invention patent application withdrawn after publication