CN112579568A - 数据库版本处理方法及系统 - Google Patents

数据库版本处理方法及系统 Download PDF

Info

Publication number
CN112579568A
CN112579568A CN202011473856.2A CN202011473856A CN112579568A CN 112579568 A CN112579568 A CN 112579568A CN 202011473856 A CN202011473856 A CN 202011473856A CN 112579568 A CN112579568 A CN 112579568A
Authority
CN
China
Prior art keywords
change
database
version
database version
task
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
CN202011473856.2A
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.)
China Construction Bank Corp
Original Assignee
China Construction Bank Corp
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 China Construction Bank Corp filed Critical China Construction Bank Corp
Priority to CN202011473856.2A priority Critical patent/CN112579568A/zh
Publication of CN112579568A publication Critical patent/CN112579568A/zh
Pending 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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration

Landscapes

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

Abstract

本发明公开了一种数据库版本处理方法及系统,其中该方法包括:当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;集群主节点将主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;每一接到任务的集群从节点根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理。本发明可以对数据库版本进行高效地监控处理和高效部署。

Description

数据库版本处理方法及系统
技术领域
本发明涉及数据库处理技术领域,尤其涉及一种数据库版本处理方法及系统。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
大型应用系统在投产上线之前会经过完善的测试,一般会有十几套测试环境,在日常开发测试中,需要保证对这些环境数据库所做的改变保持一致性、可控性、可测试性和可重现性,并且和应用版本保持一致,因此,需要对数据库进行版本化的相应处理。
然而对数据库进行版本化处理并非易事,与软件代码的版本处理可以直接使用CC、Git、SVN等版本管理软件不同,数据库本身不是一个文件集合,它是一个存储企业最重要业务数据的容器,不可以直接应用版本管理软件。因此对数据库进行版本化处理,需要设计更为合适的方案。
另外,应用系统对应的数据库通常包含大量表、存储过程等对象,在开发测试过程中,这些对象的结构变更频繁,且为避免单一数据库热点,分散运行风险,大多采取数据分片策略,对数据库进行分库分表,这就要求数据库变更时需同步变更所有分库的所有分表。因此数据库部署工作量大、重复度高,且质量和效率受部署人员的主观影响较大。此外,各环境的数据库连接串信息、数据库版本信息各不相同,变更缺乏记录,人工处理负担严重。因此,急需通过自动化手段并行执行变更提升部署效率,简化运维操作。
发明内容
本发明实施例提供一种数据库版本处理方法,用以对数据库版本进行高效地监控处理和高效部署,该方法包括:
当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;
根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;
根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;
集群主节点将所述主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;
每一接到任务的集群从节点根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理。
本发明实施例还提供一种数据库版本处理系统,用以对数据库版本进行高效地监控处理和高效部署,该系统包括:
监控处理单元,用于当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;
变更历史处理单元,用于根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;
变更任务生成单元,用于根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;
集群主节点,用于将所述主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;
每一接到任务的集群从节点,用于根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库版本处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库版本处理方法的计算机程序。
本发明实施例中,数据库版本处理方案,与现有技术中无法对数据库版本进行高效监控处理以及高效部署的技术方案相比,通过:当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;集群主节点将所述主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;每一接到任务的集群从节点根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理,可以对数据库版本进行高效地监控处理和高效部署。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明实施例中数据库版本处理方法的流程示意图;
图2为本发明实施例中数据库版本处理的原理示意图;
图3为本发明另一实施例中数据库版本处理方法的流程示意图;
图4为本发明实施例中数据库版本处理系统的结构示意图;
图5为本发明另一实施例中数据库版本处理系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。
在介绍本发明实施例之前,首先对本发明实施例涉及的名词进行介绍。
1.数据库对象:包括数据库表、索引、视图、图表、存储过程、触发器、函数等。
2.数据库版本:在应用系统的日常开发测试中,需要保证测试或生产环境中的数据库表、索引、存储过程等数据库对象的结构与部署的应用相匹配,与应用版本对应,这一整套的数据库对象结构为一个数据库版本。
3.分库分表:数据库的分库分表,其原因在于当单表数据量很大时,数据库的查询速度效率会降低,同时,一旦数据库的发生了故障,该表的所有数据都将会面临丢失的风险,所以为了提升大数据量表的查询效率和数据整体的高可用和安全性,将数据量很大的表,按照某种规则,拆分成多个小数据量的表,并存储在多个数据库中。数据库分库分表之后,数据库表结构的变更要保证对多个分库多个分表保持一致性。
下面对发明人发现技术问题,进而提出本发明实施例的方案进行介绍。
发明人发现:数据库的版本化处理和自动化部署处理主要依赖于数据库信息的自动化获取、数据库语句的自动化生成以及数据库语句的自动化执行。因此,发明人提出了一种数据库版本处理方案,该方案为一种数据库版本监控处理与自动化部署的实现方案。
具体地,按照数据库的来源划分,可以将数据库分为国产化数据库和非国产化数据库,在大型商业化数据库领域,甲骨文公司的ORACLE数据库是非国产化数据库的典型代表,华为公司的GAUSS数据库则是国产化数据库中的佼佼者,在数据库版本管理和自动化部署的过程中,因此,发明人集成了ORACLE数据库的SQLPLUS和GAUSS的ZSQL连接工具,利用Python语言的脚本化优势,ORACLE数据库的自动化调用SQLPLUS实现,GAUSS数据库的自动化则调用ZSQL实现,实现了同时兼容国产化数据库和非国产化数据库的自动化部署方法。
目前,尚无有效的数据库版本处理和自动化部署方法,如采用人工的数据库版本处理及部署方式,需要耗费大量的人力、精力。下面对本发明实施例提出的数据库版本处理方案进行详细介绍。
图1为本发明实施例中数据库版本处理方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101:当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;
步骤102:根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;
步骤103:根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;
步骤104:集群主节点将所述主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;
步骤105:每一接到任务的集群从节点根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理。
本发明实施例中,数据库版本处理方案,与现有技术中无法对数据库版本进行高效监控处理以及高效部署的技术方案相比,可以对数据库版本进行高效地监控处理和高效部署。
下面结合附图2对本发明实施例涉及的各个步骤进行详细介绍。
在上述步骤101和步骤102中,本发明实施例中数据库版本处理方法可以提供不同应用不同环境的数据库版本信息供用户查阅,用户可以清楚地知道某个应用某个环境中的数据库是几月的测试版本。该功能给用户一个清晰的各应用各环境数据库版本视图,减轻了人工记录维护环境数据库版本的负担。
在一个实施例中,当监控到数据库版本发生变化时,对数据库版本信息进行变更处理,可以包括:当监控到数据库版本发生变化时,对数据库版本信息进行增加、删除和修改操作处理。
具体实施时,本发明实施例还涉及了数据库基线版本处理方案,该方案可以将指定数据库中的数据库模式结构(表、索引、视图、序列等对象)序列化为一个Schema源,将该Schema源作为数据库基线进行版本管理。用户可以在系统中查询到指定应用正在使用的数据库基线版本,并基于已有基线版本创建新的基线版本。用户还可以查询到不同版本基线拥有的表信息、字段信息、索引信息,并支持对这些信息进行增加、修改、删除,实现基线版本新增表、表增加字段等操作。系统自动记录对基线版本的上述修改,并提供给用户查询基线版本修改历史的功能,方便用户追踪应用开发过程中数据库的变化轨迹,全面记载版本变化的历史过程。该功能为数据库部署提供了结构化、有序化的手段,保证了版本的一致性。
在上述步骤103至步骤105中,该部分(数据库变更部署)提供了数据库变更一键式部署功能,如图2所示,用户在系统中选择应用、环境、前后两个数据库基线版本(或手动提交要执行的SQL文件),系统生成变更任务(主变更任务),交给集群主节点,主节点根据负载均衡策略(预设分配策略)将变更任务派发到集群从节点。从节点获得变更文件、数据库环境配置信息后,启动多线程在多个测试环境的多个分库中并行对多个分表(或其他数据库对象)进行结构变更。数据库变更执行完成,从节点将执行结果返回前台界面展示。一键式部署功能极大的解放了部署人员,降低了对数据库部署人员的主观要求。
具体地,下面对如何生成变更任务的详细过程进行介绍。
在一个实施例中,根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,可以包括:
根据用户选择的相应应用和变更前后对应的数据库基线版本,对比两个变更前后对应的数据库基线版本的表、字段、索引和序列等Schema源信息,生成增量SQL语句;
识别数据库基线版本中包含的副本表与原表的引用关系,当原表结构发生改变时,生成副本表的变更语句;
根据所述增量SQL语句和变更语句,生成所述主变更任务。
具体实施时,该功能(SQL语句的自动生成)支持用户在界面选择应用和前后两个版本的数据库基线后,系统通过对比两个版本基线的表、字段、索引、序列等Schema信息自动生成增量SQL语句。系统还支持自动识别基线中包含的副本表与原表的引用关系,当原表结构发生改变时,自动生成副本表的变更语句,以保证对副本表同步进行变更。系统将生成的语句返回给界面供用户审核,用户审核确认没有问题,可以点击跳转到数据库变更执行界面,直接使用生成的增量语句在测试环境执行变更。
在一个实施例中,如图3所示,上述数据库版本处理方法还可以包括如下步骤:
步骤106:接收用户对变更历史操作记录的查询指令;
步骤107:根据所述查询指令,将所述数据库版本变更历史操作记录发送给所述用户。
具体实施时,本发明实施例可以实现数据库变更历史查询,具体地,实现了自动记录每次数据库变更的变更内容、执行结果、执行明细。用户可以查询指定模块(单元)指定环境的变更记录,点击执行结果可以查看是否变更成功或者导致执行失败的异常信息,点击执行明细可以查看每条语句的执行情况。该功能使数据库变更有迹可循,在对数据库变更是否实施成功提出疑问时,用户可以快速查看记录,方便定位排除问题。
在一个实施例中,本发明实施例还涉及了环境DB信息处理方案,即还可以包括:接收用户对所有测试环境和生产环境的数据库信息的查询指令;
根据所述查询指令,将所述所有测试环境和生产环境的数据库信息发送给所述用户。
具体实施时,该方案提供了所有测试环境和生产环境的数据库信息供用户查阅。用户可以通过系统方便的查询得到指定应用指定环境的数据库实例、端口、IP、用户名和密码等信息,更加便捷直观。
在一个实施例中,上述数据库版本处理方法中,使用EXCEL文件存储数据库的表、索引、视图、图表、存储过程、触发器和函数数据,使用JSON存储在实现自动化过程中的配置数据。
具体实施时,Excel文件和JSON文件具备强大的结构化数据存储能力,信息展示形式直观、形象、易懂、易于编辑,使用EXCEL文件存储数据库的表、索引、视图、图表、存储过程、触发器、函数等信息量大的数据,使用JSON存储在实现自动化过程中信息量相对小很多的配置数据,二者结合,为数据库版本的部署提供了可视化的信息输入源。
下面再介绍本发明实施例涉及地异构数据库的适配部署优选方案。
本发明实施例是基于源库为ORACLE数据库,目标库位GAUSS数据库的部署方案。首先利用SQLLITE DB从源ORACLE数据库获取相关数据库的源对象信息,生成相应的数据库基线SQLLITE DB版本,然后利用Python脚本适配工具从数据库基线SQLITE DB版本生成EXCEL版本数据库基线,之后通过Python脚本调用GAUSS数据库的ZSQL工具完成目标库数据库对象信息的装载和创建。
在目标GAUSS数据库对象信息创建完成后,利用脚本工具分别调用SQLPLUS和ZSQL进行源库和目标库的数据库对象校验,确保源库和目标库对象的一致性,为后续目标库数据库数据迁移的成功以及应用的稳定运行奠定坚实的基础条件。
综上,相对于现有方式,本发明实施例提供的数据库版本处理方法具有如下优点:
1.为用户提供一个清晰的数据库版本、数据库信息视图,减轻了人工维护的负担。
2.数据库基线版本管理为数据库部署提供了结构化、有序化的手段,保证了版本的一致性。
3.与用户手工编写SQL语句相比,本系统根据数据库基线版本自动生成增量SQL语句,语句质量不依赖于用户的水平和经验。
4.自动识别副本表与原表的引用关系,当原表结构发生改变时,自动对副本表做相同的变更,而无需人工识别干预。
5.一键式部署有效降低数据库版本人工部署出现不一致的风险,保证部署质量,降低部署人员的主观影响,规范部署流程,提高部署效率,最终将部署人员从繁琐重复的部署操作中解放出来。
6.本发明实施例提出的技术基于SQL原则实现,具有很强的可扩展性,虽然目前只支持ORACLE和GAUSS数据库的版本管理和部署,后续针对MYSQL、SQLSERVER等常用的关系型数据库也可轻松适配。
本发明实施例中还提供了一种数据库版本处理系统,如下面的实施例所述。由于该系统解决问题的原理与数据库版本处理方法相似,因此该系统的实施可以参见方法的实施,重复之处不再赘述。
图4为本发明实施例中数据库版本处理系统的结构示意图,如图4所示,该系统包括:
监控处理单元01,用于当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;
变更历史处理单元02,用于根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;
变更任务生成单元03,用于根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;
集群主节点04,用于将所述主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;
每一接到任务的集群从节点05,用于根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理。
在一个实施例中,所述监控处理单元具体用于:当监控到数据库版本发生变化时,对数据库版本信息进行增加、删除和修改操作处理。
在一个实施例中,如图5所示,上述数据库版本处理系统还可以包括:
查询单元06,用于接收用户对变更历史操作记录的查询指令;
反馈单元07,用于根据所述查询指令,将所述数据库版本变更历史操作记录发送给所述用户。
在一个实施例中,所述变更任务生成单元具体用于:
根据用户选择的相应应用和变更前后对应的数据库基线版本,对比两个变更前后对应的数据库基线版本的表、字段、索引和序列信息,生成增量SQL语句;
识别数据库基线版本中包含的副本表与原表的引用关系,当原表结构发生改变时,生成副本表的变更语句;
根据所述增量SQL语句和变更语句,生成所述主变更任务。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述数据库版本处理方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述数据库版本处理方法的计算机程序。
本发明实施例中,数据库版本处理方案,与现有技术中无法对数据库版本进行高效监控处理以及高效部署的技术方案相比,通过:当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;集群主节点将所述主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;每一接到任务的集群从节点根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理,可以对数据库版本进行高效地监控处理和高效部署。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种数据库版本处理方法,其特征在于,包括:
当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;
根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;
根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;
集群主节点将所述主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;
每一接到任务的集群从节点根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理。
2.如权利要求1所述的数据库版本处理方法,其特征在于,当监控到数据库版本发生变化时,对数据库版本信息进行变更处理,包括:当监控到数据库版本发生变化时,对数据库版本信息进行增加、删除和修改操作处理。
3.如权利要求1所述的数据库版本处理方法,其特征在于,还包括:
接收用户对变更历史操作记录的查询指令;
根据所述查询指令,将所述数据库版本变更历史操作记录发送给所述用户。
4.如权利要求1所述的数据库版本处理方法,其特征在于,根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,包括:
根据用户选择的相应应用和变更前后对应的数据库基线版本,对比两个变更前后对应的数据库基线版本的表、字段、索引和序列信息,生成增量SQL语句;
识别数据库基线版本中包含的副本表与原表的引用关系,当原表结构发生改变时,生成副本表的变更语句;
根据所述增量SQL语句和变更语句,生成所述主变更任务。
5.一种数据库版本处理系统,其特征在于,包括:
监控处理单元,用于当监控到数据库版本发生变化时,对数据库版本信息进行变更处理;
变更历史处理单元,用于根据对数据库版本信息的每一次变更处理,得到数据库版本变更历史操作记录;
变更任务生成单元,用于根据用户选择的相应应用,变更前后对应的数据库基线版本,以及数据库版本变更历史操作记录,生成主变更任务,将主变更任务发送给集群主节点;
集群主节点,用于将所述主变更任务拆分为多个子变更任务,根据预设分配策略,将多个子变更任务分配给多个集群从节点;
每一接到任务的集群从节点,用于根据子变更任务,启动多线程在多个测试数据库环境的多个分库中并行对多个分表进行结构变更处理。
6.如权利要求5所述的数据库版本处理系统,其特征在于,所述监控处理单元具体用于:当监控到数据库版本发生变化时,对数据库版本信息进行增加、删除和修改操作处理。
7.如权利要求5所述的数据库版本处理系统,其特征在于,还包括:
查询单元,用于接收用户对变更历史操作记录的查询指令;
反馈单元,用于根据所述查询指令,将所述数据库版本变更历史操作记录发送给所述用户。
8.如权利要求5所述的数据库版本处理系统,其特征在于,所述变更任务生成单元具体用于:
根据用户选择的相应应用和变更前后对应的数据库基线版本,对比两个变更前后对应的数据库基线版本的表、字段、索引和序列信息,生成增量SQL语句;
识别数据库基线版本中包含的副本表与原表的引用关系,当原表结构发生改变时,生成副本表的变更语句;
根据所述增量SQL语句和变更语句,生成所述主变更任务。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4任一所述方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有执行权利要求1至4任一所述方法的计算机程序。
CN202011473856.2A 2020-12-15 2020-12-15 数据库版本处理方法及系统 Pending CN112579568A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011473856.2A CN112579568A (zh) 2020-12-15 2020-12-15 数据库版本处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011473856.2A CN112579568A (zh) 2020-12-15 2020-12-15 数据库版本处理方法及系统

