一种数据库变更方法及装置与流程

文档序号:12666924阅读:158来源:国知局
一种数据库变更方法及装置与流程

本发明涉及分布式系统领域,特别涉及一种数据库变更方法及装置。



背景技术:

随着国家互联网+、电子商务、移动互联网的深入发展,分布式MySQL应用越来越广泛。随着数据量的增加,业务需求场景也是与日俱增,每天都在变化中。分布式MySQL数据库的操作变更在这个背景下变得频繁、重要。为了确保基于MySQL的产品和应用的稳定性,需要确保MySQL的操作变更的影响是可控的。部署了分布式MySQL后,随之带来的问题是如何高效和稳定地进行MySQL的变更。

目前业界大部分的数据库变更处于以下2种阶段:1、人工操作阶段,依赖运维人员DBA人工进行操作,完全依赖人的意识和水平;2、单纯自动化阶段,任务下发的时候全部下发,不会联动业务量情况,不会联动依赖数据库的业务健康。但这两种方式都没考虑到和业务访问量情况,线上业务的实时访问数据库有无报错等问题。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种数据库变更方法及装置。用以提高数据库变更的效率以及业务的稳定性。

本发明提供一种数据库变更方法,包括:

获取变更任务,根据所述变更任务对数据库进行变更;

实时采集每一个变更任务的报错信息;

当所述报错信息符合预期时,继续对所述数据库进行变更;

当所述报错信息超出预期时,停止对所述数据库进行变更。

在一个实施例中,在所述获取变更任务之前,所述方法还可包括:

按照预设规则将数据库的变更任务划分为N个任务,N为正整数。

在一个实施例中,所述方法还可包括:

实时采集线上业务的关键业务量信息;

每完成一个变更任务,分析所述报错信息和关键业务量信息变化情况。

在一个实施例中,所述当所述报错信息超出预期时,停止对所述数据库进行变更,可包括:

当所述报错信息的持续次数超过预设次数时,停止对所述数据库进行变更,所述报错信息包含数据库异常错误日志。

在一个实施例中,在所述当所述报错信息超出预期时,停止对所述数据库进行变更之后,所述方法还可包括:

发送告警信息。

本发明还提供一种数据库变更装置,包括:

变更模块,用于获取变更任务,根据所述变更任务对数据库进行变更;

第一采集模块,用于实时采集每一个变更任务的报错信息;

继续模块,用于当所述报错信息符合预期时,继续对所述数据库进行变更;

停止模块,用于当所述报错信息超出预期时,停止对所述数据库进行变更。

在一个实施例中,所述装置还可包括:

任务划分模块,用于按照预设规则将数据库的变更任务划分为N个任务,N为正整数。

在一个实施例中,所述装置还可包括:

第二采集模块,用于实时采集线上业务的关键业务量信息;

分析模块,用于每完成一个变更任务,分析所述报错信息和关键业务量信息变化情况。

在一个实施例中,所述停止模块可包括:

停止子模块,用于当所述报错信息的持续次数超过预设次数时,停止对所述数据库进行变更,所述报错信息包含数据库异常错误日志。

在一个实施例中,所述装置还可包括:

告警模块,用于发送告警信息。

本发明的实施例提供的技术方案可以包括以下有益效果:

上述技术方案,通过获取变更任务,根据变更任务对数据库进行变更,实时采集每一个变更任务的报错信息,当报错信息符合预期时,继续对数据库进行变更,当报错信息超出预期时,停止对数据库进行变更。分布式MySQL批量变更可以得到稳定性的实时分析和稳定保证,并提高变更的效率,可以给业务的稳定性带来更好的帮助,提升用户体验满意度。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

附图说明

附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:

图1为本发明实施例中一种数据库变更方法的流程图;

图2为本发明实施例中另一种数据库变更方法的流程图;

图3为本发明实施例中另一种数据库变更方法的流程图;

图4为本发明实施例中另一种数据库变更方法的流程图;

图5为本发明实施例中另一种数据库变更方法的流程图;

图6为本发明实施例中一种数据库变更装置的框图;

图7为本发明实施例中另一种数据库变更装置的框图;

图8为本发明实施例中另一种数据库变更装置的框图;

图9为本发明实施例中另一种数据库变更装置的框图。

具体实施方式

以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。

图1所示为本发明实施例中一种数据库变更方法的流程图,如图1所示,该数据库变更方法包括以下步骤S11-S14:

步骤S11,获取变更任务,根据变更任务对数据库进行变更。

步骤S12,实时采集每一个变更任务的报错信息。

步骤S13,当报错信息符合预期时,继续对数据库进行变更。

步骤S14,当报错信息超出预期时,停止对数据库进行变更。

