数据库阻塞的自动化疏通方法、装置、设备及存储介质与流程

文档序号:35967310发布日期:2023-11-09 07:35阅读:27来源:国知局
数据库阻塞的自动化疏通方法、装置、设备及存储介质与流程

本发明涉及数据库及医疗健康,尤其涉及线上医疗问诊的数据高调用、订单高并发的场景时的一种数据库阻塞的自动化疏通方法、装置、设备及计算机可读存储介质。


背景技术:

1、随着信息化技术的发展,各行各业都朝着企业信息化方向建设,并取得巨大成功,例如医疗健康领域随着医疗健康数据增多,医疗大数据智能问诊越来越准确。其中,数据库是企业信息化建设的重要组成部分,但在数据库的运行过程中,由于sql语句阻塞等原因,可能会导致数据库的不稳定甚至崩溃,给行业带来严重的损失。

2、目前针对数据库阻塞问题一般通过人工与智能结合的方式进行,监控工具智能检测数据库性能,并生成报警,人工负责处理报警。但由于人工处理具有延后性,这使得故障梳理效率较低,而且一旦一个很小的故障不及时处理就可能对数据库的运行效率造成影响,例如在线上问诊场景中,一旦出现流行性疾病,线上问诊单会急剧增加,数据库的稳定性及可靠性对于患者身体健康非常重要。


技术实现思路

1、本发明提供一种数据库阻塞的自动化疏通方法、装置、设备及存储介质,其主要目的在于自动化监控并处理数据库阻塞问题,保证线上医疗问诊订单高并发的场景中,仍能保持数据库的稳定性及可靠性。

2、为实现上述目的,本发明提供的一种数据库阻塞的自动化疏通方法,包括:

3、扫描预构建的系统数据库的开放端口得到所述系统数据库正在执行的线程数量;

4、根据预设的防毛刺策略、预设阈值及所述线程数量,判断所述系统数据库是否需要报警;

5、当所述系统数据库需要报警时,查询所述系统数据库的日志文件,得到所述系统数据库正在执行的sql查询语句;

6、根据所述开放端口,扫描得到所述系统数据库当前的阻塞sql队列,并对所述阻塞sql队列中的各个阻塞sql进行回滚疏通操作,直至所述阻塞sql队列中为空值;

7、查询所述sql查询语句的实时线程数量,并根据所述实时线程数量及所述预设阈值,判断将所述sql查询语句进行报警处理,或是将所述sql查询语句及所述回滚疏通操作的信息记录至预构建的自动修复日志中。

8、可选的,所述根据所述实时线程数量及所述预设阈值,判断将所述sql查询语句进行报警处理,或是将所述sql查询语句及所述回滚疏通操作的信息记录至预构建的自动修复日志中,包括:

9、根据预设时间间隔对所述sql查询语句的实时线程数量进行预设次数的监控;

10、当各个监控结果的实时线程数量均小于所述预设数值时,将所述sql查询语句及所述回滚疏通操作的信息记录至预构建的自动修复日志中;

11、当各个监控结果的实时线程数量至少一次出现大于或等于所述预设数值时,根据预设的报警渠道,对所述sql查询语句进行报警处理。

12、可选的,所述根据预设的防毛刺策略、预设阈值及所述线程数量,判断所述系统数据库是否需要报警,包括:

13、根据所述防毛刺策略,当所述线程数量大于预设阈值时,根据预设的时间间隔进行再次检测所述线程数量;

14、判断再次检测到的线程数量是否大于所述预设阈值;

15、当再次检测到的线程数量小于或等于所述预设阈值时,判定所述系统数据库不需要报警,并返回所述扫描预构建的系统数据库的开放端口得到所述系统数据库正在执行的线程数量的操作,继续对所述系统数据库进行线程监控;

16、当再次检测到的线程数量大于所述预设阈值时,判定所述系统数据库需要报警。

17、可选的,所述对所述阻塞sql队列中的各个阻塞sql进行回滚疏通操作,包括:

18、根据所述开放端口查询,查询所述系统数据库是否存在元数据锁,是否存在长事物;

19、当所述系统数据库中不存在所述元数据锁或所述长事物时,利用数据库管理工具获取所述阻塞sql队列中各个阻塞sql对应的进程-会话信息;

