一种数据库故障诊断及自愈方法技术

技术编号:33127871 阅读:15 留言:0更新日期:2022-04-17 00:40
本发明专利技术涉及一种数据库故障诊断及自愈方法,与现有技术相比解决了难以针对数据库故障进行及时诊断的缺陷。本发明专利技术包括以下步骤:训练数据集的建立;故障发现分类模型的训练;待分析数据库数据的获取;数据故障的诊断。本发明专利技术通过实时监听数据库日志,在数据库发生故障时迅速发现并实施排查与修复。时迅速发现并实施排查与修复。时迅速发现并实施排查与修复。

【技术实现步骤摘要】
一种数据库故障诊断及自愈方法


[0001]本专利技术涉及数据库
,具体来说是一种数据库故障诊断及自愈方法。

技术介绍

[0002]多云环境下的数据库运维一直是一个巨大的难题,从数据库故障的发生到解决,往往要耗费数小时。数据库是业务系统非常重要的一个组成部分,直接影响数据的存储与查看,一旦数据库出现故障,将直接引起整个业务系统的瘫痪。
[0003]目前数据库出现的故障都是在业务系统访问异常后,运维人员排查后再修复,耗时较长,修复完成前系统都无法正常访问。而且数据库故障种类多,解决难度高,对运维人员的技术要求比较高。
[0004]因此,需要一种在数据库出现故障时迅速反应并修复故障的系统,来保证数据库的健康运行。

技术实现思路

[0005]本专利技术的目的是为了解决现有技术中难以针对数据库故障进行及时诊断的缺陷,提供一种数据库故障诊断及自愈方法来解决上述问题。
[0006]为了实现上述目的,本专利技术的技术方案如下:
[0007]一种数据库故障诊断方法,包括以下步骤:
[0008]训练数据集的建立:获取数据库的历史日志数据,并进行数据预处理;
[0009]故障发现分类模型的训练:将预处理后的训练数据集输入故障发现分类模型,利用KNN算法进行训练;
[0010]待分析数据库数据的获取:获取待分析的数据库日志数据;
[0011]数据故障的诊断:将待分析的数据库日志数据输入训练后的故障发现分类模型,得到数据故障的诊断结果。
[0012]所述训练数据集的建立包括以下步骤:
[0013]获取数据库的历史日志数据;
[0014]解析每一行日志数据,拆分出时间、日志级别和日志内容,将日志级别为warning与error的日志加进训练数据集;
[0015]将日志内容分词并向量化,利用TF

IDF算法计算每个词的TF

IDF值,计算词汇的IDF值,其计算公式如下:
[0016][0017]其中,N代表语料库中文本的总数,而N(x)代表语料库中含词x的文本总数;
[0018]计算词汇的TF

IDF值,其中TF(x)为词x在该行日志内容中的词频:
[0019]TF

IDF(x)=TF(x)
×
IDF(x);
[0020]进行归一化处理,n为词向量的维数,则词x的权重w(x)为
[0021][0022]所述故障发现分类模型的训练包括以下步骤:
[0023]对数据集进行人工分类,分为“故障”与“无故障”两种;
[0024]对数据集按故障类型进行人工分类;
[0025]将训练集作为已知分类数据集,测试集作为未知数据集,利用KNN算法计算不同K值下分类的准确率,找到最优K值;
[0026]设训练集中词向量为x
i
,
[0027]x
i
=(x
i(1)
,x
i(2)
,...,x
i(n)
)
T

[0028]测试集中词向量为x
j
,
[0029]x
j
=(x
j(1)
,x
j(2)
,...,x
j(n)
)
T

