首页 / 专利库 / 软件 / 逻辑文件 / 一种容器化可配置的数据库执行脚本管理系统及方法

一种容器化可配置的数据库执行脚本管理系统及方法

阅读:0发布:2020-05-23

专利汇可以提供一种容器化可配置的数据库执行脚本管理系统及方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种容器化可配置的 数据库 执行脚本管理系统及方法,属于数据库脚本执行领域,要解决的技术问题为在Kubernetes集群中各种数据库的使用过程中减少管理和部署的难度。其系统包括:git组件,git组件为一种数据库版本控制工具;容器;database client组件,用于将各种版本的数据库客户端集成到容器中;controller组件,用于将根据数据库服务连接对应的数据库,并与对应的数据库配合处理数据库脚本生成执行结果,并反馈执行结果。其方法包括通过数据库服务关联对应的数据库和数据库脚本,以实现kubernetes集群中不同版本数据库的部署。,下面是一种容器化可配置的数据库执行脚本管理系统及方法专利的具体信息内容。

1.一种容器化可配置的数据库脚本执行管理系统,其特征在于包括:
git组件,所述git组件为一种数据库版本控制工具,用于存储配置文件,配置文件中包括基本数据结构,基本数据结构用于定义数据库配置信息,数据库配置信息包括数据库服务、数据库实例和数据库脚本;
容器;
database client组件,所述database client组件配置于容器中,用于将各种版本的数据库客户端集成到容器中;
controller组件,所述controller组件配置于容器中,为一种逻辑处理器,用于将根据数据库服务连接对应的数据库,并与对应的数据库配合处理数据库脚本生成执行结果,并反馈执行结果。
2.根据权利要求1所述的一种容器化可配置的数据库执行脚本管理系统,其特征在于所述数据库配置信息包括:
name,所述name为kubernetes对应数据库服务名;
namespace,所述namespace为kubernetes对应的命名空间;
type,所述type为数据库类型;
database,所述database为初始化的数据库实例;
data,所述data包括数据库脚本和数据库名称。
3.根据权利要求2所述的一种容器化可配置的数据库执行脚本管理系统,其特征在于所述controller组件反馈执行结果包括:
将执行结果存储于所述管理系统所在的数据库;
将执行结果反馈至运维人员。
4.根据权利要求3所述的一种容器化可配置的数据库执行脚本管理系统,其特征在于所述controller组件用于将执行结果以文件的形式反馈至运维人员。
5.根据权利要求3或4所述的一种容器化可配置的数据库执行脚本管理系统,其特征在于所述controller组件根据数据库服务连接对应的数据库,并与对应的数据库配合处理数据库脚本生成执行结果,包括:
controller组件从git组件中获取配置文件;
根据kubernetes对应的数据库服务和命名空间,连接对应的数据库,所述数据库的数据库客户端对数据库脚本进行处理生成执行结果、并将执行结果返回controller组件;
基于所述管理系统所在的数据库中存储的执行结果,判断所述配置文件是否执行过;
如果未执行过,通过对应数据库的数据库客户端对数据库脚本进行处理,并将执行结果返回controller组件;
如果执行过,判断所述数据库脚本中是否有部分数据库脚本成功执行过,如果存在,通过对应数据库的数据库客户端对未成功执行的数据库脚本进行处理,并将执行结果返回controller组件。
6.一种容器化可配置的数据库执行脚本管理方法,其特征在于应用于如权利要求1-5任一项所述的一种容器化可配置的数据库执行脚本管理系统,通过数据库服务关联对应的数据库和数据库脚本,以实现kubernetes集群中不同版本数据库的部署。
7.根据权利要求6所述的一种容器化可配置的数据库执行脚本管理方法,其特征在于所述管理方法包括如下步骤:
S100、设置配置文件,所述配置文件中包括基本数据结构,基本数据结构用于定义数据库配置信息,数据库配置信息包括数据库服务、数据库实例和数据库脚本;
S200、将配置文件上传git组件;
S300、通过controller组件从git组件上获取配置文件,根据kubernetes对应数据库服务名和命名空间连接对应的数据库;
通过controller组件判断所述数据库脚本是否执行过;
如果没有执行过,通过对应数据库的数据库客户端处理数据库脚本生成执行结果,并将执行结果返回controller组件;
如果执行过,基于所述管理系统所在的数据库中存储的执行结果,判断所述数据库脚本中是否存在成功执行的数据库脚本;
如果存在,则过滤掉成功执行的数据库脚本,通过对应数据库的数据库客户端处理之前执行失败的数据库脚本、生成执行结果,并将执行结果返回controller组件;
S400、通过controller组件将执行结果存储于所述管理系统所在的数据库,并将执行结果反馈至运维人员;
S500、如果数据库脚本执行不成功,运维人员更新配置文件,并将更新后配置文件上传git组件,并执行步骤S300-步骤S400,直到数据库脚本全部执行成功。
8.根据权利要求7所述的一种容器化可配置的数据库执行脚本管理方法,其特征在于所述数据库配置信息包括:
name,所述name为kubernetes对应数据库服务名;
namespace,所述namespace为kubernetes对应的命名空间;
type,所述type为数据库类型;
database,所述database为初始化的数据库实例;
data,所述data包括数据库脚本和数据库名称。

