一种防止数据库索引错乱的方法、系统、装置及存储介质制造方法及图纸

技术编号:18525935 阅读:51 留言:0更新日期:2018-07-25 12:45
本发明专利技术涉及一种防止数据库索引错乱的方法、系统、装置及存储介质。本发明专利技术的方法包括:获取sql文件,并记录所述sql文件中的慢查询;判断索引管理系统中是否存在对应于所述慢查询的记录;若存在,则将所述慢查询记录在数据库中;否则,将所述慢查询的解释结果与最优解释结果进行比较,判断异常并且发出告警。

【技术实现步骤摘要】
一种防止数据库索引错乱的方法、系统、装置及存储介质
本专利技术涉及计算机网络
,尤其涉及一种防止数据库索引错乱的方法、系统、装置及存储介质。
技术介绍
数据库要是长久没有进行整理,则可能会出现索引错乱,进而导致数据库压力突然急剧加大。并且由于这种的情况比较生僻,大多数情况不能马上定位异常的位置,从而会在定位上耽误较长时间,严重影响线上系统的性能。但是,目前并没有这种自动发现索引错乱,并进行告警或自行处理的方法。大多情况下是应用系统变慢或不可用时,将状况反馈给dba(数据库管理员),dba经过一些列的排查,才可能定位到异常的位置。这不仅不能及时发现问题进行告警或自行处理,还不能进行大规模的管理。
技术实现思路
有鉴于此,本专利技术提供一种防止数据库索引错乱的方法、系统、装置及存储介质,能够自动判断出异常并且发出告警,进而解决了不能及时发现问题、定位到异常的位置以及告警的问题。为实现上述目的,根据本专利技术的一个方面,提供了一种防止数据库索引错乱的方法。本专利技术的方法包括:获取sql文件,并记录所述sql文件中的慢查询;判断索引管理系统中是否存在对应于所述慢查询的记录;若不存在,则将所述慢查询记录在数据库中;否则,将所述慢查询的解释结果与最优解释结果进行比较,判断异常并且发出告警。可选地,本专利技术的方法还包括:对所述慢查询进行语法分析和抽取主干处理;根据抽取主干处理后的慢查询,判断索引管理系统中是否存在对应于所述慢查询的记录。可选地,本专利技术的方法还包括:将结构化查询语句和所述结构化查询语句的解释结果进行录入到索引管理系统;对所述结构化查询语句进行语法分析和抽取主干处理;将所述结构化查询语句的解释结果加入到索引管理系统对应的记录中;并且调整所述结构化查询语句,将调整后的结构化查询语句的最优解释结果保存到索引管理系统。可选地,本专利技术的方法还包括:设置读取sql文件的间隔时间,经过所述间隔时间后,自动读取sql文件并记录所述sql文件中的慢查询。可选地,本专利技术的方法还包括:根据异常判断结果,运行自动处理命令,删除与所述慢查询有关的所有线程。可选地,本专利技术的方法还包括:运行命令showprocesslist,查看各个线程的状态;找出与所述慢查询有关的所有线程;循环执行kill线程id命令,以删除与所述慢查询有关的所有线程。根据本专利技术的另一方面,提供了一种防止数据库索引错乱的系统。本专利技术的系统包括:记录模块,用于获取sql文件,并记录所述sql文件中的慢查询;分析和告警模块,用于判断索引管理模块中是否存在对应于所述慢查询的记录;若不存在,则将所述慢查询记录在数据库中;否则,将所述慢查询的解释结果与最优解释结果进行比较,判断异常并且发出告警。索引管理模块,用于存储和管理与慢查询相关的记录。可选地,分析模块和告警还用于:对所述慢查询进行语法分析和抽取主干处理;根据抽取主干处理后的慢查询,判断是否有对应于所述慢查询的记录。可选地,所述索引管理模块包括:录入单元,用于将结构化查询语句和所述结构化查询语句的解释结果进行录入;处理单元,用于对所述结构化查询语句进行语法分析和抽取主干处理;并且将所述结构化查询语句的解释结果加入到对应的记录中;最优解释结果获取单元,用于调整所述结构化查询语句,将调整后的结构化查询语句的最优解释结果进行保存。可选地,本专利技术的系统还包括设置模块,用于设置记录模块读取sql文件的间隔时间,经过所述间隔时间后,记录模块自动读取sql文件并记录所述sql文件中的慢查询。可选地,本专利技术的系统还包括自动处理模块,用于根据异常判断结果,运行自动处理命令,删除与所述慢查询有关的所有线程。可选地,自动处理模块还用于运行命令showprocesslist,查看各个线程的状态;找出与所述慢查询有关的所有线程;循环执行kill线程id命令,以删除所述慢查询有关的所有线程。根据本专利技术的另一方面,提供了一种防止数据库索引错乱的装置。本专利技术的装置包括至少一个处理器;以及与所述至少一个处理器通讯连接的存储器;其中,所述存储器存储被所述一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述防止数据库索引错乱的方法中的任一项方法。根据本专利技术的另一方面,提供了一种防止数据库索引错乱的非暂态计算机可读存储介质。本专利技术的非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述防止数据库索引错乱的方法中的任一项方法。根据本专利技术的技术方案,通过将获取的sql文件中的慢查询(慢sql)进行记录,通过判断索引管理系统中是否存在对应的记录,若不存在,将慢查询的解释结果与最优解释结果进行比较,判断异常并且发出告警。本技术方案可通过自动记录慢查询,进而可以对大规模mysql中异常sql进行自动统一监控,及时发现问题,并且通过将慢查询与索引管理系统中的记录比较判断,可将定位出异常sql的异常的位置,并且发出告警。从而,有效的解决了不能及时发现问题,以及不能定位到异常的位置、不能告警的问题。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的一种防止数据库索引错乱的方法主要步骤的示意图;图2是根据本专利技术实施例的一种防止数据库索引错乱的系统主要模块的示意图;图3是根据本专利技术实施例的一种防止数据库索引错乱的装置的示意图;图4是根据本专利技术实施例的一种防止数据库索引错乱的装置的硬件结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。图1是根据本专利技术实施例的一种防止数据库索引错乱的方法主要步骤的示意图。如图1所示,本专利技术实施例的一种防止数据库索引错乱的方法的主要步骤包括:S11:获取sql文件,并记录sql文件中的慢查询。将相应软件部署到相应的mysql服务器上,获取sql文件,并设置读取sql文件的间隔时间(例如2秒),没经过间隔时间后,自动打开sql文件,从上回读取的位置开始读取该sql文件。在读取过程中将那些执行超过一定时间(例如1秒)的慢查询(慢sql)记录下来。S12:判断索引管理系统中是否存在对应于慢查询的记录。从数据去中提取步骤S11中记录下来的慢查询,对慢查询进行语法分析和抽取主干处理,根据抽取主干处理后的慢查询,判断索引管理系统中是否存在对应于所述慢查询的记录。S13:若不存在,将慢查询记录在数据库中,通知dba或开发人员进行优化。优化后,将最佳索引也添加到数据库中。S14:若存在,将慢查询的解释结果与最优解释结果进行比较,判断异常并且发出告警。在此之前,dba或开发人员将结构化查询语句和结构化查询语句的解释(explain)结果进行录入到索引管理系统;对结构化查询语句进行语法分析和抽取主干处理;将结构化查询语句的解释结果加入到索引管理系统中对应的记录中;并且调整结构化查询语句,将调整后的结构化查询语句的最优解释结果进行保存到本文档来自技高网...