20、根据各个所述进程-会话信息,对各个所述阻塞sql进行回滚操作。

21、可选的,所述将所述sql查询语句及所述回滚疏通操作的信息记录至预构建的自动修复日志中之后,所述方法还包括:

22、对所述sql查询语句及所述回滚疏通操作的信息进行可视化操作,得到系统修复视图。

23、为了解决上述问题,本发明还提供一种数据库阻塞的自动化疏通装置,所述装置包括:

24、线程监控模块,用于扫描预构建的系统数据库的开放端口得到所述系统数据库正在执行的线程数量,及根据预设的防毛刺策略、预设阈值及所述线程数量,判断所述系统数据库是否需要报警;

25、报警模块,用于当所述系统数据库需要报警时,查询所述系统数据库的日志文件,得到所述系统数据库正在执行的sql查询语句;

26、阻塞自动疏通模块,用于根据所述开放端口,扫描得到所述系统数据库当前的阻塞sql队列,并对所述阻塞sql队列中的各个阻塞sql进行回滚疏通操作,直至所述阻塞sql队列中为空值,及查询所述sql查询语句的实时线程数量,并根据所述实时线程数量及所述预设阈值,判断将所述sql查询语句进行报警处理,或是将所述sql查询语句及所述回滚疏通操作的信息记录至预构建的自动修复日志中。

27、可选的,所述根据所述实时线程数量及所述预设阈值,判断将所述sql查询语句进行报警处理,或是将所述sql查询语句及所述回滚疏通操作的信息记录至预构建的自动修复日志中,包括:

28、根据预设时间间隔对所述sql查询语句的实时线程数量进行预设次数的监控;

29、当各个监控结果的实时线程数量均小于所述预设数值时,将所述sql查询语句及所述回滚疏通操作的信息记录至预构建的自动修复日志中;

30、当各个监控结果的实时线程数量至少一次出现大于或等于所述预设数值时,根据预设的报警渠道,对所述sql查询语句进行报警处理。

31、可选的,所述根据预设的防毛刺策略、预设阈值及所述线程数量,判断所述系统数据库是否需要报警,包括:

32、根据所述防毛刺策略,当所述线程数量大于预设阈值时,根据预设的时间间隔进行再次检测所述线程数量;

33、判断再次检测到的线程数量是否大于所述预设阈值;

34、当再次检测到的线程数量小于或等于所述预设阈值时,判定所述系统数据库不需要报警,并返回所述扫描预构建的系统数据库的开放端口得到所述系统数据库正在执行的线程数量的操作,继续对所述系统数据库进行线程监控;

35、当再次检测到的线程数量大于所述预设阈值时,判定所述系统数据库需要报警。

36、为了解决上述问题,本发明还提供一种电子设备,所述电子设备包括:

37、至少一个处理器;以及,

38、与所述至少一个处理器通信连接的存储器;其中,

39、所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述所述的数据库阻塞的自动化疏通方法。

40、为了解决上述问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个计算机程序,所述至少一个计算机程序被电子设备中的处理器执行以实现上述所述的数据库阻塞的自动化疏通方法。

41、本发明实施例首先通过系统数据库得开放端口进行本机扫描,获取正在执行得线程数量,当线程数量大于预设阈值时,表明需要报警,其中,所述预设阈值是可能引起数据库不可用或故障切换前的一个预判阈值,到到达该值后,程序会进行自动分析可能存在的风险;然后本发明实施例开始进行定位此时正在执行的sql查询语句及所述系统数据库当前的阻塞sql队列,并对阻塞sql队列进行回滚操作,其中,所述回滚操作是指将事务中已经执行的操作撤销,并将数据库恢复到事务开始之前的状态,本发明可以将阻塞sql队列中一直处于资源请求状态而无法正常执行的阻塞sql进行回滚,撤销他们占用的线程,从而实现将所述sql查询语句的实时线程数量降下来,增加数据库稳定性,若所述实时线程数量降不下来,表明所述sql查询语句有问题,需要进行报警处理。因此,本发明实施例提供的一种数据库阻塞的自动化疏通方法、装置、设备及存储介质,能够自动化监控并处理数据库阻塞问题,保证线上医疗问诊订单高并发的场景中,仍能保持数据库的稳定性及可靠性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1