Publications (1)

Publication Number Publication Date
CN112579568A true CN112579568A (zh) 2021-03-30

Family

ID=75134868

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011473856.2A Pending CN112579568A (zh) 2020-12-15 2020-12-15 数据库版本处理方法及系统

Country Status (1)

Country Link
CN (1) CN112579568A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420010A (zh) * 2021-06-23 2021-09-21 建信金融科技有限责任公司 数据库的管理方法、装置、电子设备和存储介质
WO2023279752A1 (zh) * 2021-07-06 2023-01-12 华为云计算技术有限公司 数据库模型的版本管理方法、装置及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833569A (zh) * 2018-06-27 2018-11-16 郑州云海信息技术有限公司 一种数据同步方法及相关装置
CN110633284A (zh) * 2019-09-19 2019-12-31 中国工商银行股份有限公司 数据库中表的变更方法及装置
CN110737670A (zh) * 2019-10-21 2020-01-31 中国民航信息网络股份有限公司 一种集群数据一致性的保障方法、装置及系统
CN111459954A (zh) * 2020-03-04 2020-07-28 深圳壹账通智能科技有限公司 分布式数据同步方法、装置、设备及介质
CN111708764A (zh) * 2020-06-22 2020-09-25 深圳前海微众银行股份有限公司 一种数据库变更版本的控制方法及装置
CN111857796A (zh) * 2020-06-24 2020-10-30 苏州浪潮智能科技有限公司 一种数据库版本控制系统及方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108833569A (zh) * 2018-06-27 2018-11-16 郑州云海信息技术有限公司 一种数据同步方法及相关装置
CN110633284A (zh) * 2019-09-19 2019-12-31 中国工商银行股份有限公司 数据库中表的变更方法及装置
CN110737670A (zh) * 2019-10-21 2020-01-31 中国民航信息网络股份有限公司 一种集群数据一致性的保障方法、装置及系统
CN111459954A (zh) * 2020-03-04 2020-07-28 深圳壹账通智能科技有限公司 分布式数据同步方法、装置、设备及介质
CN111708764A (zh) * 2020-06-22 2020-09-25 深圳前海微众银行股份有限公司 一种数据库变更版本的控制方法及装置
CN111857796A (zh) * 2020-06-24 2020-10-30 苏州浪潮智能科技有限公司 一种数据库版本控制系统及方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113420010A (zh) * 2021-06-23 2021-09-21 建信金融科技有限责任公司 数据库的管理方法、装置、电子设备和存储介质
CN113420010B (zh) * 2021-06-23 2023-05-26 中国建设银行股份有限公司 数据库的管理方法、装置、电子设备和存储介质
WO2023279752A1 (zh) * 2021-07-06 2023-01-12 华为云计算技术有限公司 数据库模型的版本管理方法、装置及相关设备