说明书全文

一种容器化可配置的数据库执行脚本管理系统及方法

技术领域

[0001] 本发明涉及数据库脚本执行领域,具体地说是一种容器化可配置的数据库执行脚本管理系统及方法。

背景技术

[0002] 随着数据库技术的发展,越来越多的厂商参与到了数据库服务的提供当中。现在环境中Kubernetes集群的扩大引进了越来越多的数据库服务。他们对应着不同的服务,同时使用起来有着各种差别。每次的初始化操作时,都需要手动确认数据库ip和数据库类型,再将数据库脚本刷入对应的数据库,上述操作繁琐,还不能重复执行,需要手动剔除执行过的sql脚本,浪费了大量的时间。
[0003] 在Kubernetes集群中各种数据库的使用过程中减少管理和部署的难度,是需要解决的技术问题。

发明内容

[0004] 本发明的技术任务是针对以上不足,提供一种容器化可配置的数据库执行脚本管理系统及方法,来解决在Kubernetes集群中各种数据库的使用过程中减少管理和部署的难度的问题。
[0005] 本发明的技术任务是按以下方式实现的,(一个主权)
[0006] 第一方面,本发明提供一种容器化可配置的数据库脚本执行管理系统,包括:
[0007] git组件,所述git组件为一种数据库版本控制工具,用于存储配置文件,配置文件中包括基本数据结构,基本数据结构用于定义数据库配置信息,数据库配置信息包括数据库服务、数据库实例和数据库脚本;
[0008] 容器;
[0009] database client组件,所述database client组件配置于容器中,用于将各种版本的数据库客户端集成到容器中;
[0010] controller组件,所述controller组件配置于容器中,为一种逻辑处理器,用于将根据数据库服务连接对应的数据库,并与对应的数据库配合处理数据库脚本生成执行结果,并反馈执行结果。
[0011] 作为优选,所述数据库配置信息包括:
[0012] name,所述name为kubernetes对应数据库服务名;
[0013] namespace,所述namespace为kubernetes对应的命名空间;
[0014] type,所述type为数据库类型;
[0015] database,所述database为初始化的数据库实例;
[0016] data,所述data包括数据库脚本和数据库名称。
[0017] 作为优选,所述controller组件反馈执行结果包括:
[0018] 将执行结果存储于所述管理系统所在的数据库;
[0019] 将执行结果反馈至运维人员。
[0020] 作为优选,所述controller组件用于将执行结果以文件的形式反馈至运维人员。
[0021] 作为优选,所述controller组件根据数据库服务连接对应的数据库,并与对应的数据库配合处理数据库脚本生成执行结果,包括:
[0022] controller组件从git组件中获取配置文件;
[0023] 根据kubernetes对应的数据库服务和命名空间,连接对应的数据库,所述数据库的数据库客户端对数据库脚本进行处理生成执行结果、并将执行结果返回controller组件;
[0024] 基于所述管理系统所在的数据库中存储的执行结果,判断所述配置文件是否执行过;
[0025] 如果未执行过,通过对应数据库的数据库客户端对数据库脚本进行处理,并将执行结果返回controller组件;
[0026] 如果执行过,判断所述数据库脚本中是否有部分数据库脚本成功执行过,如果存在,通过对应数据库的数据库客户端对未成功执行的数据库脚本进行处理,并将执行结果返回controller组件。
[0027] 第二方面,本发明提供一种容器化可配置的数据库执行脚本管理方法,应用于如第一方面任一项所述的一种容器化可配置的数据库执行脚本管理系统,通过数据库服务关联对应的数据库和数据库脚本,以实现kubernetes集群中不同版本数据库的部署。
[0028] 作为优选,所述管理方法包括如下步骤:
[0029] S100、设置配置文件,所述配置文件中包括基本数据结构,基本数据结构用于定义数据库配置信息,数据库配置信息包括数据库服务、数据库实例和数据库脚本;
[0030] S200、将配置文件上传git组件;
[0031] S300、通过controller组件从git组件上获取配置文件,根据kubernetes对应数据库服务名和命名空间连接对应的数据库;
[0032] 通过controller组件判断所述数据库脚本是否执行过;
[0033] 如果没有执行过,通过对应数据库的数据库客户端处理数据库脚本生成执行结果,并将执行结果返回controller组件;
[0034] 如果执行过,基于所述管理系统所在的数据库中存储的执行结果,判断所述数据库脚本中是否存在成功执行的数据库脚本;
[0035] 如果存在,则过滤掉成功执行的数据库脚本,通过对应数据库的数据库客户端处理之前执行失败的数据库脚本、生成执行结果,并将执行结果返回controller组件;
[0036] S400、通过controller组件将执行结果存储于所述管理系统所在的数据库,并将执行结果反馈至运维人员;
[0037] S500、如果数据库脚本执行不成功,运维人员更新配置文件,并将更新后配置文件上传git组件,并执行步骤S300-步骤S400,直到数据库脚本全部执行成功。
[0038] 作为优选,所述数据库配置信息包括:
[0039] name,所述name为kubernetes对应数据库服务名;
[0040] namespace,所述namespace为kubernetes对应的命名空间;
[0041] type,所述type为数据库类型;
[0042] database,所述database为初始化的数据库实例;
[0043] data,所述data包括数据库脚本和数据库名称。
[0044] 本发明的一种容器化可配置的数据库执行脚本管理系统及方法具有以下优点:
[0045] 1、大幅减少了运维人员初始化数据库的操作,一次正确配置后,后续不再需要重复的修改数据库脚本,即可重复的部署其他环境;
[0046] 2、提供给了运维人员对于特定环境进行数据库脚本的裁剪能,在配置文件中新增和删除文件配置即可控制环境数据库脚本的使用;
[0047] 3、容器可以在不同的kubernetes集群中重复使用,不再需要额外配置数据库客户端,节约了环境配置时间附图说明
[0048] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0049] 下面结合附图对本发明进一步说明。
[0050] 附图1为一种容器化可配置的数据库执行脚本管理系统的工作原理框图

