基于中间件的数据库运行方法、装置及终端设备制造方法及图纸

技术编号:27534980 阅读:17 留言:0更新日期:2021-03-03 11:19
本申请涉及一种基于中间件的数据库运行方法、装置及终端设备,其中,方法包括:首先获取实时维护的数据库实例状态列表,其中,数据库私立状态列表用于存储所有数据库私立的标识以及各数据库实例的服务状态,然后将数据库实例状态列表中服务状态为故障状态的数据库实例确定为目标数据库实例,最后将发送给目标数据库的数据库指令存储在本地预设的存储文件中,基于此,若出现服务状态为故障状态的数据库实例,便会将该本该要发送给该数据库实例的数据库指令存储到本地预设的存储文件中,不再堆积在运行内存中,从而避免了运行内存的存储因数据库实例故障达到饱和的情况。储因数据库实例故障达到饱和的情况。储因数据库实例故障达到饱和的情况。

【技术实现步骤摘要】
基于中间件的数据库运行方法、装置及终端设备


[0001]本申请涉及数据库
,尤其涉及一种基于中间件的数据库运行方法、装置及终端设备。

技术介绍

[0002]随着数字化时代的到来,人们的工作和生活都与数据有着密不可分的联系,随之而来的,便是数据的量不断变大,为了有效管理这些数据,便出现了数据库。数据库用来长期存储数据,在有需要时,可以通过数据库实例对数据库中的数据进行查询,也可以将新的数据通过数据库实例写入数据库。
[0003]为了提高数据库的可用性,在客户端与数据库之间,一般会设置高可用的中间件,以减少数据库的停工时间,保持数据库查询和写入服务的高度可用性。目前的数据库利用中间件运行时,基于中间件的设计缺陷,在数据库运行时,若某一数据库实例发生故障,中间件会将客户端发送的结构化查询语言(Structured Query Language,SQL)堆积在运行内存中,无法传入对应的数据库实例,运行内存的存储达到饱和时,会严重影响其他数据库实例的读写性能。

技术实现思路