Similar Documents

Publication Publication Date Title
CN109271450B (zh) 数据库同步方法、装置、服务器和存储介质
US9940108B2 (en) Automated merging in a software development environment
US10671630B2 (en) External access to database container artifacts
US9280568B2 (en) Zero downtime schema evolution
US7844570B2 (en) Database generation systems and methods
US7814459B2 (en) System and method for automated on demand replication setup
US8010578B2 (en) Method of refactoring a running database system
US8630969B2 (en) Systems and methods for implementing business rules designed with cloud computing
US20150317331A1 (en) Unified platform for application development
CN110019138B (zh) 一种基于Zabbix的传输表空间自动迁移方法和系统
US10055302B2 (en) Performing a closure merge operation
CN104423960A (zh) 一种项目持续集成的方法及系统
CN112579568A (zh) 数据库版本处理方法及系统
US20180260193A1 (en) System to coordinate source code module changes
US20210263833A1 (en) Code Generation Platform with Debugger
CA3076778A1 (en) System and method for automated source code generation for database conversion
US20160335069A1 (en) Dependency handling for software extensions
US11842188B2 (en) Continuous integration and deployment pipeline selection based on dynamic mapping
US9501263B2 (en) Automated model derivation and alignment
US8694525B2 (en) Systems and methods for performing index joins using auto generative queries
Bhardwaj et al. Pipeline-Generated Continuous Integration and Deployment Method For Agile Software Development
WO2019099008A1 (en) Software builds using a cloud system
CN116820427A (zh) 一种软件研发项目管理方法、设备及介质
US11481392B2 (en) Transformation reconstruction for optimized database query
CN113448656A (zh) 基于Ansible的在线脚本执行方法及装置

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