[0030]n为词向量的维数,则x
i
与x
j
的距离为:
[0031][0032]对测试集中x
j
,计算其在训练集中最近的k个点,计算前k个点在各个分类中的出现频率,其中出现最高频率的分类为该行数据的预测分类;
[0033]对不同k值,计算所有预测分类的准确率,找出最优k值。
[0034]所述自愈方法包括以下步骤:
[0035]对不同的故障类型录入故障定位指令、解析指令返回结果的正则表达式及预期返回值,当发现故障后,根据预测的故障类型执行相应的定位指令,使用正则表达式解析定位指令执行后得到的数据;
[0036]若数据解析结果与预期返回值一致,则故障定位成功,开始故障修复,若数据解析结果与预期返回值不一致,则故障定位失败;
[0037]若修复成功,则将该条用于预测的日志数据加入到训练集中,并将预测到的故障类型进行标注。
[0038]有益效果
[0039]本专利技术的一种数据库故障诊断及自愈方法,与现有技术相比通过实时监听数据库日志,在数据库发生故障时迅速发现并实施排查与修复。
[0040]本专利技术通过实际前期准备工作已经完成的大部分数据库故障分类,和录入的排查指令与修复指令,对已经录入的故障类型,在故障发生时可立即进行自愈;对没有录入的故障类型,在自愈失败后,发起工单,由运维人员手动排查并修复,修复完成后再录入该故障类型及修复指令,后续再遇到该类型故障,不再需要运维人员手动解决。
[0041]本专利技术大大降低了多云环境下数据库故障发生后的反应时间,提高了运维效率,减少了运维成本,保证了业务系统的平稳运行。
附图说明
[0042]图1为本专利技术的方法顺序图。
具体实施方式
[0043]为使对本专利技术的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
[0044]如图1所示,本专利技术所述的一种数据库故障诊断方法,包括以下步骤:
[0045]第一步,训练数据集的建立:获取数据库的历史日志数据,并进行数据预处理。其具体步骤如下:
[0046](1)获取数据库的历史日志数据。
[0047](2)解析每一行日志数据,拆分出时间、日志级别和日志内容,将日志级别为warning与error的日志加进训练数据集。
[0048](3)将日志内容分词并向量化,利用TF

IDF算法计算每个词的TF

IDF值,计算词汇的IDF值,其计算公式如下:
[0049][0050]其中,N代表语料库中文本的总数,而N(x)代表语料库中含词x的文本总数。
[0051](4)计算词汇的TF

IDF值,其中TF(x)为词x在该行日志内容中的词频:
[0052]TF

IDF(x)=TF(x)
×
IDF(x)。
[0053](5)进行归一化处理,n为词向量的维数,则词x的权重w(x)为
[0054][0055]第二步,故障发现分类模型的训练:将预处理后的训练数据集输入故障发现分类模型,利用KNN算法进行训练。
[0056]前期数据的人工分类,对数据分类打标签时,工作量大,且对分类的运维人员技术要求较高。前期分类的数据量越大越准确,后期实际进行预测时的效果越好。KNN是一种监督学习分类算法,实现简单,精度高,对异常值不敏感。用于本专利技术中本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库故障诊断方法,其特征在于,包括以下步骤:11)训练数据集的建立:获取数据库的历史日志数据,并进行数据预处理;12)故障发现分类模型的训练:将预处理后的训练数据集输入故障发现分类模型,利用KNN算法进行训练;13)待分析数据库数据的获取:获取待分析的数据库日志数据;14)数据故障的诊断:将待分析的数据库日志数据输入训练后的故障发现分类模型,得到数据故障的诊断结果。2.根据权利要求1所述的一种数据库故障诊断方法,其特征在于,所述训练数据集的建立包括以下步骤:21)获取数据库的历史日志数据;22)解析每一行日志数据,拆分出时间、日志级别和日志内容,将日志级别为warning与error的日志加进训练数据集;23)将日志内容分词并向量化,利用TF

IDF算法计算每个词的TF

IDF值,计算词汇的IDF值,其计算公式如下:其中,N代表语料库中文本的总数,而N(x)代表语料库中含词x的文本总数;24)计算词汇的TF

IDF值,其中TF(x)为词x在该行日志内容中的词频:TF

IDF(x)=TF(x)
×
IDF(x);25)进行归一化处理,n为词向量的维数,则词x的权重w(x)为3.根据权利要求1所述的一种数据库故障诊断方法,其特征在于,所述故障发现分类模型的训练包括以下步骤:31)对数据集进行人工分类,分为“故障”与“无故障”两种;32)对数据集按故障类型进行人工分类;33)将训练集作为已知分类数据集、测试集作为...

【专利技术属性】
技术研发人员:姚本初丁正刘胜军谢飞谢贻富
申请(专利权)人:合肥城市云数据中心股份有限公司
类型:发明
国别省市:

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

1