CN111736865A - 一种数据库升级方法及系统 - Google Patents

一种数据库升级方法及系统 Download PDF

Info

Publication number
CN111736865A
CN111736865A CN202010470049.9A CN202010470049A CN111736865A CN 111736865 A CN111736865 A CN 111736865A CN 202010470049 A CN202010470049 A CN 202010470049A CN 111736865 A CN111736865 A CN 111736865A
Authority
CN
China
Prior art keywords
upgrading
database
script
upgrade
target
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.)
Granted
Application number
CN202010470049.9A
Other languages
English (en)
Other versions
CN111736865B (zh
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 CN202010470049.9A priority Critical patent/CN111736865B/zh
Publication of CN111736865A publication Critical patent/CN111736865A/zh
Application granted granted Critical
Publication of CN111736865B publication Critical patent/CN111736865B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明提供一种数据库升级方法及系统,所述数据库升级方法包括步骤:s1、扫描预设目标配置文件,生成数据库升级脚本、数据库关键业务测试脚本和回滚脚本;s2、运行数据库升级脚本升级目标数据库,并在运行成功后执行步骤s3;s3、执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试:若测试成功,则目标数据库升级成功,本次升级结束;若测试失败,则输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,并等待修改目标配置文件后转而继续执行步骤s1,直至目标数据库的关键业务测试成功。所述数据库升级系统与所述的数据库升级方法相对应。本发明用于提高数据库升级的效率及准确率。

Description

一种数据库升级方法及系统
技术领域
本发明涉及数据库领域,具体涉及一种数据库升级方法及系统。
背景技术
在项目中,随着产品版本的不断更新,数据库的升级是经常遇到的事情。
通常的数据库升级,需要编写数据库升级脚本,通过执行编写好的升级脚本进行升级。但是,每次在需要升级数据库时往往需要人力来编写升级脚本或修改已有的升级脚本,尤其是在线升级,往往需要投入大量人力以确保脚本无误、升级正确,人力成本相对较高,数据库升级效率相对低,无法确保升级的准确率。
为此,本发明提供一种数据库升级方法及系统,用于解决上述问题。
发明内容
针对现有技术的上述不足,本发明提供一种数据库升级方法及系统,用于提高数据库升级的效率及准确率。
第一方面,本发明提供一种数据库升级方法,包括步骤:
s1、扫描预设目标配置文件,生成数据库升级脚本、数据库关键业务测试脚本和与数据库升级脚本配合使用的回滚脚本;
s2、运行数据库升级脚本升级目标数据库,并在运行成功后执行步骤s3;
s3、执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试:
若对所述关键业务的测试成功,则目标数据库升级成功,本次升级结束;
若对所述关键业务的测试失败,则输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,并等待修改目标配置文件后转而继续执行步骤s1,直至目标数据库的关键业务测试成功。
进一步地,在步骤s1中,在扫描预设目标配置文件时,还生成用于比对目标数据库升级前后的差别的数据比对脚本;
步骤s3还包括:在运行所述数据库升级脚本升级目标数据库成功后,执行所述数据对比脚本,比较目标数据库在本次升级前后的差异并输出比对报告。
进一步地,在步骤s2中,在运行数据库升级脚本升级目标数据库时,若运行失败则执行步骤s4;
步骤s4:输出步骤s2中运行数据库升级脚本升级目标数据库失败的升级失败报告,并等待重新配置目标配置文件后转而继续执行步骤s1,直至步骤s2中运行数据库升级脚本升级目标数据库成功。
进一步地,所述目标配置文件中配设有相应数量的数据库升级规则以及配设有每个数据库升级规则对应的升级配置参数和回滚标识;数据库升级脚本中包含一组升级sql语句,回滚脚本中包含一组回滚sql语句;所述的升级sql语句以及所述的回滚sql语句,分别与目标配置文件中的数据库升级规则一一对应;
所述步骤S2包括步骤:
逐个执行数据库升级脚本中的升级SQL语句对目标数据库进行升级;
每次在执行升级SQL语句失败时,分别从目标配置文件中获取对应升级规则对应的回滚标识:
在获取到的回滚标识为第一标识时,则执行并在执行与该执行失败的升级SQL语句相对应的回滚SQL语句后继续执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在获取到的回滚标识不是第一标识时,则直接执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在执行完所述数据库升级脚本中所有的升级SQL语句、并且在执行过程中存在升级SQL语句执行失败时,输出运行数据库升级脚本升级目标数据库的升级失败报告;
所述第一标识,是需要执行回滚操作的唯一性标识。
进一步地,在步骤s1中,在扫描预设目标配置文件时,还生成用于对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计的数据分析模块脚本;
步骤s3还包括:在上述运行数据库升级脚本升级目标数据库失败时,通过数据分析模块脚本,对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计,并输出相应地分析报告。
第二方面,本发明提供一种数据库升级系统,包括:
配置文件获取单元,获取配置好的目标配置文件;
扫描脚本,扫描所述目标配置文件,生成数据库升级脚本、数据库关键业务测试脚本和与数据库升级脚本配合使用的回滚脚本;
升级单元,运行数据库升级脚本升级目标数据库;
测试单元,在升级单元运行数据库升级脚本升级目标数据库成功后,执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试;
升级结束单元,在测试单元对所述关键业务的测试成功时,判定目标数据库升级成功,本次升级结束;
升级继续单元,在测试单元对所述关键业务的测试失败时,输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,并等待修改目标配置文件后转而再次执行扫描脚本、升级单元、测试单元、升级结束单元和升级继续单元,直至升级结束单元判定目标数据库升级成功。
进一步地,所述的扫描脚本,在扫描预设目标配置文件时,还生成用于比对目标数据库升级前后的差别的数据比对脚本;
所述测试单元,在升级单元运行数据库升级脚本升级目标数据库成功后,还能够执行所述数据对比脚本,比较目标数据库在本次升级前后的差异并输出比对报告。
进一步地,所述的测试单元,还在升级单元运行数据库升级脚本升级目标数据库失败时,输出对应的升级失败报告,并等待重新配置目标配置文件后转而继续执行扫描脚本、升级单元和测试单元,直至升级单元运行数据库升级脚本升级目标数据库成功。
进一步地,所述目标配置文件中配设有相应数量的数据库升级规则以及配设有每个数据库升级规则对应的升级配置参数和回滚标识;数据库升级脚本中包含一组升级sql语句,回滚脚本中包含一组回滚sql语句;所述的升级sql语句以及所述的回滚sql语句,分别与目标配置文件中的数据库升级规则一一对应;
所述升级单元运行所述数据库升级脚本升级目标数据库的步骤包括:
逐个执行数据库升级脚本中的升级SQL语句对目标数据库进行升级;
每次在执行升级SQL语句失败时,分别从目标配置文件中获取对应升级规则对应的回滚标识:
在获取到的回滚标识为第一标识时,则执行并在执行与该执行失败的升级SQL语句相对应的回滚SQL语句后继续执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在获取到的回滚标识不是第一标识时,则直接执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在执行完所述数据库升级脚本中所有的升级SQL语句、并且在执行过程中存在升级SQL语句执行失败时,输出运行数据库升级脚本升级目标数据库的升级失败报告;
所述第一标识,是需要执行回滚操作的唯一性标识。
进一步地,所述的扫描脚本,在扫描预设目标配置文件时,还生成用于对所述数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计的数据分析模块脚本;
所述的测试单元,在升级单元运行数据库升级脚本升级目标数据库失败时,通过数据分析模块脚本,对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计,并输出相应地分析报告。
本发明的有益效果在于,
(1)本发明提供的数据库升级方法及系统,用户只需维护一个配置文件,升级所用的各相关脚本(数据库升级脚本、回滚脚本等)均是通过扫描自动生成的,且在升级失败时,用户无需在庞杂的脚本中修改升级脚本,只需相关配置文件,这在一定程度上节省了人力,提高了升级效率(便于数据库在线升级)。
(2)本发明提供的数据库升级方法及系统,在数据库升级脚本升级数据库成功后融入了数据库的关键业务测试,并且在数据库的关键业务测试失败时,可等待用户重新配置/修改配置文件,并能够在用户重新配置/修改配置文件后,自动重新自动扫描生成各相关脚本再次进行数据库的升级直至数据库升级成功,可见一定程度上提高了数据库升级的准确率(进一步便于数据库的在线升级)。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的数据库升级方法的示意性流程图。
图2是本发明一个实施例的数据库升级系统的示意性框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明一个实施例的数据库升级方法的示意性流程图。
如图1所示,该数据库升级方法100包括:
步骤110、扫描预设目标配置文件,生成数据库升级脚本、数据库关键业务测试脚本和与数据库升级脚本配合使用的回滚脚本;
步骤120、运行数据库升级脚本升级目标数据库,并在运行成功时执行步骤130;
步骤130、执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试:
若对所述关键业务的测试成功,则目标数据库升级成功,本次升级结束;
若对所述关键业务的测试失败,则输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,并等待修改目标配置文件后转而继续执行步骤110,直至目标数据库的关键业务测试成功。
其中,目标数据库即是将要进行升级的数据库。本实施例中以数据库的增(添加表的记录)、删(删除表的记录)、改(修改表的记录)、查(查询表的记录)为数据库的关键业务。具体实现时,本领域技术人员可依据实际情况设定数据库关键业。
使用时,首先扫描目标配置文件生成数据库升级脚本、数据库关键业务测试脚本和回滚脚本;之后运行数据库升级脚本升级目标数据库;并在上述运行数据库升级脚本升级目标数据库成功后,执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试,并且:在对所述关键业务的测试成功时,目标数据库升级成功,升级结束;在对所述关键业务的测试失败时,输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,并等待修改目标配置文件后转而重复执行以上所有方法步骤,直至目标数据库的关键业务测试成功。
本申请提供的数据库升级方法100,在数据库升级脚本升级数据库成功后融入了数据库的关键业务测试,并且在数据库的关键业务测试失败时,可等待用户重新配置/修改配置文件,并能够在用户重新配置/修改配置文件后,自动重新自动扫描生成各相关脚本再次进行数据库的升级直至数据库升级成功,可见一定程度上提高了数据库升级的准确率。
本申请提供的数据库升级方法100,能够在配置文件修改或重新配置完成后重新自动扫描生成各相关脚本(数据库升级脚本、回滚脚本等)、并自动再次进行数据库的升级直至数据库升级成功后升级结束,进一步提高了升级效率。
本申请中的目标配置文件,可由本领域技术人员依据预先设定的数据处理规则配置得到。所述预先设定的数据处理规则,可由本领域技术人员以能够生成所需生成的各脚本(如数据库升级脚本、数据库关键业务测试脚本和回滚脚本)为目标进行设定。
作为本发明的一个实施例,在步骤110中,在扫描预设目标配置文件时,还生成用于比对目标数据库升级前后的差别的数据比对脚本;在步骤130中,在运行数据库升级脚本升级目标数据库成功后,还包括:执行所述数据对比脚本,比较目标数据库在本次升级前后的差异并输出比对报告。用户(比如制定升级规则的技术人员)可通过比对报告直观了解目标数据库在升级前后的差异,有助于后续数据库的不同版本的升级或者回退分析。
作为本发明一个实施例,在步骤120中,在运行数据库升级脚本升级目标数据库时,若运行失败则执行步骤140。步骤140:输出步骤120中运行数据库升级脚本升级目标数据库失败的升级失败报告,并等待重新配置目标配置文件后转而继续执行步骤110,直至步骤120中运行数据库升级脚本升级目标数据库成功。用户可通过升级失败报告定位数据库升级脚本中执行失败的升级语句(sql语句),继而便于重新配置目标配置文件。
在本申请中,所述目标配置文件中配设有相应数量的数据库升级规则以及配设有每个数据库升级规则对应的升级配置参数和回滚标识;数据库升级脚本中包含一组升级sql语句,回滚脚本中包含一组回滚sql语句;所述的升级sql语句以及所述的回滚sql语句,分别与目标配置文件中的数据库升级规则一一对应。目标配置文件中相同数据库升级规则对应的升级sql语句及回滚sql语句相对应,其中,升级sql语句用于升级数据库、回滚sql语句用于在升级sql语句升级数据库失败需要数据回滚时进行相应的数据回滚。
具体地,本申请中的升级失败报告具体可以定位到执行失败的升级sql语句及其对应的数据库升级规则。
其中,本申请中的目标配置文件采用excel文件,方便记录每一版的升级策略。具体实现时,还可采用XML文件或其他格式的配置文件替换所述excel文件。
作为本发明一个实施例,步骤120中运行数据库升级脚本升级目标数据库,具体包括步骤:
逐个执行数据库升级脚本中的升级SQL语句对目标数据库进行升级;
每次在执行升级SQL语句失败时,分别从目标配置文件中获取该执行失败的升级SQL语句对应的升级规则所对应的回滚标识,并且:
在获取到的回滚标识为第一标识时,则执行并在执行与该执行失败的升级SQL语句相对应的回滚SQL语句后,继续执行所述数据库升级脚本中的下一个升级SQL语句,直至执行完所述数据库升级脚本中所有的升级SQL语句;所述第一标识,是需要执行回滚操作的唯一性标识;
在获取到的回滚标识不是第一标识时,则直接执行所述数据库升级脚本中的下一个升级SQL语句,直至执行完所述数据库升级脚本中所有的升级SQL语句;
在执行完所述数据库升级脚本中所有的升级SQL语句、并且在执行过程中存在升级SQL语句执行失败时,输出运行数据库升级脚本升级目标数据库的升级失败报告。
在一种示例性实例中,本实施例中所述的回滚标识有两个值:TRUE和FALSE。其中的“TRUE”为所述第一标识。当获取到的回滚标识为“TRUE”时,执行回滚。当获取到的回滚标识为“FALSE”时,不再执行回滚。回滚标识的值的数量及具体内容(比如上述TRUE和FALSE)可由本领域技术人员依据实际情况进行设定。
一次数据库升级,往往包含多条数据库升级规则(统称为“升级策略”)。在一种示例性实例中,本实施例中的数据库升级规则包括:创建表、删除表、修改表字段名、修改表字段值。每个数据库升级规则对应不同的配置参数,比如上述“修改表字段名”对应的配置参数至少需要包括表名称、字段名、老的字段值、新的字段值。比如可配置表名称为“user”、字段名为“role”、老的字段值为“admin”、新的字段值为“custom”,则基于该条数据库升级规则“修改表字段名”,有:将“user”表中字段“role”的字段值由“admin”修改为“custom”。具体实现时,数据库升级规则的数量、具体内容及具体配置参数均可由本领域技术人员依据实际情况进行设定。
在执行所述数据库升级脚本中的升级SQL语句时,若有一个或一个以上的升级SQL语句执行失败,则有步骤120中运行数据库升级脚本升级目标数据库。
用户可通过本发明输出的升级失败报告,具体定位升级失败的升级SQL语句,进而有助于有针对性地重新配置目标配置文件。
作为本发明一个实施例,步骤110中在扫描预设目标配置文件时,还生成用于对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计的数据分析模块脚本。其中,数据分析模块脚本可对执行成功的升级SQL语句对应的升级参数与执行失败的升级SQL语句的升级参数进行分类与统计。
作为本发明一个实施例,所述步骤130还包括:在步骤120运行数据库升级脚本升级目标数据库失败时,通过数据分析模块脚本,对数据库升级脚本升级目标数据库时所涉及的数据(即相关升级参数)进行分类与统计,并输出相应地分析报告。用户通过该分析报告,可直观了解数据分析模块脚本对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计得到的分类与统计信息,有助于直观定位执行失败的升级SQL语句对应的升级参数,进而有助于有针对性地重新配置目标配置文件。
综上,本申请提供的数据库升级方法100,用户只需维护一个配置文件,升级所用的各相关脚本均是通过扫描自动生成的,且在升级失败时,用户无需在庞杂的脚本中修改升级脚本,只需相关配置文件,这在一定程度上节省了人力,提高了升级效率。
图2是本发明一个实施例的数据库升级系统的示意性框图。
参见图2,该数据库升级系统200包括:
配置文件获取单元201,获取配置好的目标配置文件;
扫描脚本202,扫描所述目标配置文件,生成数据库升级脚本、数据库关键业务测试脚本和与数据库升级脚本配合使用的回滚脚本;
升级单元203,运行数据库升级脚本升级目标数据库;
测试单元204,在升级单元203运行数据库升级脚本升级目标数据库成功后,执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试;
升级结束单元205,在测试单元204对所述关键业务的测试成功时,判定目标数据库升级成功,本次升级结束;
升级继续单元206,在测试单元204对所述关键业务的测试失败时,输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,并等待修改目标配置文件后转而再次执行扫描脚本202、升级单元203、测试单元204、升级结束单元205和升级继续单元206,直至升级结束单元205判定目标数据库升级成功。
作为本发明一个实施例,所述的扫描脚本202,在扫描预设目标配置文件时,还生成用于比对目标数据库升级前后的差别的数据比对脚本;
所述测试单元204,在升级单元203运行数据库升级脚本升级目标数据库成功后,还能够执行所述数据对比脚本,比较目标数据库在本次升级前后的差异并输出比对报告。
作为本发明一个实施例,所述的测试单元204,还能够在升级单元203运行数据库升级脚本升级目标数据库失败时,输出对应的升级失败报告,并等待重新配置目标配置文件后转而继续执行扫描脚本202、升级单元203和测试单元204,直至升级单元203运行数据库升级脚本升级目标数据库成功。
作为本发明一个实施例,所述目标配置文件中配设有相应数量的数据库升级规则以及配设有每个数据库升级规则对应的升级配置参数和回滚标识;数据库升级脚本中包含一组升级sql语句,回滚脚本中包含一组回滚sql语句;所述的升级sql语句以及所述的回滚sql语句,分别与目标配置文件中的数据库升级规则一一对应;
所述升级单元203运行所述数据库升级脚本升级目标数据库的步骤包括:
逐个执行数据库升级脚本中的升级SQL语句对目标数据库进行升级;
每次在执行升级SQL语句失败时,分别从目标配置文件中获取对应升级规则对应的回滚标识:
在获取到的回滚标识为第一标识时,则执行并在执行与该执行失败的升级SQL语句相对应的回滚SQL语句后继续执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在获取到的回滚标识不是第一标识时,则直接执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在执行完所述数据库升级脚本中所有的升级SQL语句、并且在执行过程中存在升级SQL语句执行失败时,输出运行数据库升级脚本升级目标数据库的升级失败报告;
所述第一标识,是需要执行回滚操作的唯一性标识。
作为本发明一个实施例,所述的扫描脚本202,在扫描预设目标配置文件时,还生成用于对所述数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计的数据分析模块脚本;
所述的测试单元204,在升级单元203运行数据库升级脚本升级目标数据库失败时,通过数据分析模块脚本,对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计,并输出相应地分析报告。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。本发明主要用于数据库数据的升级。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种数据库升级方法,其特征在于,包括步骤:
s1、扫描预设目标配置文件,生成数据库升级脚本、数据库关键业务测试脚本和与数据库升级脚本配合使用的回滚脚本;
s2、运行数据库升级脚本升级目标数据库,并在运行成功后执行步骤s3;
s3、执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试:
若对所述关键业务的测试成功,则目标数据库升级成功,本次升级结束;
若对所述关键业务的测试失败,则输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,并等待修改目标配置文件后转而继续执行步骤s1,直至目标数据库的关键业务测试成功。
2.根据权利要求1所述的数据库升级方法,其特征在于,进一步地,
在步骤s1中,在扫描预设目标配置文件时,还生成用于比对目标数据库升级前后的差别的数据比对脚本;
步骤s3还包括:在运行数据库升级脚本升级目标数据库成功后,执行所述数据对比脚本,比较目标数据库在本次升级前后的差异并输出比对报告。
3.根据权利要求1或2所述的数据库升级方法,其特征在于,在步骤s2中,在运行数据库升级脚本升级目标数据库时,若运行失败则执行步骤s4;
步骤s4:输出步骤s2中运行数据库升级脚本升级目标数据库失败的升级失败报告,并等待重新配置目标配置文件后转而继续执行步骤s1,直至步骤s2中运行数据库升级脚本升级目标数据库成功。
4.根据权利要求3所述的数据库升级方法,其特征在于,进一步地,
所述目标配置文件中配设有相应数量的数据库升级规则以及配设有每个数据库升级规则对应的升级配置参数和回滚标识;数据库升级脚本中包含一组升级sql语句,回滚脚本中包含一组回滚sql语句;所述的升级sql语句以及所述的回滚sql语句,分别与目标配置文件中的数据库升级规则一一对应;
所述步骤S2包括步骤:
逐个执行数据库升级脚本中的升级SQL语句对目标数据库进行升级;
每次在执行升级SQL语句失败时,分别从目标配置文件中获取对应升级规则对应的回滚标识:
在获取到的回滚标识为第一标识时,则执行并在执行与该执行失败的升级SQL语句相对应的回滚SQL语句后继续执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在获取到的回滚标识不是第一标识时,则直接执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在执行完所述数据库升级脚本中所有的升级SQL语句、并且在执行过程中存在升级SQL语句执行失败时,输出运行数据库升级脚本升级目标数据库的升级失败报告;
所述第一标识,是需要执行回滚操作的唯一性标识。
5.根据权利要求3所述的数据库升级方法,其特征在于,进一步地,
在步骤s1中,在扫描预设目标配置文件时,还生成用于对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计的数据分析模块脚本;
在步骤s3中,在运行数据库升级脚本升级目标数据库失败后,还包括:通过数据分析模块脚本,对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计,并输出相应地分析报告。
6.一种数据库升级系统,其特征在于,包括:
配置文件获取单元,获取配置好的目标配置文件;
扫描脚本,扫描所述目标配置文件,生成数据库升级脚本、数据库关键业务测试脚本和与数据库升级脚本配合使用的回滚脚本;
升级单元,运行数据库升级脚本升级目标数据库;
测试单元,在升级单元运行数据库升级脚本升级目标数据库成功后,执行数据库关键业务测试脚本,对目标数据库的关键业务进行测试;
升级结束单元,在测试单元对所述关键业务的测试成功时,判定目标数据库升级成功,本次升级结束;
升级继续单元,在测试单元对所述关键业务的测试失败时,输出对应的测试报告并执行所述回滚脚本对目标数据库进行恢复,并等待修改目标配置文件后转而再次执行扫描脚本、升级单元、测试单元、升级结束单元和升级继续单元,直至升级结束单元判定目标数据库升级成功。
7.根据权利要求6所述的数据库升级系统,其特征在于,进一步地,
所述的扫描脚本,在扫描预设目标配置文件时,还生成用于比对目标数据库升级前后的差别的数据比对脚本;
所述测试单元,在升级单元运行数据库升级脚本升级目标数据库成功后,还能够执行所述数据对比脚本,比较目标数据库在本次升级前后的差异并输出比对报告。
8.根据权利要求6或7所述的数据库升级系统,其特征在于,进一步地,
所述的测试单元,还在升级单元运行数据库升级脚本升级目标数据库失败时,输出对应的升级失败报告,并等待重新配置目标配置文件后转而继续执行扫描脚本、升级单元和测试单元,直至升级单元运行数据库升级脚本升级目标数据库成功。
9.根据权利要求8所述的数据库升级系统,其特征在于,进一步地,
所述目标配置文件中配设有相应数量的数据库升级规则以及配设有每个数据库升级规则对应的升级配置参数和回滚标识;数据库升级脚本中包含一组升级sql语句,回滚脚本中包含一组回滚sql语句;所述的升级sql语句以及所述的回滚sql语句,分别与目标配置文件中的数据库升级规则一一对应;
所述升级单元运行所述数据库升级脚本升级目标数据库的步骤包括:
逐个执行数据库升级脚本中的升级SQL语句对目标数据库进行升级;
每次在执行升级SQL语句失败时,分别从目标配置文件中获取对应升级规则对应的回滚标识:
在获取到的回滚标识为第一标识时,则执行并在执行与该执行失败的升级SQL语句相对应的回滚SQL语句后继续执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在获取到的回滚标识不是第一标识时,则直接执行数据库升级脚本中的下一个升级SQL语句,直至执行完数据库升级脚本中所有的升级SQL语句;
在执行完所述数据库升级脚本中所有的升级SQL语句、并且在执行过程中存在升级SQL语句执行失败时,输出运行数据库升级脚本升级目标数据库的升级失败报告;
所述第一标识,是需要执行回滚操作的唯一性标识。
10.根据权利要求8所述的数据库升级系统,其特征在于,进一步地,
所述的扫描脚本,在扫描预设目标配置文件时,还生成用于对所述数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计的数据分析模块脚本;
所述的测试单元,在升级单元运行数据库升级脚本升级目标数据库失败时,通过数据分析模块脚本,对数据库升级脚本升级目标数据库时所涉及的数据进行分类与统计,并输出相应地分析报告。
CN202010470049.9A 2020-05-28 2020-05-28 一种数据库升级方法及系统 Active CN111736865B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010470049.9A CN111736865B (zh) 2020-05-28 2020-05-28 一种数据库升级方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010470049.9A CN111736865B (zh) 2020-05-28 2020-05-28 一种数据库升级方法及系统

Publications (2)

Publication Number Publication Date
CN111736865A true CN111736865A (zh) 2020-10-02
CN111736865B CN111736865B (zh) 2023-07-14

Family

ID=72646684

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010470049.9A Active CN111736865B (zh) 2020-05-28 2020-05-28 一种数据库升级方法及系统

Country Status (1)

Country Link
CN (1) CN111736865B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149712A (zh) * 2023-04-04 2023-05-23 湖南中青能科技有限公司 一种数据库版本更新兼容匹配方法
CN116700763A (zh) * 2023-08-07 2023-09-05 长扬科技(北京)股份有限公司 Clickhouse数据库的版本升级方法及装置
CN117131004A (zh) * 2023-07-05 2023-11-28 海通证券股份有限公司 数据库变更方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130268917A1 (en) * 2012-04-10 2013-10-10 Oracle International Corporation Configurable auto content testing framework for technical documentation
CN111142899A (zh) * 2019-12-12 2020-05-12 东软集团股份有限公司 数据库脚本执行方法、装置、存储介质及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130268917A1 (en) * 2012-04-10 2013-10-10 Oracle International Corporation Configurable auto content testing framework for technical documentation
CN111142899A (zh) * 2019-12-12 2020-05-12 东软集团股份有限公司 数据库脚本执行方法、装置、存储介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
屠雪真,等: "分布式系统高效升级方法研究", 微型电脑应用 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116149712A (zh) * 2023-04-04 2023-05-23 湖南中青能科技有限公司 一种数据库版本更新兼容匹配方法
CN116149712B (zh) * 2023-04-04 2023-06-27 湖南中青能科技有限公司 一种数据库版本更新兼容匹配方法
CN117131004A (zh) * 2023-07-05 2023-11-28 海通证券股份有限公司 数据库变更方法、装置及电子设备
CN116700763A (zh) * 2023-08-07 2023-09-05 长扬科技(北京)股份有限公司 Clickhouse数据库的版本升级方法及装置
CN116700763B (zh) * 2023-08-07 2023-10-27 长扬科技(北京)股份有限公司 Clickhouse数据库的版本升级方法及装置

Also Published As

Publication number Publication date
CN111736865B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
CN109388566B (zh) 一种代码覆盖率分析方法、装置、设备及存储介质
CN106445795B (zh) 一种数据库sql效率检测方法及装置
CN111736865A (zh) 一种数据库升级方法及系统
CN103092761B (zh) 基于差异信息文件识别和检查修改代码块的方法及装置
CN107301120B (zh) 用于处理非结构化日志的方法及装置
CN108694108B (zh) 一种iOS崩溃数据分类与统计的方法和装置
US11347619B2 (en) Log record analysis based on log record templates
JP2735698B2 (ja) インタフェース検証処理方式
JP7404839B2 (ja) ソフトウェアプログラム不良位置の識別
CN111767350A (zh) 数据仓库测试方法、装置、终端设备及存储介质
CN110990282B (zh) 一种自动化单元测试方法
US20060117075A1 (en) Prerequisite, dependent and atomic deltas
CN115269444B (zh) 代码静态检测方法、装置及服务器
WO2019242108A1 (zh) 一种基于聚类分析的软件缺陷修复模板提取方法
CN115658731A (zh) 一种数据查询方法、装置、设备和存储介质
CN112395199B (zh) 基于云计算的分布式软件实例测试方法及软件开发平台
CN114942905A (zh) 一种迁移数据验证方法、装置、设备和存储介质
CN114327588A (zh) 一种代码提交日志的处理方法及装置
CN112347095B (zh) 数据表的处理方法、装置和服务器
CN117909392A (zh) 一种智能化数据资产盘点的方法和系统
CN114780391A (zh) 代码安全缺陷分析方法、装置、设备及存储介质
Sato et al. Comparing Execution Traces of Jupyter Notebook for Checking Correctness of Refactoring
US20190065355A1 (en) Information processing device and output method
CN117667711A (zh) 一种产线bug检测方法、装置、系统和存储介质
CN110990281A (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
GR01 Patent grant
GR01 Patent grant