数据库故障定位方法、装置、电子设备及存储介质与流程
- 国知局
- 2024-09-11 14:30:37
本技术涉及计算机,具体而言,本技术涉及一种数据库故障定位方法、装置、电子设备及存储介质。
背景技术:
1、数据库的通用日志功能,可以对针对目标数据库的所有操作语句进行记录,包括对表增、删、改、查等操作,以及服务器端和客户端的操作信息,比如连接、断开连接、查询、错误等,同时还会记录数据库运行过程中表结构变化、参数变化、配置变化、等信息。通过查看通用日志,可以帮助开发人员理解数据库的运行情况,提高代码效率,以及排查出现的错误。
2、但现有技术的方案中,在排查数据库的故障时,往往需要将数据库搭建在目标应用系统上运行,然后通过通用日志功能获取目标应用上针对数据库的操作语句,并结合目标应用系统的具体细节对操作语句逐一进行分析,进而定位出数据库的故障。但这种方式首先需要搭建目标应用系统,需要消耗搭建目标应用系统时的成本,同时排查人员需要对目标应用系统的具体细节预先进行深入的了解,也会消耗相当一部分的人力资源成本,且效率较低。
技术实现思路
1、本技术的目的旨在至少能解决上述的技术缺陷之一,本技术实施例所提供的技术方案如下:
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、备份获取模块,用于确定处于第一目标时刻之前且存在目标数据库备份版本的第二目标时刻,并获取第二目标时刻对应的目标数据库备份版本;
32、日志文件获取模块,用于获取第二目标时刻至第一目标时刻之间关于目标数据库的日志文件;日志文件通过目标数据库的通用日志记录功能记录;
33、故障定位模块,用于对日志文件进行解析,得到至少一条针对目标数据库的执行命令,并基于备份版本,回放执行命令中的至少一条,以对目标数据库的故障进行定位。
34、在本技术的一种可选实施例中,目标数据库备份版本是基于针对目标数据库进行修改操作、查询操作中的至少一种生成的备份版本。
35、在本技术的一种可选实施例中,故障定位模块具体用于:
36、获取每一执行命令对应的执行时间戳,并基于各执行命令的执行时间戳确定各执行命令的执行顺序;
37、基于执行顺序依次回放至少一条执行命令。
38、在本技术的一种可选实施例中,故障定位模块进一步用于:
39、获取每一执行命令对应的会话的标识信息;
40、对于每一执行命令,基于执行命令的标识信息将执行命令分配到对应的队列中;
41、故障定位模块还可以用于:
42、对于每一队列,基于队列中各执行命令对应的标识信息,从预设线程池中获取对应的第一线程;
43、将队列中各执行命令按照执行顺序放入第一线程中,以使第一线程回放至少一条执行命令。
44、在本技术的一种可选实施例中,该装置还包括线程管理模块,具体用于:
45、当任一会话的连接断开时,基于任一会话对应的标识信息,确定任一会话对应的第二线程;
46、将第二线程放入预设线程池中。
47、在本技术的一种可选实施例中,若各执行命令中包括目标执行命令;目标执行命令为针对目标数据库的配置参数变更;
48、故障定位模块还可以用于:
49、若回放至目标执行命令,则基于目标执行命令对目标数据库的配置参数进行变更,并重启目标数据库;
50、基于执行顺序回放目标执行命令的下一条执行命令。
51、在本技术的一种可选实施例中,该装置还包括回放速率管理模块,具体用于:
52、接收用户输入的速率参数;其中,速率参数用于控制对各执行命令的回放时间间隔;
53、若速率参数为第一参数,则当任一时间戳对应的各执行命令回放完成后,立即回放下一时间戳对应的各执行命令;
54、若速率参数为第二参数,则基于各时间戳之间的第一时间间隔,依次回放各执行命令;
55、若速率参数为第三参数,则基于各时间戳之间的实际时差和第三参数,确定第二时间间隔,并基于第二时间间隔和各时间戳,依次回放各执行命令。
56、第三方面,本技术实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序;
57、处理器执行计算机程序以实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
58、第四方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面实施例或第一方面任一可选实施例中所提供的方法。
59、本技术实施例提供的技术方案带来的有益效果是:
60、本技术提供的方案,通过获取已存储的目标数据库的备份,并获取数据库自带的通用日志功能获取目标时段内的日志文件,然后在备份上重放日志文件对应的针对目标数据库的操作,进而可以根据回放定位目标数据库发生故障的原因。由于本方案可以直接获取数据库的备份并在备份上回放日志文件,无需预先搭建应用系统,能节约该部分成本,且故障分析人员也无需对系统结构进行了解,通过观察回放过程即可完成故障的定位,也节省了人力资源,提高了效率。
本文地址:https://www.jishuxx.com/zhuanli/20240911/291163.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表