数据库提供了对数据的存储功能,并且能够支持用户对所保存的数据的访问功能。实际应用中,用户往往对数据库中保存的数据存在变更的需求,例如,新增数据、删除数据、修改数据等。因此,数据库也能够支持用户对数据库进行变更的需求。用户对数据库进行变更,主要通过如下步骤实现:数据库开发人员根据数据库变更需求,编写结构化查询语言(Structured Query Language,SQL)语句;数据库变更需求一般包括数据库的变更对象信息以及对该数据库变更对象执行的操作类型信息。数据库开发人员将编写的SQL语句发送给数据库管理员(Database administrator,DBA);DBA对接收的SQL语句进行审核,即判断SQL语句的编写是否准确;DBA对接收的SQL语句审核通过后,根据该SQL语句确定数据库变更需求;DBA登录数据库,根据确定出的数据库变更需求,对数据库执行与该变更需求相应的操作;DBA在完成对数据库的操作后,将数据库开发人员编写的SQL语句应用到该数据库的开发库。

在这个过程中,为了确保基于MySQL的产品和应用的稳定性,需要确保MySQL的操作变更的影响是可控的。本发明实施例的上述方法,通过获取变更任务,根据变更任务对数据库进行变更,实时采集每一个变更任务的报错信息,当报错信息符合预期时,继续对数据库进行变更,当报错信息超出预期时,停止对数据库进行变更。分布式MySQL批量变更可以得到稳定性的实时分析和稳定保证,并提高变更的效率,可以给业务的稳定性带来更好的帮助和保证影响范围最小,提升用户体验满意度。

在一个实施例中,在步骤S11之前,如图2所示,该数据库变更方法还可包括以下步骤S15:

步骤S15,按照预设规则将数据库的变更任务划分为N个任务,N为正整数。

本实施了提供一个数据库变更任务初始化程序,该程序会把数据库的变更任务初始化为N个任务。比如添加1000个表,则自动拆分为1000个任务。

在一个实施例中,如图3所示,该数据库变更方法还可包括以下步骤S16-S17:

步骤S16,实时采集线上业务的关键业务量信息。

步骤S17,每完成一个变更任务,分析报错信息和关键业务量信息变化情况。

在一个实施例中,如图4所示,步骤S14可以实施为如下步骤S141:

步骤S141,当报错信息的持续次数超过预设次数时,停止对数据库进行变更,报错信息包含数据库异常错误日志。

本实施例提供一个变更任务控制模块,控制模块会对业务报错信息进行处理,如判断业务报错信息里面是否有SQLException的错误日志,比如对A数据库进行变更,依赖A数据库的业务一直出现SQLException错误,在数据库变更完成后依然在报错,程序自动判断变更任务不可继续,自动停止变更。

在一个实施例中,如图5所示,在步骤S14之后,该数据库变更方法还可包括如下步骤S18:

步骤S18,发送告警信息。

数据库停止变更后,发送告警信息,方便运维人员及时了解数据库变更情况。

基于同一发明构思,本发明实施例还提供了一种数据库变更装置,由于该装置所解决问题的原理与前述数据库变更方法相似,因此该装置的实施可以参见前述方法的实施,重复之处不再赘述。

图6所示为本发明实施例中一种数据库变更装置的框图,如图6所示,该数据库变更装置包括:

变更模块61,用于获取变更任务,根据变更任务对数据库进行变更;

第一采集模块62,用于实时采集每一个变更任务的报错信息;

继续模块63,用于当报错信息符合预期时,继续对数据库进行变更;

停止模块64,用于当报错信息超出预期时,停止对数据库进行变更。

在一个实施例中,如图7所示,该数据库变更装置还可包括:

任务划分模块65,用于按照预设规则将数据库的变更任务划分为N个任务,N为正整数。

在一个实施例中,如图8所示,该数据库变更装置还可包括:

第二采集模块66,用于实时采集线上业务的关键业务量信息;

分析模块67,用于每完成一个变更任务,分析报错信息和关键业务量信息变化情况。

在一个实施例中,停止模块64可包括:

停止子模块,用于当报错信息的持续次数超过预设次数时,停止对数据库进行变更,报错信息包含数据库异常错误日志。

在一个实施例中,如图9所示,该数据库变更装置还可包括:

告警模块68,用于发送告警信息。

本发明实施例的上述装置,通过获取变更任务,根据变更任务对数据库进行变更,实时采集每一个变更任务的报错信息,当报错信息符合预期时,继续对数据库进行变更,当报错信息超出预期时,停止对数据库进行变更。分布式MySQL批量变更可以得到稳定性的实时分析和稳定保证,并提高变更的效率,可以给业务的稳定性带来更好的帮助,提升用户体验满意度。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1