【技术保护点】
1.一种防止数据库索引错乱的方法,其特征在于,包括:获取sql文件,并记录所述sql文件中的慢查询;判断索引管理系统中是否存在对应于所述慢查询的记录;若不存在,则将所述慢查询记录在数据库中;否则,将所述慢查询的解释结果与最优解释结果进行比较,判断异常并且发出告警。

【技术特征摘要】
1.一种防止数据库索引错乱的方法,其特征在于,包括:获取sql文件,并记录所述sql文件中的慢查询;判断索引管理系统中是否存在对应于所述慢查询的记录;若不存在,则将所述慢查询记录在数据库中;否则,将所述慢查询的解释结果与最优解释结果进行比较,判断异常并且发出告警。2.根据权利要求1所述的方法,其特征在于,还包括:对所述慢查询进行语法分析和抽取主干处理;根据抽取主干处理后的慢查询,判断索引管理系统中是否存在对应于所述慢查询的记录。3.根据权利要求1所述的方法,其特征在于,还包括:将结构化查询语句和所述结构化查询语句的解释结果进行录入到索引管理系统;对所述结构化查询语句进行语法分析和抽取主干处理;将所述结构化查询语句的解释结果加入到索引管理系统中对应的记录中;并且调整所述结构化查询语句,将调整后的结构化查询语句的最优解释结果保存到索引管理系统。4.根据权利要求1所述的方法,其特征在于,还包括:设置读取sql文件的间隔时间,经过所述间隔时间后,自动读取sql文件并记录所述sql文件中的慢查询。5.根据权利要求1所述的方法,其特征在于,还包括:根据异常判断结果,运行自动处理命令,删除与所述慢查询有关的所有线程。6.根据权利要求5所述的方法,其特征在于,还包括:运行命令showprocesslist,查看各个线程的状态;找出与所述慢查询有关的所有线程;循环执行kill线程id命令,以删除与所述慢查询有关的所有线程。7.一种防止数据库索引错乱的系统,其特征在于,包括:记录模块,用于获取sql文件,并记录所述sql文件中的慢查询;分析和告警模块,用于判断索引管理模块中是否存在对应于所述慢查询的记录;若不存在,则将所述慢查询记录在数据库中;否则,将所述慢查询的解释结果与最优解释结果进行比较,判断异常并且发出告警;索引...

【专利技术属性】
技术研发人员:李清森
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1