[发明专利]一种数据库升级方法和装置以及应用部署升级方法和装置在审
申请号: | 201911065546.4 | 申请日: | 2019-11-04 |
公开(公告)号: | CN110825413A | 公开(公告)日: | 2020-02-21 |
发明(设计)人: | 赵佩;郭超;张宜红;俞京华 | 申请(专利权)人: | 江苏金智教育信息股份有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F11/14;G06F16/21 |
代理公司: | 江苏银创律师事务所 32242 | 代理人: | 孙计良 |
地址: | 211100 江苏省南*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据库 升级 方法 装置 以及 应用 部署 | ||
本发明公开了一种数据库升级方法和装置以及应用部署升级方法和装置。该方法维持了一数据库脚本清单,该数据库脚本清单历史升级过程所执行过的数据脚本的清单,升级时,首先通过对数据库脚本清单中的数据脚本进行解析提取出数据库表形成数据库表清单,然后依据该数据库表清单进行备份,之后执行升级的数据库脚本,如果数据库脚本执行出错,则采用重置式恢复,使数据库回滚到执行升级的数据库脚本前的状态。由此,工作人员无需编辑数据库备份的脚本,也无需在数据库脚本考虑数据库事务的逻辑,也避免人工恢复作业,从而大大减少升级时的工作量。
技术领域
本发明涉及数据库升级和应用部署升级的自动化。
背景技术
线上应用大都涉及数据库。线上应用升级时,相应地涉及数据库升级或变更。现有技术下,线上应用升级前,所涉及的数据库升级或变更会编辑成用于数据库升级的数据库脚本。线上应用升级时,通常需要人工工连接数据库系统,再执行用于数据库升级的数据库脚本。为避免线上应用升级出错的问题,线上应用升级时,需要对线上应用所涉及的数据库表内容进行备份。显而易见地,通过人工操作对线上应用所涉及变更的数据库表内容进行一个个备份是不现实的,因此,用于数据库升级的数据库脚本中直接加入了进行相关的数据库表内容备份的脚本。由此,在线上应用升级时,只需要考察用于数据库升级的数据库脚本执行的返回结果即可。数据库脚本执行失败后,通常依赖于数据库脚本的数据库事务进行处理。由于数据库事务的原子性,数据库脚本执行失败后,自然回滚至数据库脚本执行前的状态。但数据库事务不能代表全部,有些数据库操作并不能容纳在数据库事务中。此种情形下,数据库脚本执行失败后需要人工进行的回滚和恢复。虽然采用数据库脚本后很大程度上减少了人工的工作量,但是,人工操作的成分还很多,而且工作量不小,特别是用于数据库升级的数据库脚本执行出错的情况下,大都需要人工对数据库表内容检查,特别是由于线上应用升级多次的情况下,每个数据库脚本都是对前版本数据库的升级,由此,每个线上应用可能会涉及多个数据库脚本,这种情况下手工回滚和恢复的工作量就会很大。此外,将相关的数据库表内容备份的脚本和数据库事务写入用于数据库升级的数据库脚本中也增加了数据库脚本编辑时的工作量和负担。
发明内容
本发明所要解决的问题:线上应用升级时数据库升级存在的作业量大,特别是应用多次升级后的数据库脚本管理问题以及数据库脚本执行出错的情况下,数据库回滚和恢复的工作量。
为解决上述问题,本发明采用的方案如下:
根据本发明的一种数据库升级方法,包括以下步骤:
获取脚本名称、数据库升级所用的数据库脚本和数据库连接信息;
根据所述脚本名称找到相应的数据库脚本清单;
所述数据库脚本清单由具有先后顺序的数据库脚本所组成;
通过对所述数据库脚本清单中各数据库脚本进行解析提取出数据库表,得到数据库表清单;
根据所述数据库连接信息连接数据库系统;
对所述数据库表清单中各数据库表进行数据库表内容备份;
执行所述数据库升级所用的数据库脚本;
若所述数据库脚本执行成功,则将所述数据库升级所用的数据库脚本加入至所述数据库脚本清单并保存;
若所述数据库脚本执行失败,则执行重置式恢复;
所述重置式恢复包括以下步骤:
通过对所述数据库升级所用的数据库脚本进行解析提取出数据库表,并在数据库系统中删除相应的数据库表;
在数据库系统中删除所述数据库表清单中的数据库表;
按顺序依次执行数据库脚本清单中的各数据库脚本;
将所备份的数据库表内容导入各数据库表。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏金智教育信息股份有限公司,未经江苏金智教育信息股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911065546.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种信息共享家用设备
- 下一篇:一种基于kettle工具的数据更新方法