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

文档序号:9432435阅读:来源:国知局
0、依据与所述SQL语句同类型的SQL语句的历史执行成本变化曲线,以及所述SQL语句的执行成本,确定是否出现故障;
[0094]步骤S430、确定当前检测周期内,当前检测时间点的数据库的性能指标的值;
[0095]其中,数据库的性能指标有多种,如CPU使用率、内存占用率、最大连接数、最大用户并发数、最大用户等待时间等等。
[0096]本申请可以设定检测周期以及检测周期内各个检测时间点。举例如,检测周期为I个月,检测时间点为I个月内每天上午10点时刻。又必然,检测周期为I天,检测时间点为I天内的每个整点时刻。
[0097]步骤S440、在预置的性能指标基线上,读取相同检测时间点的性能指标的阈值;
[0098]其中,所述性能指标基线为数据库在一个检测周期内,各个检测时间点的性能指标的阈值。性能指标的阈值包括性能指标的最大值和性能指标的最小值。本实施例可以将表示性能指标的最大值的曲线和最小值的曲线绘制在同一图表上,当然也可以分为两个曲线图表进行表示。
[0099]对应于每个性能指标,均存在一组性能指标基线。
[0100]本实施例可以是以某一个历史检测周期为对象,统计该检测周期内数据库性能指标的阈值,进而得到性能指标基线。还可以是对多个历史检测周期的性能指标基线求取平均值,结果作为性能指标基线。通过求取平均值的方式,减少了个别检测时间点数据异常的情况。
[0101]为了判断当前检测时间点采集的数据库的性能指标的值是否异常,本实施例从性能指标基线上选取相同检测时间点的性能指标的阈值作为对比对象。
[0102]本申请考虑到数据压力在不同时段具有较大差异,因此选取不同检测周期内相同检测时间点的性能指标的值作为对比对象,提高了判断的准确度。
[0103]步骤S450、判断所述当前检测时间点的数据库的性能指标的值是否满足预置条件,若是,执行步骤S460 ;
[0104]其中,预置条件为所述当前检测时间点的数据库的性能指标的值大于所述性能指标的最大值,或者小于所述性能指标的最小值。
[0105]步骤S460、确定数据库故障,发出预警。
[0106]其中,如果当前检测时间点的数据库的性能指标的值超过性能指标的最大值,也即意味着数据库访问压力过大,数据库将要发生故障。
[0107]如果当前检测时间点的数据库的性能指标的值低于性能指标的最小值,也即意味着数据库与外部进行通信的通道发生了堵塞,业务请求无法到达数据库,因此造成数据库性能指标过低,这也属于故障的一种类型。
[0108]可以理解的是,上述步骤S430-S460还可以与步骤S400-S420并列执行,图4仅仅不例了一种可选方式。
[0109]相比于上一实施例,本实施例进一步增加了一种数据库故障判断逻辑,即预先建立了数据库的性能指标基线,进而在采集到数据库的性能指标值时,通过对比性能指标基线上相同检测时间点的性能指标的阈值,可以确定是否出现故障。因此,进一步提供了数据库故障预测的准确度。
[0110]为了便于理解上述步骤S430-S460的故障判断逻辑,本申请通过下述例子进行说明。
[0111]此处我们以性能指标为CPU使用率最大值为例,检测周期为I个月,检测时间点为一个月内每天O点。则参见图5,图5为申请实施例示例的一种性能指标基线示意图。
[0112]图5中仅示例了一个检测周期内前10天的检测结果。
[0113]假设在当前检测周期的第5天,检测到数据库的CPU使用率最大值为70%,则查看图5的曲线,其中第5天对应的值为60%,显然70% >60%,因此确定数据库出现故障。
[0114]参见图6,图6为本申请实施例公开的又一种数据库故障预测方法流程图。
[0115]如图6所示,该方法包括:
[0116]步骤S600、在检测到SQL语句访问数据库时,获取所述SQL语句的执行成本因素;
[0117]步骤S610、利用所述SQL语句的执行成本因素,计算所述SQL语句的执行成本;
[0118]上一步骤已经获取了 SQL语句的执行成本因素,进而可以根据获取的执行成本因素以及一定的计算规则,计算SQL语句的执行成本。具体地计算规则可以有多种,根据各个执行成本因素所占的比重,执行成本也会产生变化。
[0119]步骤S620、依据与所述SQL语句同类型的SQL语句的历史执行成本变化曲线,以及所述SQL语句的执行成本,确定是否出现故障;
[0120]步骤S630、计算数据库当前容量,以及数据库容量的增长率;
[0121]其中,利用数据库的当前容量以及历史容量数据,可以计算数据库容量的增长率。
[0122]步骤S640、利用所述数据库容量的增长率、数据库的当前容量及预置告警容量,计算故障发生时间。
[0123]其中,所述故障发生时间为距离数据库容量达到预置告警容量所需的时间长度。
[0124]本申请预置了数据库的告警容量,一般性的,告警容量为数据库容量的80%左右。在确定了数据库容量的增长率,以及数据库当前容量和告警容量之后,可以计算出多长时间之后数据库容量将会达到告警容量,也即预测出故障发生时间。
[0125]本实施例相比于上述实施例,进一步增加了一种数据库故障预测逻辑,也即通过对数据库容量的检测,结合数据库容量增长率,能够预测出故障发生时间,进而指导技术人员提前进行故障排除,避免故障的发生。
[0126]下面对本申请实施例提供的数据库故障预测装置进行描述,下文描述的数据库故障预测装置与上文描述的数据库故障预测方法可相互对应参照。
[0127]参见图7,图7为本申请实施例公开的一种数据库故障预测装置结构示意图。
[0128]如图7所示,该装置包括:
[0129]成本因素获取单元71,用于在检测到SQL语句访问数据库时,获取所述SQL语句的执行成本因素;
[0130]执行成本计算单元72,用于利用所述SQL语句的执行成本因素,计算所述SQL语句的执行成本;
[0131]故障预测单元73,用于依据与所述SQL语句同类型的SQL语句的历史执行成本变化曲线,以及所述SQL语句的执行成本,确定是否出现故障。
[0132]本申请实施例提供的数据库故障预测装置,在检测到SQL语句访问数据库时,获取所述SQL语句的执行成本因素,执行成本因素可以有多种,例如执行SQL语句所需要的时间、执行SQL语句所占用的各种资源量等等,进而根据SQL语句的执行成本因素,计算SQL语句的执行成本,最后依据与所述SQL语句同类型的SQL语句的历史执行成本变化曲线,以及SQL语句的执行成本,确定是否出现故障。本申请以SQL语句的执行成本作为预测数据库故障的因素,SQL语句的执行成本增加代表着数据库运行效率下降,进而可以确定数据库出现了故障。
[0133]可选的,所述执行成本因素可以包括SQL语句的资源消耗量及SQL语句的执行时间,则所述执行成本计算单元可以包括:
[0134]第一执行成本计算子单元,用于对所述资源消耗量和所述执行时间进行加权相加,结果保存为所述SQL语句的执行成本。
[0135]可选的,本申请实施例公开的数据库故障预测装置还可以包括:
[0136]数据库性能指标确定单元,用于确定当前检测周期内,当前检测时间点的数据库的性能指
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1