[0004]为克服相关技术中存在的运行内存的存储因数据库实例故障达到饱和,严重影响其他数据库实例的读写性能问题,本申请提供一种基于中间件的数据库运行方法、装置及终端设备。
[0005]根据本申请的第一方面,提供一种基于中间件的数据库运行方法,所述方法包括:
[0006]获取实时维护的数据库实例状态列表,所述数据库实例状态列表用于存储所有数据库实例的标识及各数据库实例的服务状态;
[0007]将数据库实例状态列表中服务状态为故障状态的数据库实例确定为目标数据库实例;
[0008]将发送给所述目标数据库实例的数据库指令存储到到本地预设的存储文件中。
[0009]在一个可选的实施例中,将发送给所述目标数据库实例的数据库指令存储到到本地预设的存储文件中之后,所述方法还包括:
[0010]根据所述数据库实例状态列表实时监测所述目标数据库实例的服务状态,并在所述服务状态由所述故障状态变为工作状态时,从所述本地内存中获取所述存储文件;
[0011]将所述存储文件中存储的数据库指令发送给所述目标数据库实例,以使所述目标数据库实例执行所述存储文件中存储的数据库指令。
[0012]在一个可选的实施例中,所述方法还包括:
[0013]接收客户端发送的数据库指令;
[0014]若所述数据库指令满足预先获取的正则规范,将所述数据库指令发送给对应数据库实例。
[0015]在一个可选的实施例中,确定所述对应数据库实例的过程,包括:
[0016]获取当前的数据库实例活跃列表,所述数据库实例活跃列表对应存储有各数据库实例的活跃数值;
[0017]获取满足预设条件的活跃数值,并将满足预设条件的活跃数值对应的数据库实例确定为对应数据库实例。
[0018]在一个可选的实施例中,维护所述数据库实例状态列表的过程包括:
[0019]周期性向各数据库实例发送判活指令;
[0020]获取各数据库实例根据所述判活指令返回的参数;
[0021]根据所述参数确定各数据库实例的服务状态,并将各数据库实例的所述服务状态对应更新到所述数据库实例状态列表中。
[0022]在一个可选的实施例中,所述方法还包括:
[0023]获取预先配置的故障提醒方式;
[0024]将所述目标数据库实例的标识和所述服务状态按照所述故障提醒方式发出提示。
[0025]根据本申请的第二方面,提供一种基于中间件的数据库运行装置,所述装置包括:
[0026]第一获取模块,用于获取实时维护的数据库实例状态列表,所述数据库实例状态列表用于存储所有数据库实例的标识及各数据库实例的服务状态;
[0027]确定模块,用于将数据库实例状态列表中服务状态为故障状态的数据库实例确定为目标数据库实例;
[0028]本地存储模块,用于将发送给所述目标数据库实例的数据库指令存储到到本地预设的存储文件中。
[0029]在一个可选的实施例中,所述装置还包括:
[0030]第二获取模块,用于根据所述数据库实例状态列表实时监测所述目标数据库实例的服务状态,并在所述服务状态由所述故障状态变为工作状态时,从所述本地内存中获取所述存储文件;
[0031]发送模块,用于将所述存储文件中存储的数据库指令发送给所述目标数据库实例,以使所述目标数据库实例执行所述存储文件中存储的数据库指令。
[0032]根据本申请的第三方面,提供一种终端设备包括:至少一个处理器和存储器;
[0033]所述处理器用于执行所述存储器中存储的基于中间件的数据库运行程序,以实现本申请第一方面提供的所述的基于中间件的数据库运行方法。
[0034]根据本申请的第四方面,提供一种计算机存储介质,所述计算机存储介质存储有一个或者多个程序,所述一个或者多个程序可被如本申请第三方面所述的终端设备执行,以实现本申请第一方便所述的基于中间件的数据库运行方法。
[0035]本申请提供的技术方案可以包括以下有益效果:首先获取实时维护的数据库实例状态列表,其中,数据库私立状态列表用于存储所有数据库私立的标识以及各数据库实例的服务状态,然后将数据库实例状态列表中服务状态为故障状态的数据库实例确定为目标数据库实例,最后将发送给目标数据库的数据库指令存储在本地预设的存储文件中,基于此,若出现服务状态为故障状态的数据库实例,便会将该本该要发送给该数据库实例的数据库指令存储到本地预设的存储文件中,不再堆积在运行内存中,从而避免了运行内存的存储因数据库实例故障达到饱和的情况。
[0036]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0037]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0038]图1是本申请的一个实施例提供的一种基于中间件的数据库运行方法的流程示意图;
[0039]图2是本申请中维护数据库实例状态列表的流程示意图;
[0040]图3是本申请中将存储文件中的数据库写入目标数据库实例的流程示意图;
[0041]图4是本申请中判断数据库指令是否满足正则规范的流程示意图;
[0042]图5是本申请中确定对应数据库的流程示意图;
[0043]图6是本申请中进行故障提示的流程示意图;
[0044]图7是本申请的另一实施例提供的一种基于中间件的数据库运行装置的结构示意图;
[0045]图8是本申请的另一实施例提供的一种终端设备的结构示意图。
具体实施方式
[0046]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于中间件的数据库运行方法,其特征在于,所述方法包括:获取实时维护的数据库实例状态列表,所述数据库实例状态列表用于存储所有数据库实例的标识及各数据库实例的服务状态;将数据库实例状态列表中服务状态为故障状态的数据库实例确定为目标数据库实例;将发送给所述目标数据库实例的数据库指令存储到到本地预设的存储文件中。2.根据权利要求1所述的基于中间件的数据库运行方法,其特征在于,将发送给所述目标数据库实例的数据库指令存储到到本地预设的存储文件中之后,所述方法还包括:根据所述数据库实例状态列表实时监测所述目标数据库实例的服务状态,并在所述服务状态由所述故障状态变为工作状态时,从所述本地内存中获取所述存储文件;将所述存储文件中存储的数据库指令发送给所述目标数据库实例,以使所述目标数据库实例执行所述存储文件中存储的数据库指令。3.根据权利要求1所述的基于中间件的数据库运行方法,其特征在于,所述方法还包括:接收客户端发送的数据库指令;若所述数据库指令满足预先获取的正则规范,将所述数据库指令发送给对应数据库实例。4.根据权利要求3所述的基于中间件的数据库运行方法,其特征在于,确定所述对应数据库实例的过程,包括:获取当前的数据库实例活跃列表,所述数据库实例活跃列表对应存储有各数据库实例的活跃数值;获取满足预设条件的活跃数值,并将满足预设条件的活跃数值对应的数据库实例确定为对应数据库实例。5.根据权利要求1所述的基于中间件的数据库运行方法,其特征在于,维护所述数据库实例状态列表的过程包括:周期性向各数据库实例发送判活指令;获取各数据库实例根据所述判活指令返回的参数;根据所述参数确定各数据库实例的服务状态,并将各数据库实例的所述...

【专利技术属性】
技术研发人员:张宁程建波吕军
申请(专利权)人:京东数字科技控股股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1