具体实施方式

[0051] 下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
[0052] 本发明实施例提供一种容器化可配置的数据库执行脚本管理系统及方法,用于解决在Kubernetes集群中各种数据库的使用过程中减少管理和部署的难度的技术问题。
[0053] 实施例1:
[0054] 本发明的一种容器化可配置的数据库脚本执行管理系统,包括git组件、容器、database client组件和controller组件。controller组件与git组件逻辑互连,database client组件与kubernetes逻辑互连。
[0055] git组件为一种数据库版本控制工具,用于存储配置文件,配置文件中包括基本数据结构,基本数据结构用于定义数据库配置信息,数据库配置信息包括数据库服务、数据库实例和数据库脚本。
[0056] 具体的,配置信息包括:name,为kubernetes对应数据库服务名;namespace,为kubernetes对应的命名空间;type,为数据库类型;database,为初始化的数据库实例;data,其数据库脚本和数据库名称。
[0057] 本实施例中以yaml为例,具体的数据结构为:
[0058] -name:csf-mysql---kubernetes对应数据库服务名
[0059] namespace:csf---kubernetes对应的命名空间
[0060] type:mysql---数据库类型
[0061] database:csf-mysql.csf-init.sql---数据库初始sql,用户初始sql等[0062] data:
[0063] -sql:csf-mysql.csf-xxl-job.sql---数据库DDL,DML脚本
[0064] database:xxl-job---对应的数据库名称
[0065] 容器为一种内核轻量级的操作系统层虚拟化技术。
[0066] database client组件配置于容器中,用于将各种版本的数据库客户端集成到容器中。
[0067] controller组件配置于容器中,为一种逻辑处理器,用于将根据数据库服务连接对应的数据库,并与对应的数据库配合处理数据库脚本生成执行结果,并反馈执行结果。
[0068] 其中,controller组件反馈执行结果包括以下两种模式:将执行结果存储于所述管理系统所在的数据库,以及,将执行结果反馈至运维人员。
[0069] 运维人员可技术得知数据库脚本的执行结果,从而可根据执行结果修改更新配置文件,并将修改后的配置文件上传该管理系统,以重新处理数据库脚本;管理系统所在的数据库中存储有执行结果,从而再重新执行数据库脚本时,可将执行成功的数据库脚本过滤掉,只处理未成功的数据库脚本,从而减小冗余。
[0070] controller组件根据数据库服务连接对应的数据库,并与对应的数据库配合处理数据库脚本生成执行结果,具体功能为:
[0071] (1)controller组件从git组件中获取配置文件;
[0072] (2)根据kubernetes对应的数据库服务和命名空间,连接对应的数据库,所述数据库的数据库客户端对数据库脚本进行处理生成执行结果、并将执行结果返回controller组件;
[0073] (3)基于所述管理系统所在的数据库中存储的执行结果,判断所述配置文件是否执行过;
[0074] (4)如果未执行过,通过对应数据库的数据库客户端对数据库脚本进行处理,并将执行结果返回controller组件;
[0075] (5)如果执行过,判断所述数据库脚本中是否有部分数据库脚本成功执行过,如果存在,通过对应数据库的数据库客户端对未成功执行的数据库脚本进行处理,并将执行结果返回controller组件。
[0076] 基于上述功能,该管理系统可给Kubernetes集群的部署提供可重复性的刷新操作,减少人力浪费,节约部署时间;同时提供统一的入口来支持环境中不同数据库的部署和升级,工作流程为:
[0077] 1)运维人员按照基本数据结构的要求,配置当前环境所需要服务和数据库脚本设置的配置文件;
[0078] 2)运维人员启动脚本执行管理工具,并将配置文件上传git组件;
[0079] 3)controller组件将会自动从git组件上配置文件,根据kubernetes对应数据库服务名和命名空间(两者的结合相当于ip的作用)连接对应的数据库,数据库客户端用于对数据库脚本进行处理生成执行结果,并将执行结果返回controller组件;
[0080] controller组件将执行结果上传管理系统所在的数据库,并将执行结果反馈至运维人员;
[0081] controller组件判断所述数据库脚本是否执行过;
[0082] 如果没有执行过,通过对应数据库的数据库客户端处理数据库脚本生成执行结果,并将执行结果返回controller组件;
[0083] 如果执行过,基于管理系统所在的数据库中存储的执行结果,判断该数据库脚本中是否存在成功执行的数据库脚本;
[0084] 如果存在,则过滤掉成功执行的数据库脚本,通过对应数据库的数据库客户端处理之前执行失败的数据库脚本、生成执行结果,并将执行结果返回controller组件,controller组件将执行结果存储于所述管理系统所在的数据库,并将执行结果反馈至运维人员;
[0085] (4)如果数据库脚本执行不成功,运维人员更新配置文件,并将更新后配置文件上传git组件,并执行步骤(3)-(4),直到数据库脚本全部执行成功。
[0086] 实施例2:
[0087] 本发明的一种容器化可配置的数据库执行脚本管理方法,应用于实施例1公开的一种容器化可配置的数据库执行脚本管理系统,通过数据库服务关联对应的数据库和数据库脚本,以实现kubernetes集群中不同版本数据库的部署。
[0088] 该方法包括如下步骤:
[0089] S100、设置配置文件,所述配置文件中包括基本数据结构,基本数据结构用于定义数据库配置信息,数据库配置信息包括数据库服务、数据库实例和数据库脚本;
[0090] S200、将配置文件上传git组件;
[0091] S300、通过controller组件从git组件上获取配置文件,根据kubernetes对应数据库服务名和命名空间连接对应的数据库;
[0092] 通过controller组件判断所述数据库脚本是否执行过;
[0093] 如果没有执行过,通过对应数据库的数据库客户端处理数据库脚本生成执行结果,并将执行结果返回controller组件;
[0094] 如果执行过,基于所述管理系统所在的数据库中存储的执行结果,判断所述数据库脚本中是否存在成功执行的数据库脚本;
[0095] 如果存在,则过滤掉成功执行的数据库脚本,通过对应数据库的数据库客户端处理之前执行失败的数据库脚本、生成执行结果,并将执行结果返回controller组件;
[0096] S400、通过controller组件将执行结果存储于所述管理系统所在的数据库,并将执行结果反馈至运维人员;
[0097] S500、如果数据库脚本执行不成功,运维人员更新配置文件,并将更新后配置文件上传git组件,并执行步骤S300-步骤S400,直到数据库脚本全部执行成功。
[0098] 具体的,配置信息包括:name,为kubernetes对应数据库服务名;namespace,为kubernetes对应的命名空间;type,为数据库类型;database,为初始化的数据库实例;data,其数据库脚本和数据库名称。
[0099] 本实施例中以yaml为例,具体的数据结构为:
[0100] -name:csf-mysql---kubernetes对应数据库服务名
[0101] namespace:csf---kubernetes对应的命名空间
[0102] type:mysql---数据库类型
[0103] database:csf-mysql.csf-init.sql---数据库初始sql,用户初始sql等[0104] data:
[0105] -sql:csf-mysql.csf-xxl-job.sql---数据库DDL,DML脚本
[0106] database:xxl-job---对应的数据库名称
[0107] 以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