一种数据库故障预测方法及装置的制造方法_2

文档序号:9432435阅读:来源:国知局
实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0054]参见图1,图1为本申请实施例公开的一种数据库故障预测方法流程图。
[0055]如图1所示,该方法包括:
[0056]步骤S100、在检测到SQL语句访问数据库时,获取所述SQL语句的执行成本因素;
[0057]在访问数据库过程中无论是在数据库中查询数据,还是往数据库中写入数据,均需要使用SQL语句。SQL语句的执行需要消耗成本,这些成本可以看作执行成本,例如SQL语句的资源消耗,如CPU使用率、内存使用率、SQL语句的执行时间等等其它成本因素。
[0058]本步骤在检测到SQL语句访问数据库时,获取SQL语句的执行成本因素。
[0059]步骤S110、利用所述SQL语句的执行成本因素,计算所述SQL语句的执行成本;
[0060]上一步骤已经获取了 SQL语句的执行成本因素,进而可以根据获取的执行成本因素以及一定的计算规则,计算SQL语句的执行成本。具体地计算规则可以有多种,根据各个执行成本因素所占的比重,执行成本也会产生变化。
[0061]步骤S120、依据与所述SQL语句同类型的SQL语句的历史执行成本变化曲线,以及所述SQL语句的执行成本,确定是否出现故障。
[0062]需要说明的是,本申请通过对数据库的各个种类的SQL语句的执行成本因素进行监控,可以建立各个种类的SQL语句的历史执行成本变化曲线。曲线表明了某一类型的SQL语句在历史各个时间点的执行成本。
[0063]其中,数据库访问所使用的SQL语句可以按照类型进行划分,例如两条SQL语句均是查询账户余额,区别仅在于针对的账户不同,因此这两条SQL语句可以看作针对同一交易类型“查询账户余额”的SQL语句,可以归为同类型的SQL语句。
[0064]进一步,在计算得到SQL语句的执行成本之后,可以调取与SQL语句同类型的SQL语句的历史执行成本变化曲线,进而通过比对调取的曲线以及SQL语句的执行成本,可以确定数据库是否出现故障。
[0065]具体地故障判断逻辑可以有多种,例如对比发现SQL语句的执行成本相比于曲线上其它点产生突增,则可以确定数据库出现了故障。再比如,检测发现SQL语句的执行成本在曲线上呈逐步上升趋势,也即该类型的SQL语句的执行成本在持续增加,因此也可以确定数据库出现了异常。
[0066]本申请实施例提供的数据库故障预测方法,在检测到SQL语句访问数据库时,获取所述SQL语句的执行成本因素,执行成本因素可以有多种,例如执行SQL语句所需要的时间、执行SQL语句所占用的各种资源量等等,进而根据SQL语句的执行成本因素,计算SQL语句的执行成本,最后依据与所述SQL语句同类型的SQL语句的历史执行成本变化曲线,以及SQL语句的执行成本,确定是否出现故障。本申请以SQL语句的执行成本作为预测数据库故障的因素,SQL语句的执行成本增加代表着数据库运行效率下降,进而可以确定数据库出现了故障。
[0067]参见图2,图2为本申请实施例公开的另一种数据库故障预测方法流程图。
[0068]本实施例中,以执行成本因素包括SQL语句的资源消耗量和SQL语句的执行时间为例进行说明。如图2所示,该方法包括:
[0069]步骤S200、在检测到SQL语句访问数据库时,获取所述SQL语句的资源消耗量及执行时间;
[0070]本实施例中,以SQL语句的执行成本因素为SQL语句的资源消耗量及执行时间为例。其中资源消耗量可以包括CPU使用率、内存占用率等。
[0071]步骤S210、对所述资源消耗量和所述执行时间进行加权相加,结果保存为所述SQL语句的执行成本;
[0072]由于资源消耗量和执行时间对执行成本的影响可能不同,因此为资源消耗量和执行时间分配不同的权重值,进而对其进行加权相加,结果作为SQL语句的执行成本。举例如,资源消耗量为q,执行时间为t,二者的权重分别为Xl和x2,则加权相加后得到的执行成本为 xl*q+x2*t。
[0073]其中,若资源消耗量为多个种类的资源的消耗量,可以为不同的资源消耗量分配不同的权重值,举例如资源消耗量包括CPU使用率及内存占用率,则可以为其分配不同的权重值。
[0074]步骤S220、依据与所述SQL语句同类型的SQL语句的历史执行成本变化曲线,以及所述SQL语句的执行成本,确定是否出现故障。
[0075]需要说明的是,本申请通过对数据库的各个种类的SQL语句的执行成本因素进行监控,可以建立各个种类的SQL语句的历史执行成本变化曲线。曲线表明了某一类型的SQL语句在历史各个时间点的执行成本。
[0076]相比于上一实施例,本实施例以执行成本因素为SQL语句的资源消耗量和执行时间为例,介绍了一种计算SQL语句的执行成本的具体实施方案。
[0077]参见图3,图3为本申请实施例公开的又一种数据库故障预测方法流程图。
[0078]如图3所示,该方法包括:
[0079]步骤S300、在检测到SQL语句访问数据库时,获取所述SQL语句的执行成本因素;
[0080]步骤S310、利用所述SQL语句的执行成本因素,计算所述SQL语句的执行成本;
[0081]上一步骤已经获取了 SQL语句的执行成本因素,进而可以根据获取的执行成本因素以及一定的计算规则,计算SQL语句的执行成本。具体地计算规则可以有多种,根据各个执行成本因素所占的比重,执行成本也会产生变化。
[0082]步骤S320、依据与所述SQL语句同类型的SQL语句的历史执行成本变化曲线,以及所述SQL语句的执行成本,确定是否出现故障;
[0083]步骤S330、在确定出现故障时,调取故障时间点的SQL语句的交易信息以及数据库的性能指标值;
[0084]具体地,本申请可以实时存储各条SQL语句的交易信息,以及数据库的性能指标值。因此,在确定出现故障时,可以调取故障时间点的SQL语句的交易信息及数据库的性能指标值。
[0085]其中,数据库的性能指标有多种,如CPU使用率、内存占用率、最大连接数、最大用户并发数、最大用户等待时间等等。
[0086]步骤S340、在测试环境中,利用所述交易信息及所述性能指标值模拟故障现象。
[0087]通过记录故障时间点的SQL语句的交易信息,以及数据库的性能指标值,可以在测试环境中再次回放,实现故障现象回溯,更加方便技术人员分析故障原因。
[0088]参见图4,图4为本申请实施例公开的又一种数据库故障预测方法流程图。
[0089]如图4所示,该方法包括:
[0090]步骤S400、在检测到SQL语句访问数据库时,获取所述SQL语句的执行成本因素;
[0091]步骤S410、利用所述SQL语句的执行成本因素,计算所述SQL语句的执行成本;
[0092]上一步骤已经获取了 SQL语句的执行成本因素,进而可以根据获取的执行成本因素以及一定的计算规则,计算SQL语句的执行成本。具体地计算规则可以有多种,根据各个执行成本因素所占的比重,执行成本也会产生变化。
[0093]步骤S42
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1