CN117194161A - 数据库异常处理方法及装置、电子设备和存储介质 - Google Patents
数据库异常处理方法及装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN117194161A CN117194161A CN202311170362.0A CN202311170362A CN117194161A CN 117194161 A CN117194161 A CN 117194161A CN 202311170362 A CN202311170362 A CN 202311170362A CN 117194161 A CN117194161 A CN 117194161A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- detection algorithm
- session
- database instance
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000001514 detection method Methods 0.000 claims abstract description 212
- 230000002159 abnormal effect Effects 0.000 claims abstract description 104
- 230000005856 abnormality Effects 0.000 claims abstract description 81
- 238000012545 processing Methods 0.000 claims abstract description 53
- 238000012098 association analyses Methods 0.000 claims abstract description 37
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 238000004458 analytical method Methods 0.000 claims description 29
- 230000015654 memory Effects 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 19
- 230000000694 effects Effects 0.000 claims description 14
- 230000002045 lasting effect Effects 0.000 claims description 8
- 238000010219 correlation analysis Methods 0.000 claims description 4
- 239000000523 sample Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 18
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013450 outlier detection Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种数据库异常处理方法及装置、电子设备和存储介质,可以应用于大数据技术领域、计算机异常检测技术领域、数据库操作技术领域。该数据库异常处理方法包括:从监控数据库中获取在目标检测周期的目标时间段内,针对目标数据库实例的待检测指标数据;调用预定检测算法对待检测指标数据进行异常识别,以生成针对目标数据库实例的异常识别结果;在异常识别结果为异常的情况下,获取在目标时间段内针对目标数据库实例的目标操作会话数据;将异常识别结果和目标操作会话数据进行关联分析处理,以生成针对目标数据库实例的关联分析结果。
Description
技术领域
本公开涉及大数据技术领域、计算机异常检测技术领域、数据库操作技术领域,具体地涉及一种数据库异常处理方法、装置、设备、介质和程序产品。
背景技术
数据库作为业务应用的底层基础,其运行的稳定性非常重要。为确保及时发现异常或异常时够及时处理,一般会搭建数据库的监控系统,对其运行状态监控和告警。
在实现本公开构思的过程中,发明人发现相关技术中至少存在如下问题:现有数据库指标异常检测方法由于算法不合理通常存在较多的异常误报的情况,另外,现有的方法中,对于异常原因分析也多是仅基于指标数据的异常程度进行分析,无法给出合理的故障原因。
发明内容
鉴于上述问题,本公开提供了一种数据库异常处理方法、装置、设备、介质和程序产品。
本公开的一个方面,提供了一种数据库异常处理方法,包括:
从监控数据库中获取在目标检测周期的目标时间段内,针对目标数据库实例的待检测指标数据;
调用预定检测算法对待检测指标数据进行异常识别,以生成针对目标数据库实例的异常识别结果;
在异常识别结果为异常的情况下,获取在目标时间段内针对目标数据库实例的目标操作会话数据;
将异常识别结果和目标操作会话数据进行关联分析处理,以生成针对目标数据库实例的关联分析结果。
根据本公开的实施例,其中,获取在目标时间段内针对目标数据库实例的目标操作会话数据包括:
在目标数据库实例的执行过程中,调用定时任务将与目标数据库实例关联的原始操作会话数据缓存至第一存储区;
在异常识别结果为异常的情况下,以目标时间段和目标数据库实例的实例标识作为查询字段,从第一存储区查询目标操作会话数据,并将目标操作会话数据持久化存储至第二存储区。
根据本公开的实施例,还包括:
将原始操作会话数据在第一存储区中存储预定时长后,将原始操作会话数据从第一存储区中删除。
根据本公开的实施例,其中:
目标操作会话数据包括以下至少之一:会话总数、活跃会话连接数量、活跃会话中临时表的数量、非活跃会话连接数量、未提交事务数量、等待状态会话数量、等待状态会话中锁等待数量、会话执行时长。
根据本公开的实施例,其中,将异常识别结果和目标操作会话数据进行关联分析处理包括:
基于目标操作会话数据生成会话异常分析结果;
在会话异常分析结果为正常的情况下,生成第一关联分析结果;
在会话异常分析结果为异常的情况下,生成第二关联分析结果。
根据本公开的实施例,其中:
预定检测算法包括以下至少之一:突升突降检测算法、固定阈值检测算法、基线检测算法。
根据本公开的实施例,其中,调用预定检测算法对待检测指标数据进行异常识别包括:
获取预定检测算法的阈值判别参数;
基于阈值判别参数对待检测指标数据进行异常识别。
根据本公开的实施例,其中,在预定检测算法包括基线检测算法的情况下,获取基线检测算法的阈值判别参数包括:
基于目标时间段确定参考时间段;
针对多个历史检测周期,获取在各个历史检测周期的参考时间段内,针对目标数据库实例的历史检测指标数据;
根据与多个历史检测周期对应的多组历史检测指标数据,计算基线检测算法的阈值判别参数。
根据本公开的实施例,其中,计算基线检测算法的阈值判别参数包括:
计算多组历史检测指标数据的目标均值和目标标准差;
根据目标均值和目标标准差,计算得到基线检测算法的上限判别参数和下限判别参数。
根据本公开的实施例,其中,基于阈值判别参数对待检测指标数据进行异常识别包括:
确定目标数据库实例的数据波动特性;
在数据波动特性为第一预定特性类型的情况下,以突升突降检测算法的异常识别结果作为主要参考结果,以固定阈值检测算法和基线检测算法的异常识别结果作为辅助参考结果;
基于主要参考结果和辅助参考结果,生成待检测指标数据的异常识别结果。
根据本公开的实施例,其中,基于阈值判别参数对待检测指标数据进行异常识别包括:
确定目标数据库实例的数据波动特性;
在数据波动特性为第二预定特性类型的情况下,以基线检测算法的异常识别结果作为主要参考结果,以突升突降检测算法和固定阈值检测算法的异常识别结果作为辅助参考结果;
基于主要参考结果和辅助参考结果,生成待检测指标数据的异常识别结果。
根据本公开的实施例,还包括:
在从监控数据库中未获取到待检测指标数据的情况下,对目标数据库实例进行探活处理。
根据本公开的实施例,其中,对目标数据库实例进行探活处理包括:
检测与目标数据库实例关联的数据库主机的连通性;或者
检测目标数据库实例对外提供数据操作服务的服务端口的可用性;或者
检测目标数据库实例的可操作性。
根据本公开的实施例,其中:
待检测指标数据包括以下至少之一:CPU指标、系统内存指标、系统硬件存储指标、连接性能指标、请求处理性能指标。
本公开的另一个方面提供了一种数据库异常处理装置,包括:
第一获取模块,用于从监控数据库中获取在目标检测周期的目标时间段内,针对目标数据库实例的待检测指标数据;
异常识别模块,用于调用预定检测算法对待检测指标数据进行异常识别,以生成针对目标数据库实例的异常识别结果;
第二获取模块,用于在异常识别结果为异常的情况下,获取在目标时间段内针对目标数据库实例的目标操作会话数据;
关联处理模块,用于将异常识别结果和目标操作会话数据进行关联分析处理,以生成针对目标数据库实例的关联分析结果。
根据本公开的实施例,其中,第二获取模块包括:
缓存子模块,用于在目标数据库实例的执行过程中,调用定时任务将与目标数据库实例关联的原始操作会话数据缓存至第一存储区;
查询子模块,用于在异常识别结果为异常的情况下,以目标时间段和目标数据库实例的实例标识作为查询字段,从第一存储区查询目标操作会话数据,并将目标操作会话数据持久化存储至第二存储区。
根据本公开的实施例,第二获取模块还包括:
删除子模块,用于将原始操作会话数据在第一存储区中存储预定时长后,将原始操作会话数据从第一存储区中删除。
根据本公开的实施例,其中:
目标操作会话数据包括以下至少之一:会话总数、活跃会话连接数量、活跃会话中临时表的数量、非活跃会话连接数量、未提交事务数量、等待状态会话数量、等待状态会话中锁等待数量、会话执行时长。
根据本公开的实施例,其中,关联处理模块包括:
第一生成子模块,用于基于目标操作会话数据生成会话异常分析结果;
第二生成子模块,用于在会话异常分析结果为正常的情况下,生成第一关联分析结果;
第三生成子模块,用于在会话异常分析结果为异常的情况下,生成第二关联分析结果。
根据本公开的实施例,其中:
预定检测算法包括以下至少之一:突升突降检测算法、固定阈值检测算法、基线检测算法。
根据本公开的实施例,其中,异常识别模块包括:
获取子模块,用于获取预定检测算法的阈值判别参数;
异常识别子模块,基于阈值判别参数对待检测指标数据进行异常识别。
根据本公开的实施例,其中,获取子模块包括:
第一确定单元,用于基于目标时间段确定参考时间段;
获取单元,用于针对多个历史检测周期,获取在各个历史检测周期的参考时间段内,针对目标数据库实例的历史检测指标数据;
计算单元,用于根据与多个历史检测周期对应的多组历史检测指标数据,计算基线检测算法的阈值判别参数。
根据本公开的实施例,其中,计算单元包括:
第一计算子单元,用于计算多组历史检测指标数据的目标均值和目标标准差;
第二计算子单元,用于根据目标均值和目标标准差,计算得到基线检测算法的上限判别参数和下限判别参数。
根据本公开的实施例,其中,异常识别子模块包括:
第二确定单元,用于确定目标数据库实例的数据波动特性;
第一结果确定单元,用于在数据波动特性为第一预定特性类型的情况下,以突升突降检测算法的异常识别结果作为主要参考结果,以固定阈值检测算法和基线检测算法的异常识别结果作为辅助参考结果;
第一结果生成单元,用于基于主要参考结果和辅助参考结果,生成待检测指标数据的异常识别结果。
根据本公开的实施例,其中,异常识别子模块包括:
第三确定单元,用于确定目标数据库实例的数据波动特性;
第二结果确定单元,用于在数据波动特性为第二预定特性类型的情况下,以基线检测算法的异常识别结果作为主要参考结果,以突升突降检测算法和固定阈值检测算法的异常识别结果作为辅助参考结果;
第二结果生成单元,用于基于主要参考结果和辅助参考结果,生成待检测指标数据的异常识别结果。
根据本公开的实施例,上述装置还包括:
探活模块,用于在从监控数据库中未获取到待检测指标数据的情况下,对目标数据库实例进行探活处理。
根据本公开的实施例,其中,探活模块包括:
第一检测单元,用于检测与目标数据库实例关联的数据库主机的连通性;或者
第二检测单元,用于检测目标数据库实例对外提供数据操作服务的服务端口的可用性;或者
第三检测单元,用于检测目标数据库实例的可操作性。
根据本公开的实施例,其中:
待检测指标数据包括以下至少之一:CPU指标、系统内存指标、系统硬件存储指标、连接性能指标、请求处理性能指标。
本公开的另一个方面提供了一种电子设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得一个或多个处理器执行上述数据库异常处理方法。
本公开的另一个方面还提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行上述数据库异常处理方法。
本公开的另一个方面还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述数据库异常处理方法。
根据本公开的实施例,本公开实施例的上述方法中,通过调用预定检测算法对待检测指标数据进行异常识别,生成针对目标数据库实例的异常识别结果,当指标数据异常时,进一步地关联到针对异常时刻的目标操作会话数据以作分析处理,因会话操作数据包含了会话的上下文信息、连接信息、执行状态等数据库事务操作的全面信息,可通过结合会话信息给出较为准确的合理的故障原因,为数据库故障定位提供较为可靠的参考基础。解决了相关技术中对数据库故障定位分析不准确的技术问题,提高了数据库异常处理的精度,提高了数据库运行的可靠度。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述内容以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的数据库异常处理方法、装置、设备、介质和程序产品的应用场景图;
图2示意性示出了根据本公开实施例的数据库异常处理方法的流程图;
图3示意性示出了根据本公开实施例的数据库异常处理方法的系统原理图;
图4示意性示出了根据本公开实施例的对待检测指标数据进行异常识别的方法原理图;
图5示意性示出了根据本公开实施例的确定基线检测算法的阈值判别参数的方法原理图;
图6示意性示出了根据本公开实施例的异常会话关联分析处理的方法原理图;
图7示意性示出了根据本公开实施例的数据库异常处理装置的结构框图;以及
图8示意性示出了根据本公开实施例的适于实现数据库异常处理方法的电子设备的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
在本公开的实施例中,所涉及的数据(例如,包括但不限于用户个人信息)的收集、更新、分析、处理、使用、传输、提供、公开、存储等方面,均符合相关法律法规的规定,被用于合法的用途,且不违背公序良俗。特别地,对用户个人信息采取了必要措施,防止对用户个人信息数据的非法访问,维护用户个人信息安全、网络安全和国家安全。
在本公开的实施例中,在获取或采集用户个人信息之前,均获取了用户的授权或同意。
本公开的实施例提供了一种数据库异常处理方法,包括:
从监控数据库中获取在目标检测周期的目标时间段内,针对目标数据库实例的待检测指标数据;调用预定检测算法对待检测指标数据进行异常识别,以生成针对目标数据库实例的异常识别结果;在异常识别结果为异常的情况下,获取在目标时间段内针对目标数据库实例的目标操作会话数据;将异常识别结果和目标操作会话数据进行关联分析处理,以生成针对目标数据库实例的关联分析结果。
图1示意性示出了根据本公开实施例的数据库异常处理方法、装置、设备、介质和程序产品的应用场景图。
如图1所示,根据该实施例的应用场景100可以包括终端设备101、服务器102和数据库103。终端设备101、服务器102和数据库103之间可通过网络进行通信,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络与服务器102交互,以接收或发送消息等。终端设备101上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器102可以是提供各种服务的服务器,例如对用户利用终端设备101所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
数据库103与服务器102连接,用于服务器102对外提供服务的过程中,服务器102通过操作数据库103处理用户的各类请求,并对数据库进行增、删、改、查等各类数据库操作。
在本公开实施例的场景下,用户也可以通过终端设备101向服务器102发起对数据库103进行异常检测的请求,相应于用户请求,服务器102可通过执行本公开实施例的数据库异常处理方法,获取数据库实例有关的指标数据进行异常检测,并开通通过关联数据库103的会话信息进行异常分析,生成分析结果后通过终端设备101向用户返回。
需要说明的是,本公开实施例所提供的数据库异常处理方法一般可以由服务器102执行。相应地,本公开实施例所提供的数据库异常处理装置一般可以设置于服务器102中。本公开实施例所提供的数据库异常处理方法也可以由不同于服务器102且能够与终端设备101和/或服务器102通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据库异常处理装置也可以设置于不同于服务器102且能够与终端设备101和/或服务器102通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以下将基于图1描述的场景,通过图2~图8对公开实施例的数据库异常处理方法进行详细描述。
图2示意性示出了根据本公开实施例的数据库异常处理方法的流程图。
如图2所示,该实施例的数据库异常处理方法包括操作S201~操作S204。
在操作S201,从监控数据库中获取在目标检测周期的目标时间段内,针对目标数据库实例的待检测指标数据。
其中,数据库实例指在数据库管理系统中正在运行的一个数据库副本,可以作为一个独立的数据库环境,包含了数据、内存缓存、进程和其他必要的资源,用于处理用户的查询和事务操作。
监控数据库中存储有针对多个数据库实例的指标数据,检测周期的长短是预设的任意值,例如可每小时检测一次、每天检测一次、每周检测一次、每个月检测一次等等。目标检测周期可以是当前的检测周期,目标检测周期的目标时间段可以是当前的检测周期的当前时间段。针对目标数据库实例的待检测指标数据可以是针对当前的检测周期的当前时间段的指标数据。例如,以天为检测周期时,待检测指标数据可以是当天的早9点时刻针对目标数据库实例(可以是待检测的任一个数据库实例)的指标数据。
具体地,待检测指标数据指收集到的实时或定期采样的数据,用于监测和评估数据库系统运行状态、性能和行为。待检测指标数据待检测指标数据包括以下至少之一:CPU指标、系统内存指标、系统硬件存储指标、连接性能指标、请求处理性能指标。
具体地,CPU指标是用于衡量数据库计算机中CPU(中央处理器)性能和使用情况的度量标准。提供了关于CPU资源利用率、处理能力和效率的信息。监测和分析CPU指标,可以了解CPU的工作负载、性能瓶颈和资源使用情况,从而优化系统的配置和管理,确保CPU的正常运行并提供良好的计算能力,具体可以是CPU的使用率。
系统内存指标-MEM指标:(Memory)用于衡量数据库计算机系统中内存(随机访问存储器)性能和使用情况的度量标准。提供了关于内存资源利用率、容量和效率的信息。可以了解系统的内存使用情况、性能瓶颈和资源需求,从而优化系统的内存配置和管理,具体可以是内存使用率、内存大小等等。
包括以下至少之一:CPU指标、系统内存指标、-IOPS指标:(Input/OutputOperations Per Second)是衡量数据库存储系统性能的一种指标,表示存储系统每秒能够执行的输入/输出操作次数,较高的IOPS值表示存储系统具有更高的数据处理能力和响应速度,有助于提高系统的性能和效率。
连接性能指标-CONNECTD指标:表示数据库系统中当前活动的客户端连接数量。对于数据库系统的性能和资源利用较为重要,合理管理连接数可以确保系统的稳定性和性能,并提供良好的响应时间。
请求处理性能指标-QPS指标(Queries Per Second),指数据库系统每秒钟能够处理的查询请求数量。较高的QPS值表示数据库具有更高的查询处理能力,优化QPS可以提高数据库系统的性能和响应速度。
在操作S202,调用预定检测算法对待检测指标数据进行异常识别,以生成针对目标数据库实例的异常识别结果。预定检测算法可以是一种,也可以是多种检测算法的结合,用于根据待检测指标数据的数值大小识别出异常指标数据,在指标数据异常的情况下,可认为目标数据库实例存在异常。
在操作S203,在异常识别结果为异常的情况下,获取在目标时间段内针对目标数据库实例的目标操作会话数据。数据库实例的操作会话数据,指在数据库系统中每个会话的相关数据和状态信息,包含了会话的上下文信息、连接信息、执行状态等。
待检测指标数据是针对目标时刻的检测数据,当指标数据异常时,目标时刻即为异常时刻,因此,进一步地关联到针对异常时刻(目标时刻)的目标操作会话数据以作分析处理。
在操作S204,将异常识别结果和目标操作会话数据进行关联分析处理,以生成针对目标数据库实例的关联分析结果。
图3示意性示出了根据本公开实施例的数据库异常处理方法的系统原理图。
如图3所示,可应用本公开实施例的数据库异常处理方法系统架构包括:元数据配置中心、定时任务调度系统、指标异常识别系统、会话关联分析系统、异常记录存储中心、告警服务系统。
其中,元数据配置中心用于存储数据库服务中涉及的配置元数据,可采用mysql存储。元数据配置中心存储配置数据库实例信息(例如实例ID、实例名称、实例版本号、是否开启议程检测等设置信息)、检测的算法(例如预先配置可采用何种检测算法对数据库指标数据进行异常识别)、算法中的窗口大小、阈值等,上述配置信息可动态配置,每次调整后在下次检测周期中生效。
指标异常识别系统可用于执行上述操作S202,调用预定检测算法对待检测指标数据进行异常识别,以生成针对目标数据库实例的异常识别结果。
会话关联分析系统可用于执行上述操作S203和操作S204,获取在异常时间段(目标时间段)内针对目标数据库实例的目标操作会话数据,并将异常识别结果和目标操作会话数据进行关联分析处理,以生成针对目标数据库实例的关联分析结果,例如异常原因分析等等。
定时任务调度系统可用于调度定时任务,定时执行在每个检测周期内的指标数据异常识别任务,以及定时执行将异常识别结果和操作会话数据进行关联分析处理的关联分析任务。
异常记录存储中心用于存储异常数据库实例的异常信息,如异常状态、异常发生时间、异常原因、异常类型等等。在指标异常识别系统识别出异常数据库实例后,可将相应的异常信息,如异常状态、异常发生时间等发送至异常记录存储中心存储,在会话关联分析系统生成针对目标数据库实例的关联分析结果后,可将结果信息,如异常原因、异常类型等发送至异常记录存储中心存储。
告警服务系统用于针对异常数据库实例发出告警提示,将告警提示推送相关的运维人员、数据库实例用户,并生成告警事件等。
根据本公开的实施例,相关技术中针对数据库异常处理的方法中,对于异常原因分析多是仅基于指标数据的异常程度进行分析,无法给出合理的故障原因。本公开实施例的上述方法中,通过调用预定检测算法对待检测指标数据进行异常识别,生成针对目标数据库实例的异常识别结果,当指标数据异常时,进一步地关联到针对异常时刻的目标操作会话数据以作分析处理,因会话操作数据包含了会话的上下文信息、连接信息、执行状态等数据库事务操作的全面信息,可通过结合会话信息给出较为准确的合理的故障原因,为数据库故障定位提供较为可靠的参考基础。解决了相关技术中对数据库故障定位分析不准确的技术问题,提高了数据库异常处理的精度,提高了数据库运行的可靠度。
图4示意性示出了根据本公开实施例的对待检测指标数据进行异常识别的方法原理图。
如图4所示,在进行异常检测识别之前,先从监控数据库中获取针对待检测的目标数据库实例的待检测指标数据,当指标数据缺失,从监控数据库中未获取到待检测指标数据的情况下,对目标数据库实例进行探活处理。
其中,对目标数据库实例进行探活处理包括:检测与目标数据库实例关联的数据库主机的连通性-ping操作;或者检测目标数据库实例对外提供数据操作服务的服务端口的可用性-telnet操作;或者检测目标数据库实例的可操作性-select操作。
根据本公开的实施例,在数据库正常运行状态下,指标数据是可以获取得到的,若指标数据缺失,则数据库可能存在较为严重的运行问题,需要进行探活处理。
当ping操作结果异常时,数据库主机的连通性可能存在问题;telnet操作结果异常时,目标数据库实例对外提供数据操作服务的服务端口可能处于不可用状态,当select操作操作结果异常时,目标数据库实例的可操作性可能存在问题,例如无法执行正常的数据库查询操作。如果实例探活都正常,则可能是数据上报或存储链路存在异常,则记录指标数据上报或存储的异常,如果探活结果异常,记录实例不可用的异常结果。
根据本公开的实施例,如图4所示,进一步地,在读取实例的指标数据不为空的情况下,在利用监测算法进行异常识别之前,可对指标数据进行标准化预处理,保证后续使用时的连续完整。
具体地,可以进行空白插补、时间对齐等处理。
例如,由于可能存在个别时间点指标数据上报异常或缺失,结合其前后时间点指标数据,进行该点指标数据值的补齐,例如采用插值法进行补齐。
例如,由于不同指标的上报周期可能会存在不一致的情况,需根据设置的粒度,对指标数据值进行时间对齐处理,保证相同时间范围内的指标数据个数、时间间隔是一致的。如指标1每1分钟采集一次,指标2每30秒采集一次,指标3每20秒采集一次,时间不对齐,将这几个指标的数据全部对齐至每1分钟采集一次的时间粒度。
根据本公开的实施例,进一步地,预定检测算法包括以下至少之一:突升突降检测算法、固定阈值检测算法、基线检测算法。针对每组指标数据,可以采用上述其中一种算法进行异常识别,也可以将上述三种算法中的部分或全部组合进行异常识别。
根据本公开的实施例,相关技术中的数据库异常识别中,通采用的固定阈值的异常识别方法,在面对数据指标繁多的情况下,无法对每个实例的每条指标都设置合理的上下阈值,可能会造成大量误报;另外,监控指标的形态(如周期性、平稳性、趋势等),简单的固定阈值无法对全部形态种类奏效。通过不同的数据库指标检测组合,可减少异常识别的误判概率,提高准确性。
具体地,调用预定检测算法对待检测指标数据进行异常识别包括:
首先,获取预定检测算法的阈值判别参数;之后,基于阈值判别参数对待检测指标数据进行异常识别。
根据本公开的实施例,上述突升突降检测算法、固定阈值检测算法、基线检测算法都需为其预先配置阈值判别参数。
例如,针对突升突降检测算法,为其配置突升突降差值阈值,在任意相邻两个时间窗口的指标数值的差值小于该突升突降差值阈值的情况下,认为指标数据初步正常,反之,认为指标数据初步异常。
例如,针对固定阈值检测算法,为其配置固定判别阈值,在任意一个时间窗口的指标数值大于或小于该固定判别阈值的情况下,认为指标数据初步异常,反之,认为指标数据初步正常。
例如,针对基线检测算法,为其配置上限判别参数和下限判别参数,在任意一个时间窗口的指标数值大于上限判别参数或小于下限判别参数的情况下,认为指标数据初步异常,反之,认为指标数据初步正常。
图5示意性示出了根据本公开实施例的确定基线检测算法的阈值判别参数的方法原理图。
如图5所示,可通过预先获取针对目标数据库实例的历史检测指标数据,基于历史检测指标数据生成基线检测算法的阈值判别参数。
具体地,根据本公开的实施例,获取基线检测算法的阈值判别参数包括:
操作11、基于目标时间段确定参考时间段;
操作12、针对多个历史检测周期,获取在各个历史检测周期的参考时间段内,针对目标数据库实例的历史检测指标数据;
参考时间段可以是历史检测周期的同一个目标时间段,也可以是在目标时间段的基础上进行时间长度的拓展得到的时间段。多个历史检测周期可以是预定数量(3个、5个等等)的多个历史检测周期。
例如,目标时间段为今天上午9点10分,可获取昨天、前天、3天前同一时间段-上午9点10分的指标数据。也可以是参考时间段取[当前时刻-10min,当前时刻+50min]的时间段,获取昨天、前天、3天前同一参考时间段-上午9点-10点的指标数据。如果指标数据不满足最小周期,则跳过该实例本次生成周期,直到历史指标数据满足。由于业务的工作日和周末呈现明显不一样的指标曲线,历史数据日期也可设置成昨天、7天前、14天前数据。
操作13、根据与多个历史检测周期对应的多组历史检测指标数据,计算基线检测算法的阈值判别参数。
根据本公开的实施例,因业务数据随着业务特性在同一检测周期的不同时间段呈现不同的数据波动特性(例如上午9点-12点为业务高峰,指标数值普遍较高,凌晨为业务低峰,指标数值普遍较低),因此,需要基于历史周期同一参考时间段的指标数据计算得到得出基线检测算法的阈值判别参数,方具有参考性。
根据本公开的实施例,进一步地,计算基线检测算法的阈值判别参数包括:
操作131、计算多组历史检测指标数据的目标均值和目标标准差;例如,计算昨天、前天、3天前同一时间段-上午9点10分的指标数据的均值作为目标均值,计算昨天、前天、3天前同一时间段-上午9点10分的指标数据的标准差作为目标标准差。
操作132、根据目标均值和目标标准差,计算得到基线检测算法的上限判别参数和下限判别参数。具体采用以下公式(1)、(2)计算得到:
上限判别参数=目标均值+预设系数*目标标准差--(1)
下限判别参数=目标均值-预设系数*目标标准差--(2)。
根据本公开的实施例,其中,基于阈值判别参数对待检测指标数据进行异常识别包括:
确定目标数据库实例的数据波动特性;
根据数据波动特性的特性类型,基于预定检测算法的阈值判别参数对待检测指标数据进行异常识别。
因针对不同的场景,实例指标数据呈现不同的数据波动特性,因此,具体适用的检测算法也不尽相同,具体可以是根据数据波动特性的特性类型,确定采用突升突降检测算法、固定阈值检测算法、基线检测算法中的其中一种作为主要参考算法,以另外两种中的部分或全部作为辅助参考算法进行异常识别。
例如,针对某数据库实例,在正常情况下,数据属于平缓波动特性(不会出现数值频繁抖动),属于第一预定特性类型,该情形下,可以突升突降检测算法的异常识别结果作为主要参考结果,以固定阈值检测算法和基线检测算法的异常识别结果作为辅助参考结果;基于主要参考结果和辅助参考结果,生成待检测指标数据的异常识别结果。
具体地,通过固定阈值检测算法或基线检测算法检测进行识别的结果为正常,但是,在突升突降检测算法的结果为异常的情况下,则可认为其指标数据异常,反之认为数据正常。
这种情形下,若以固定阈值检测算法或基线检测算法进行异常识别,通常不会发现数据异常,但是因数据出现明显突升突降,与正常指标波动情况不符,因此,以突升突降检测算法为主要参考结果,可获得较为准确的异常识别结果,避免误判。
例如,针对某数据库实例,在正常情况下,数据属于频繁抖动特性,属于第二预定特性类型,该情形下,可以基线检测算法的异常识别结果作为主要参考结果,以突升突降检测算法和固定阈值检测算法的异常识别结果作为辅助参考结果;基于主要参考结果和辅助参考结果,生成待检测指标数据的异常识别结果。
具体地,通过突升突降检测算法的识别结果为异常,通过固定阈值检测算法的识别结果为正常或异常(不作为主要依据,仅做参考),但是,在基线检测算法的结果为正常的情况下,则可认为其指标数据正常,反之认为数据异常。
该情形下,因在正常状态下指标数据本就属于频繁抖动、突升突降的波动形态,若以突升突降检测算法的识别结果为主要依据,则难免会引起误判,但是固定阈值检测算法因无法设定合理的阈值,通常判别结果也不准确,基线检测算法则较为妥当,为数据波动设置合理的波动范围,通常能够得出较为准确的判别结果。
根据本公开的实施例,突升突降检测算法可检测在时间窗口内离群的点,即为突升突降的尖刺点,离群的检测阈值可单独配置。基于基线检测算法的检测是对应时间点的指标值是否在其上下限的范围内,范围外的点定义为异常点。基于固定阈值检测算法是基于用户的配置,只要达到了阈值就认为是异常。上述检测到异常后,记录到异常记录表中。记录的信息包括实例信息、指标名、检测到异常的方式、检测时异常点及其对应检测标准的值、检测时间等。三种检测方式组合使用,对异常的检测准确度和及时性有较大程度的保障。
根据本公开的实施例,获取在目标时间段内针对目标数据库实例的目标操作会话数据包括:
操作21、在目标数据库实例的执行过程中,调用定时任务将与目标数据库实例关联的原始操作会话数据缓存至第一存储区;并将原始操作会话数据在第一存储区中存储预定时长后,将原始操作会话数据从第一存储区中删除。
操作22、在异常识别结果为异常的情况下,以目标时间段和目标数据库实例的实例标识作为查询字段,从第一存储区查询目标操作会话数据,并将目标操作会话数据持久化存储至第二存储区。
图6示意性示出了根据本公开实施例的异常会话关联分析处理的方法原理图。
如图6所示,在数据库实例的操作过程中,调用定时任务进行会话信息的收集,将与目标数据库实例关联的原始操作会话数据缓存至第一存储区,第一存储区为缓存区,原始操作会话数据在第一存储区中存储预定时长后,会自动删除。例如,设置仅存储1个小时的会话数据。可以是分别按数据库/访问来源/连接用户三个维度的统计会话数据。操作会话数据以实例id+时间为主键key存储到Redis缓存中,可自定义缓存时间,例如过期时间30分钟。
在对指标数据识别出异常数据后,再以目标时间段和目标数据库实例的实例标识作为查询字段,从缓存中关联查询到异常时刻的目标操作会话数据,并对异常时刻的目标操作会话数据存储至第二存储区,其中第二存储区为持久化存储区。
根据本公开的实施例,数据库的大部分异常与访问连接有关,因此基于关联会话信息便于更好分析故障原因。但是由于会话信息的即时性(基于数据库的特性,会话信息为临时数据性,过期即自动删除)不会将会话持久化存储。如果想回溯异常点时的会话信息,需提前不间断采集所有的会话信息并持久化存储,但是,因大部分数据都是正常的会话信息,将大大增加存储成本,且增加数据检索难度。
本公开实施例的上述方法中,与目标数据库实例关联的原始操作会话数据即为与目标数据库实例关联的所有操作时间段的会话数据,采用定时任务定时获取到后,将其进行缓存。因临时存储过期删除数据,因此,该存储空间是相对固定的小空间,不会对存储造成较大压力。
进一步地,在发现异常时,对异常时间点的会话进行关联并将其实现持久化存储,支持对可能的异常发生时间点的会话信息回溯,便于确定异常原因。因持久化存储的仅是针对异常时刻的少量会话数据,因此,占用存储空间较小,较大程度上降低了存储压力。
根据本公开的实施例,将操作会话数据和待检测指标数据进行关联的方法可包括两种:
第一种方法即为前述实施例描述的方法,即基于对指标数据异常识别的结果,基于发现异常的指标异常时刻,将指标异常时刻的指标数据与指标异常时刻的操作会话数据进行关联。
第二种方法为:在通过定时任务进行会话信息的收集,对与目标数据库实例关联的原始操作会话数据进行异常识别,具体以是:会话中存在未提交事物数超过阈值、执行时长超预设时长(如1秒)的会话数量占比超过阈值、锁等待数量超过阈值等异常操作会话,则将发现异常会话的时刻作为会话异常时刻,基于该会话异常时刻,将会话异常时刻的操作会话数据与会话异常时刻的指标数据(CPU/MEM/IOPS等)进行关联。
根据本公开的实施例,数据库实例的操作会话数据,指在数据库系统中每个会话的相关数据和状态信息,包含了会话的上下文信息、连接信息、执行状态等。具体地,目标操作会话数据包括以下至少之一:会话总数、活跃会话连接数量、活跃会话中临时表的数量、非活跃会话连接数量、未提交事务数量、等待状态会话数量、等待状态会话中锁等待数量、会话执行时长等。
进一步地,将异常识别结果和目标操作会话数据进行关联分析处理包括:
操作31、基于目标操作会话数据生成会话异常分析结果;即对目标操作会话数据进行异常分析,确定操作会话是否存在异常。
例如,如图6所示,可以是在会话中未提交事务数量超过阈值,或者会话执行时长超过预设时长阈值(如1秒)的会话数量占比超过阈值,或者等待状态会话数量超过阈值的情况下,认为该操作会话为异常操作会话。
操作32、在会话异常分析结果为正常的情况下,生成第一关联分析结果。
根据本公开的实施例,经过对异常时刻的操作会话进行异常分析,如果会话中不存在异常会话,则仅是指标异常(CPU/MEM/IOPS等),则生成第一关联分析结果,用于表征数据库会话执行逻辑没有异常,仅是数据库自身查询效率不高导致的指标异常(CPU/MEM/IOPS等的升高)。
操作33、在会话异常分析结果为异常的情况下,生成第二关联分析结果。
根据本公开的实施例,经过对异常时刻的操作会话进行异常分析,如果会话中存在异常会话,同时指标异常(CPU/MEM/IOPS等),则生成第二关联分析结果,用于表征数据库会话执行逻辑可能存在异常。进一步地针对具体的会话信息进行分析,以确定数据库会话执行逻辑的异常原因。
具体执行方法如下:
方法1、例如可以是获取会话总数,在会话总数超过阈值的情况下,初步认为会话数量过多。因会话接入会占用一定内存,因此数据库能承受的同一时间接入的会话数量是有限制的,超过一定数量则需要对会话数量加以限制。
方法2、例如可以是在会话总数没超过阈值的情况下,进一步确定会话中活跃会话连接数量和非活跃(sleep)会话连接数量,若活跃会话连接数量占比超过阈值,在活跃会话连接数量占比超过阈值的情况下,可进一步结合活跃会话中临时表的数量进行异常原因判别,若临时表的数量超过阈值,则可确定为:数据库的SQL操作逻辑可能存在问题,可以进行对数据库表查询添加索引之类的SQL优化操作。
如果会话中非活跃(sleep)会话连接数量占比超过阈值,则可确定为:存在大量未断开连接的会话,需要将其断开连接。
其中,非活跃(sleep)会话中可能存在纯sleep状态会话(即操作完成、事务也提交了,仅是未断开连接),也可能存在操作完成但是因未提交事务导致的会话未断开连接的情况。因此,可以进一步判定非活跃会话中未提交事务数量是否超过阈值,若超过阈值,认为是由于大量未提交事务导致的会话未断开连接数量超常。
方法3、例如可以是确定等待状态会话数量是否超过阈值,若超过阈值,说明等待状态的会话过多,进一步确定等待状态会话中锁等待数量,以确定造成等待状态会话过多的原因。如果锁等待数量超过阈值,则可认为是由于锁等待导致的等待状态会话数量异常。
基于上述数据库异常处理方法,本公开还提供了一种数据库异常处理装置。以下将结合图7对该装置进行详细描述。
图7示意性示出了根据本公开实施例的数据库异常处理装置的结构框图。
如图7所示,该实施例的数据库异常处理装置700包括第一获取模块701、异常识别模块702、第二获取模块703、关联处理模块704。
第一获取模块701,用于从监控数据库中获取在目标检测周期的目标时间段内,针对目标数据库实例的待检测指标数据;
异常识别模块702,用于调用预定检测算法对待检测指标数据进行异常识别,以生成针对目标数据库实例的异常识别结果;
第二获取模块703,用于在异常识别结果为异常的情况下,获取在目标时间段内针对目标数据库实例的目标操作会话数据;
关联处理模块704,用于将异常识别结果和目标操作会话数据进行关联分析处理,以生成针对目标数据库实例的关联分析结果。
根据本公开的实施例,其中,第二获取模块703包括缓存子模块、查询子模块。
缓存子模块,用于在目标数据库实例的执行过程中,调用定时任务将与目标数据库实例关联的原始操作会话数据缓存至第一存储区;查询子模块,用于在异常识别结果为异常的情况下,以目标时间段和目标数据库实例的实例标识作为查询字段,从第一存储区查询目标操作会话数据,并将目标操作会话数据持久化存储至第二存储区。
根据本公开的实施例,第二获取模块还包括删除子模块,用于将原始操作会话数据在第一存储区中存储预定时长后,将原始操作会话数据从第一存储区中删除。
根据本公开的实施例,其中,目标操作会话数据包括以下至少之一:会话总数、活跃会话连接数量、活跃会话中临时表的数量、非活跃会话连接数量、未提交事务数量、等待状态会话数量、等待状态会话中锁等待数量、会话执行时长。
根据本公开的实施例,其中,关联处理模块704包括第一生成子模块、第二生成子模块、第三生成子模块。
第一生成子模块,用于基于目标操作会话数据生成会话异常分析结果;第二生成子模块,用于在会话异常分析结果为正常的情况下,生成第一关联分析结果;第三生成子模块,用于在会话异常分析结果为异常的情况下,生成第二关联分析结果。
根据本公开的实施例,其中,预定检测算法包括以下至少之一:突升突降检测算法、固定阈值检测算法、基线检测算法。
根据本公开的实施例,其中,异常识别模块702包括获取子模块、异常识别子模块。
获取子模块,用于获取预定检测算法的阈值判别参数;异常识别子模块,基于阈值判别参数对待检测指标数据进行异常识别。
根据本公开的实施例,其中,获取子模块包括第一确定单元、获取单元、计算单元。
第一确定单元,用于基于目标时间段确定参考时间段;获取单元,用于针对多个历史检测周期,获取在各个历史检测周期的参考时间段内,针对目标数据库实例的历史检测指标数据;计算单元,用于根据与多个历史检测周期对应的多组历史检测指标数据,计算基线检测算法的阈值判别参数。
根据本公开的实施例,其中,计算单元包括第一计算子单元、第二计算子单元。
第一计算子单元,用于计算多组历史检测指标数据的目标均值和目标标准差;第二计算子单元,用于根据目标均值和目标标准差,计算得到基线检测算法的上限判别参数和下限判别参数。
根据本公开的实施例,其中,异常识别子模块包括第二确定单元、第一结果确定单元、第一结果生成单元。
第二确定单元,用于确定目标数据库实例的数据波动特性;第一结果确定单元,用于在数据波动特性为第一预定特性类型的情况下,以突升突降检测算法的异常识别结果作为主要参考结果,以固定阈值检测算法和基线检测算法的异常识别结果作为辅助参考结果;第一结果生成单元,用于基于主要参考结果和辅助参考结果,生成待检测指标数据的异常识别结果。
根据本公开的实施例,其中,异常识别子模块包括第三确定单元、第二结果确定单元、第二结果生成单元。
第三确定单元,用于确定目标数据库实例的数据波动特性;第二结果确定单元,用于在数据波动特性为第二预定特性类型的情况下,以基线检测算法的异常识别结果作为主要参考结果,以突升突降检测算法和固定阈值检测算法的异常识别结果作为辅助参考结果;第二结果生成单元,用于基于主要参考结果和辅助参考结果,生成待检测指标数据的异常识别结果。
根据本公开的实施例,上述装置还包括探活模块,用于在从监控数据库中未获取到待检测指标数据的情况下,对目标数据库实例进行探活处理。
根据本公开的实施例,其中,探活模块包括第二结果生成单元、第二检测单元、第三检测单元。
第一检测单元,用于检测与目标数据库实例关联的数据库主机的连通性;或者第二检测单元,用于检测目标数据库实例对外提供数据操作服务的服务端口的可用性;或者第三检测单元,用于检测目标数据库实例的可操作性。
根据本公开的实施例,其中,待检测指标数据包括以下至少之一:CPU指标、系统内存指标、系统硬件存储指标、连接性能指标、请求处理性能指标。
根据本公开的实施例,第一获取模块701、异常识别模块702、第二获取模块703、关联处理模块704中的任意多个模块可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块701、异常识别模块702、第二获取模块703、关联处理模块704中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块701、异常识别模块702、第二获取模块703、关联处理模块704中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图8示意性示出了根据本公开实施例的适于实现数据库异常处理方法的电子设备的方框图。
如图8所示,根据本公开实施例的电子设备800包括处理器801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。处理器801例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))等等。处理器801还可以包括用于缓存用途的板载存储器。处理器801可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 803中,存储有电子设备800操作所需的各种程序和数据。处理器801、ROM802以及RAM 803通过总线804彼此相连。处理器801通过执行ROM 802和/或RAM 803中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 802和RAM 803以外的一个或多个存储器中。处理器801也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,电子设备800还可以包括输入/输出(I/O)接口805,输入/输出(I/O)接口805也连接至总线804。电子设备800还可以包括连接至输入/输出(I/O)接口805的以下部件中的一项或多项:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分808。通信部分808经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出(I/O)接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 802和/或RAM 803和/或ROM 802和RAM 803以外的一个或多个存储器。
本公开的实施例还包括一种计算机程序产品,其包括计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。当计算机程序产品在计算机系统中运行时,该程序代码用于使计算机系统实现本公开实施例所提供的数据库异常处理方法。
在该计算机程序被处理器801执行时执行本公开实施例的系统/装置中限定的上述功能。根据本公开的实施例,上文描述的系统、装置、模块、单元等可以通过计算机程序模块来实现。
在一种实施例中,该计算机程序可以依托于光存储器件、磁存储器件等有形存储介质。在另一种实施例中,该计算机程序也可以在网络介质上以信号的形式进行传输、分发,并通过通信部分808被下载和安装,和/或从可拆卸介质811被安装。该计算机程序包含的程序代码可以用任何适当的网络介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
在这样的实施例中,该计算机程序可以通过通信部分808从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被处理器801执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
根据本公开的实施例,可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例提供的计算机程序的程序代码,具体地,可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。程序设计语言包括但不限于诸如Java,C++,python,“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。
Claims (18)
1.一种数据库异常处理方法,包括:
从监控数据库中获取在目标检测周期的目标时间段内,针对目标数据库实例的待检测指标数据;
调用预定检测算法对所述待检测指标数据进行异常识别,以生成针对所述目标数据库实例的异常识别结果;
在所述异常识别结果为异常的情况下,获取在所述目标时间段内针对所述目标数据库实例的目标操作会话数据;
将所述异常识别结果和所述目标操作会话数据进行关联分析处理,以生成针对所述目标数据库实例的关联分析结果。
2.根据权利要求1所述的方法,其中,获取在所述目标时间段内针对所述目标数据库实例的目标操作会话数据包括:
在所述目标数据库实例的执行过程中,调用定时任务将与所述目标数据库实例关联的原始操作会话数据缓存至第一存储区;
在所述异常识别结果为异常的情况下,以所述目标时间段和所述目标数据库实例的实例标识作为查询字段,从所述第一存储区查询所述目标操作会话数据,并将所述目标操作会话数据持久化存储至第二存储区。
3.根据权利要求2所述的方法,还包括:
将所述原始操作会话数据在所述第一存储区中存储预定时长后,将所述原始操作会话数据从所述第一存储区中删除。
4.根据权利要求1所述的方法,其中:
所述目标操作会话数据包括以下至少之一:会话总数、活跃会话连接数量、活跃会话中临时表的数量、非活跃会话连接数量、未提交事务数量、等待状态会话数量、等待状态会话中锁等待数量、会话执行时长。
5.根据权利要求4所述的方法,其中,将所述异常识别结果和所述目标操作会话数据进行关联分析处理包括:
基于所述目标操作会话数据生成会话异常分析结果;
在所述会话异常分析结果为正常的情况下,生成第一关联分析结果;
在所述会话异常分析结果为异常的情况下,生成第二关联分析结果。
6.根据权利要求1所述的方法,其中:
所述预定检测算法包括以下至少之一:突升突降检测算法、固定阈值检测算法、基线检测算法。
7.根据权利要求6所述的方法,其中,调用预定检测算法对所述待检测指标数据进行异常识别包括:
获取所述预定检测算法的阈值判别参数;
基于所述阈值判别参数对所述待检测指标数据进行异常识别。
8.根据权利要求7所述的方法,其中,在所述预定检测算法包括基线检测算法的情况下,获取所述基线检测算法的阈值判别参数包括:
基于所述目标时间段确定参考时间段;
针对多个历史检测周期,获取在各个历史检测周期的参考时间段内,针对所述目标数据库实例的历史检测指标数据;
根据与所述多个历史检测周期对应的多组所述历史检测指标数据,计算所述基线检测算法的阈值判别参数。
9.根据权利要求8所述的方法,其中,计算所述基线检测算法的阈值判别参数包括:
计算所述多组所述历史检测指标数据的目标均值和目标标准差;
根据所述目标均值和所述目标标准差,计算得到所述基线检测算法的上限判别参数和下限判别参数。
10.根据权利要求6所述的方法,其中,基于所述阈值判别参数对所述待检测指标数据进行异常识别包括:
确定所述目标数据库实例的数据波动特性;
在所述数据波动特性为第一预定特性类型的情况下,以所述突升突降检测算法的异常识别结果作为主要参考结果,以所述固定阈值检测算法和所述基线检测算法的异常识别结果作为辅助参考结果;
基于所述主要参考结果和所述辅助参考结果,生成所述待检测指标数据的异常识别结果。
11.根据权利要求6所述的方法,其中,基于所述阈值判别参数对所述待检测指标数据进行异常识别包括:
确定所述目标数据库实例的数据波动特性;
在所述数据波动特性为第二预定特性类型的情况下,以所述基线检测算法的异常识别结果作为主要参考结果,以所述突升突降检测算法和所述固定阈值检测算法的异常识别结果作为辅助参考结果;
基于所述主要参考结果和所述辅助参考结果,生成所述待检测指标数据的异常识别结果。
12.根据权利要求1所述的方法,还包括:
在从所述监控数据库中未获取到所述待检测指标数据的情况下,对所述目标数据库实例进行探活处理。
13.根据权利要求12所述的方法,其中,对所述目标数据库实例进行探活处理包括:
检测与所述目标数据库实例关联的数据库主机的连通性;或者
检测所述目标数据库实例对外提供数据操作服务的服务端口的可用性;或者
检测所述目标数据库实例的可操作性。
14.根据权利要求1所述的方法,其中:
所述待检测指标数据包括以下至少之一:CPU指标、系统内存指标、系统硬件存储指标、连接性能指标、请求处理性能指标。
15.一种数据库异常处理装置,包括:
第一获取模块,用于从监控数据库中获取在目标检测周期的目标时间段内,针对目标数据库实例的待检测指标数据;
异常识别模块,用于调用预定检测算法对所述待检测指标数据进行异常识别,以生成针对所述目标数据库实例的异常识别结果;
第二获取模块,用于在所述异常识别结果为异常的情况下,获取在所述目标时间段内针对所述目标数据库实例的目标操作会话数据;
关联处理模块,用于将所述异常识别结果和所述目标操作会话数据进行关联分析处理,以生成针对所述目标数据库实例的关联分析结果。
16.一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器执行根据权利要求1~14中任一项所述的方法。
17.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1~14中任一项所述的方法。
18.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现根据权利要求1~14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311170362.0A CN117194161A (zh) | 2023-09-12 | 2023-09-12 | 数据库异常处理方法及装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311170362.0A CN117194161A (zh) | 2023-09-12 | 2023-09-12 | 数据库异常处理方法及装置、电子设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117194161A true CN117194161A (zh) | 2023-12-08 |
Family
ID=88988339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311170362.0A Pending CN117194161A (zh) | 2023-09-12 | 2023-09-12 | 数据库异常处理方法及装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117194161A (zh) |
-
2023
- 2023-09-12 CN CN202311170362.0A patent/CN117194161A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10560465B2 (en) | Real time anomaly detection for data streams | |
CN107992398B (zh) | 一种业务系统的监控方法和监控系统 | |
CN111984499B (zh) | 一种大数据集群的故障检测方法和装置 | |
CN111581054B (zh) | 一种基于elk的日志埋点的业务分析告警系统及方法 | |
EP4099170A1 (en) | Method and apparatus of auditing log, electronic device, and medium | |
US8788527B1 (en) | Object-level database performance management | |
EP3937022B1 (en) | Method and apparatus of monitoring interface performance of distributed application, device and storage medium | |
CN112181948B (zh) | 数据库操作语句的处理方法、装置、电子设备和介质 | |
CN112948397A (zh) | 一种数据处理系统、方法、装置及存储介质 | |
CN111970168A (zh) | 全链路服务节点的监控方法、装置和存储介质 | |
CN114760233B (zh) | 业务处理方法、装置、电子设备及存储介质 | |
CN115344207A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN114153703A (zh) | 微服务的异常定位方法、装置、电子设备和程序产品 | |
CN113238815B (zh) | 一种接口访问控制方法、装置、设备及存储介质 | |
CN112256548B (zh) | 异常数据的监听方法、装置、服务器及存储介质 | |
CN112491650B (zh) | 动态分析服务之间调用环路情况的方法及相关设备 | |
CN113420935A (zh) | 故障定位方法、装置、设备和介质 | |
US7542998B1 (en) | Cause to effect methodology for monitoring database performance | |
CN117215867A (zh) | 一种业务监控方法、装置、计算机设备及存储介质 | |
CN116048846A (zh) | 数据传输方法、装置、设备和存储介质 | |
CN112825165A (zh) | 项目质量管理的方法和装置 | |
CN117194161A (zh) | 数据库异常处理方法及装置、电子设备和存储介质 | |
CN115514618A (zh) | 告警事件的处理方法、装置、电子设备和介质 | |
CN114546786A (zh) | 基于多级缓存的异常监控方法 | |
CN115202973A (zh) | 应用运行状态的确定方法、装置、电子设备和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |