System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,具体而言,涉及一种日志文件分析方法及装置、计算机设备和可读存储介质。
技术介绍
1、随着科学技术的不断发展,数据库技术的应用越发广泛,而在数据库技术的实际使用过程中,通常需要利用mysql系统对数据库的数据发生变化或数据潜在发生变化的sql(structured query language, 结构化查询语言)语句进行记录,来生成对应的数据库日志文件,以便后续需要针对数据库进行故障排查时,能够通过对数据库日志文件中的部分关键sql语句进行分析和提取,来定位该数据库实质存在何种故障,以及对应故障在数据库中的分布位置,其中通过mysql系统构建出的数据库日志文件的文件特性是将操作表的完整表名单独置为一行,并将操作表的实际表项数据置为完整表名行后面的连续若干行。
2、就目前而言,数据库运维人员通常需要利用notepad++、editplus、ultraedit等工具人工打开待分析的数据库日志文件,并通过人眼查找对应数据库日志文件中的关键sql语句,再将查找出的关键sql语句手动记录到便于分析的文件中,来实现对数据库的故障排查功能。但值得注意的是,通过mysql系统构建出的数据库日志文件往往存在数据量巨大(例如,单个数据库日志文件的硬件资源占用量往往会超过1gb)的特点,需要消耗大量硬件资源才能打开对应数据库日志文件,同时也会因人工查找关键sql语句的方式,在日志分析过程中导致人力资源过度损耗及查找耗时过长,并容易引发关键sql语句的查找错误。
技术实现思路
2、为了实现上述目的,本申请实施例采用的技术方案如下:
3、第一方面,本申请提供一种日志文件分析方法,所述方法包括:
4、获取待分析日志文件,以及针对所述待分析日志文件的表名关键字、操作表项关键字和表项连续行数;
5、对所述待分析日志文件进行文本格式转换,得到对应的待分析文本文件;
6、在所述待分析文本文件中确定与所述表名关键字匹配的所有目标表名文本行;
7、针对每个目标表名文本行,提取该目标表名文本行所包括的操作表时间信息以及完整表名信息,并对该目标表名文本行所对应的实际操作类型进行识别;
8、根据识别出的所述实际操作类型,在所述待分析文本文件中按照所述表项连续行数提取与该目标表名文本行对应的目标操作表项文本行,并将所述目标操作表项文本行与所述操作表项关键字进行字符串匹配;
9、在所述目标操作表项文本行与所述操作表项关键字成功匹配的情况下,提取所述目标操作表项文本行所包括的所有操作表项内容,并将与该目标表名文本行对应的所述操作表时间信息、所述完整表名信息、所述实际操作类型及所有操作表项内容写入到目标记录文件中。
10、在可选的实施方式中,所述在所述待分析文本文件中确定与所述表名关键字匹配的所有目标表名文本行的步骤,包括:
11、对所述待分析文本文件进行表名文本行筛选,得到所述待分析文本文件包括的所有待匹配表名文本行;
12、针对每个待匹配表名文本行,将该待匹配表名文本行包括的所有字符串与所述表名关键字进行字符串匹配;
13、在该待匹配表名文本行中存在与所述表名关键字匹配的字符串时,将该待匹配表名文本行作为一个目标表名文本行。
14、在可选的实施方式中,针对每个目标表名文本行,所述提取该目标表名文本行所包括的操作表时间信息以及完整表名信息的步骤,包括:
15、根据操作表时间在单个表名文本行中的预设字符串位置信息,基于字符串截取算法在该目标表名文本行中进行字符串提取,得到该目标表名文本行的操作表时间信息;
16、根据预设的表名提取起始模式串对该目标表名文本行进行模式串匹配,得到所述表名提取起始模式串在该目标表名文本行中的第一字符串位置,并根据预设的表名提取终止模式串对该目标表名文本行进行模式串匹配,得到所述表名提取终止模式串在该目标表名文本行中的第二字符串位置;
17、基于字符串截取算法提取该目标表名文本行中的位于所述第一字符串位置和所述第二字符串位置之间的字符串,得到该目标表名文本行的完整表名信息。
18、在可选的实施方式中,针对每个目标表名文本行,所述对该目标表名文本行所对应的实际操作类型进行识别的步骤,包括:
19、根据预设的单个表名文本行与对应操作类型文本行之间的相对行位置关系,在所述待分析文本文件中筛选出与该目标表名文本行对应的目标操作类型文本行;
20、根据不同操作类型各自对应的预设类型模式串,对所述目标操作类型文本行进行字符串查找,得到该目标表名文本行在所述目标操作类型文本行处对应的实际操作类型。
21、在可选的实施方式中,针对每个目标表名文本行,所述根据识别出的所述实际操作类型,在所述待分析文本文件中按照所述表项连续行数提取与该目标表名文本行对应的目标操作表项文本行的步骤,包括:
22、根据单个表名文本行在不同操作类型下的操作表项起始文本行与该表名文本行之间的相对行位置关系,在所述待分析文本文件中确定与该目标表名文本行对应的目标操作表项起始文本行;
23、将所述目标操作表项起始文本行作为提取起始文本行,按照所述表项连续行数对所述待分析文本文件进行连续文本行提取,得到包括所述目标操作表项起始文本行的目标操作表项文本行,其中所述目标操作表项文本行的总行数与所述表项连续行数保持一致。
24、在可选的实施方式中,所述将所述目标操作表项文本行与所述操作表项关键字进行字符串匹配的步骤,包括:
25、针对所述操作表项关键字包括的每个关键字符串,在所述目标操作表项文本行中进行字符串查找;
26、若所述目标操作表项文本行存在所述操作表项关键字包括的所有关键字符串,则判定所述目标操作表项文本行与所述操作表项关键字成功匹配,否则判定所述目标操作表项文本行与所述操作表项关键字匹配失败。
27、在可选的实施方式中,所述提取所述目标操作表项文本行所包括的所有操作表项内容的步骤,包括:
28、针对所述目标操作表项文本行包括的每个操作表项文本行,按照预设的表项内容起始模式串对该操作表项文本行进行模式串匹配,得到所述表项内容起始模式串在该操作表项文本行中的第三字符串位置;
29、基于字符串截取算法提取该操作表项文本行中的位于所述第三字符串位置和回车换行符之间的字符串,得到该目标表名文本行在该操作表项文本行处对应的操作表项内容。
30、第二方面,本申请提供一种日志文件分析装置,所述装置包括:
31、日志信息获取模块,用于获取待分析日志文件,以及针对所述本文档来自技高网...
【技术保护点】
1.一种日志文件分析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述待分析文本文件中确定与所述表名关键字匹配的所有目标表名文本行的步骤,包括:
3.根据权利要求1所述的方法,其特征在于,针对每个目标表名文本行,所述提取该目标表名文本行所包括的操作表时间信息以及完整表名信息的步骤,包括:
4.根据权利要求1所述的方法,其特征在于,针对每个目标表名文本行,所述对该目标表名文本行所对应的实际操作类型进行识别的步骤,包括:
5.根据权利要求1所述的方法,其特征在于,针对每个目标表名文本行,所述根据识别出的所述实际操作类型,在所述待分析文本文件中按照所述表项连续行数提取与该目标表名文本行对应的目标操作表项文本行的步骤,包括:
6.根据权利要求1所述的方法,其特征在于,所述将所述目标操作表项文本行与所述操作表项关键字进行字符串匹配的步骤,包括:
7.根据权利要求1-6中任意一项所述的方法,其特征在于,所述提取所述目标操作表项文本行所包括的所有操作表项内容的步骤,包括:
8
9.一种计算机设备,其特征在于,包括处理器和存储器,所述存储器存储有可被所述处理器执行的计算机程序,所述处理器可执行所述计算机程序,以实现权利要求1-7中任意一项所述的日志文件分析方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现权利要求1-7中任意一项所述的日志文件分析方法。
...【技术特征摘要】
1.一种日志文件分析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述在所述待分析文本文件中确定与所述表名关键字匹配的所有目标表名文本行的步骤,包括:
3.根据权利要求1所述的方法,其特征在于,针对每个目标表名文本行,所述提取该目标表名文本行所包括的操作表时间信息以及完整表名信息的步骤,包括:
4.根据权利要求1所述的方法,其特征在于,针对每个目标表名文本行,所述对该目标表名文本行所对应的实际操作类型进行识别的步骤,包括:
5.根据权利要求1所述的方法,其特征在于,针对每个目标表名文本行,所述根据识别出的所述实际操作类型,在所述待分析文本文件中按照所述表项连续行数提取与该目标表名文本行对应的目标操作表项文本行的步骤...
【专利技术属性】
技术研发人员:龙涛,朱海辉,雷建平,
申请(专利权)人:成都康特电子科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。