掌桥专利:专业的专利平台
掌桥专利
首页

数据库系统的异常处理装置及方法

文献发布时间:2023-06-19 11:54:11


数据库系统的异常处理装置及方法

技术领域

本发明涉及数据库技术领域,具体涉及一种数据库系统的异常处理装置及方法。

背景技术

数据库作为线上应用的核心和基础,承载着应用中的配置数据、中间过程数据、结果数据和归档历史数据等多个方面的数据,是应用的大脑记忆系统。随着大数据时代的到来,数据库的功能也从原来的单纯的数据存储,向云计算和数据挖掘分析发展。数据库系统如此重要,是运维人员的重点保护对象,所以从系统的设计上,各个数据库节点都具备高可用能力、配备容灾系统,日常巡检维护上也都提供了最高级别监控系统辅助。

数据库异常处理是数据库管理员日常工作最常见的问题之一。因为庞大的数据库系统涉及到了众多的业务系统,业务之间存在耦合,一个核心系统数据库的异常往往影响到多个系统的业务健康度,数据库的异常处理需要迅速定位并立即解决,以减小对线上业务的影响。因此,如何快速定位并解决问题是维护人员面临的一个课题。

现有技术中,数据库的异常处理都是针对各个数据库节点进行会话级别性能监控,发现异常后通过发送告警的方式调动人工处理,期间要历经指标采集、告警过滤、告警发送以及人工响应多个阶段。

但是,发明人在实现本发明的过程中发现:现有技术中异常处理手段需要不间断人工值守,人工值守的成本高,并且人工处理需要依赖数据库维护人员的处理经验,存在一定的风险;其次,现有技术基于人工值守的异常处理方法耗时久、效率低,从而容易引发故障。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据库系统的异常处理装置及方法。

根据本发明的一个方面,提供了一种数据库系统的异常处理装置,包括:

数据采集模块,适于采集数据库系统的性能指标数据;

数据分析模块,适于对性能指标数据进行分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新;

其中,分析结果包括各类异常检测项的信息值,异常阈值包括各类异常检测项的异常阈值;

若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新;

防御判定模块,适于将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件,若确定发生异常事件,向防御执行模块下发防御执行指令;

防御执行模块,适于根据接收到的防御执行指令,按照与异常事件匹配的防御规则进行异常防御处理。

可选地,防御判定模块进一步包括:

异常判定子模块,适于将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件;

白名单子模块,适于在确定发生异常事件之后,判断异常事件对应的主体是否属于主体白名单;若判断出异常事件对应的主体不属于主体白名单,调用异常处理执行子模块;

异常处理执行子模块,适于确定与异常事件相应的异常防御处理动作信息,基于与异常事件相应的异常防御处理动作信息向防御执行模块下发防御执行指令。

可选地,数据采集模块进一步适于:采集数据库系统的性能指标数据之后,为性能指标数据添加时间戳,以及根据性能指标数据的来源信息为性能指标数据添加标签;

数据分析模块进一步包括:

数据归档子模块,适于根据性能指标数据的时间戳和标签,对性能指标数据进行归类存放;

数据清洗子模块,适于将归类后的性能指标数据进行数据清洗处理;其中,数据清洗处理包括以下处理中的至少一个:无效数据的过滤处理、异动数据的沉淀处理;

阈值调整子模块,适于对数据清洗后的各类数据进行采样分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新;若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新。

可选地,性能指标数据包括数据以下中的一项或多项:

数据库会话数据、数据库告警日志数据、数据库集群状态数据、数据库主机状态数据。

可选地,防御执行模块进一步包括:

权限验证子模块,适于接收防御执行指令,验证防御执行指令的发起方的权限;

操作集合子模块,适于在发起方具备权限的情况下,确定防御执行指令匹配的防御操作信息,根据匹配的防御操作信息向任务调度子模块下发调度指令;

任务调度子模块,适于接收到调度指令时,根据调度指令向数据库系统下发防御操作指令,以便数据库系统根据防御操作指令执行异常防御处理。

可选地,装置进一步包括:

告警模块,适于将异常防御处理的防御信息进行告警输出;

防御信息具体包括以下信息中的一项或多项:触发异常防御处理的时间信息、异常防御的处理动作信息、异常防御处理的执行结果。

可选地,装置进一步包括:

日志记录模块,适于记录异常防御处理的防御信息;以及记录异常阈值的更新结果。

根据本发明的另一方面,提供了一种数据库系统的异常处理方法,包括:

采集数据库系统的性能指标数据;

对性能指标数据进行分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新;

其中,分析结果包括各类异常检测项的信息值,异常阈值包括各类异常检测项的异常阈值;

若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新;

将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件;

若确定发生异常事件,按照与异常事件匹配的防御规则进行异常防御处理。

可选地,在确定发生异常事件之后,方法进一步包括:判断异常事件对应的主体是否属于主体白名单;若判断出异常事件对应的主体不属于主体白名单,则按照与异常事件匹配的防御规则进行异常防御处理。

可选地,采集数据库系统的性能指标数据之后,方法进一步包括:为性能指标数据添加时间戳,以及根据性能指标数据的来源信息为性能指标数据添加标签;

则对性能指标数据进行分析进一步包括:

根据性能指标数据的时间戳和标签,对性能指标数据进行归类存放;

将归类后的性能指标数据进行数据清洗处理;其中,数据清洗处理包括以下处理中的至少一个:无效数据的过滤处理、异动数据的沉淀处理;

对数据清洗后的各类数据进行采样分析,得到分析结果。

可选地,性能指标数据包括数据以下中的一项或多项:

数据库会话数据、数据库告警日志数据、数据库集群状态数据、数据库主机状态数据。

可选地,方法进一步包括:将异常防御处理的防御信息进行告警输出;

防御信息具体包括以下信息中的一项或多项:触发异常防御处理的时间信息、异常防御的处理动作信息、异常防御处理的执行结果。

可选地,方法进一步包括:记录异常防御处理的防御信息;以及记录异常阈值的更新结果。

根据本发明的又一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;

所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述数据库系统的异常处理方法对应的操作。

根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述数据库系统的异常处理方法对应的操作。

根据本发明的数据库系统的异常处理装置及方法,装置包括:数据采集模块适于采集数据库系统的性能指标数据;数据分析模块适于对性能指标数据进行分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新;若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新;防御判定模块适于将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件,若确定发生异常事件,向防御执行模块下发防御执行指令;防御执行模块,适于根据接收到的防御执行指令,按照与异常事件匹配的防御规则进行异常防御处理。该装置基于自动异常判定的主动防御,采集数据库系统的性能指标数据,判定数据库系统是否出现异常,在出现异常的情况下自动执行异常防御操作,从而能够快速消除数据库异常,实现了数据库异常的自动诊断和处理,无需人工参与处理,极大提高了响应速度,提升了异常处理的效率;并且,该方式还采用了动态异常阈值判定,能够自我修正异常判定的标准,提升异常判定的准确性,避免人工经验带来的局限性和不确定性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的数据库系统的异常处理装置的结构示意图;

图2示出了本发明另一实施例提供的数据库系统的异常处理装置的结构示意图;

图3示出了本发明实施例中数据库系统的异常处理方法的流程示意图;

图4示出了本发明实施例中数据库系统的异常处理方法的流程示意图;

图5示出了本发明实施例的数据库系统的异常处理的逻辑架构图;

图6示出了本发明计算设备实施例的结构示意图。

具体实施方式

下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。

图1示出了本发明实施例提供的数据库系统的异常处理装置的结构示意图,如图1所示,该装置包括:

数据采集模块11,适于采集数据库系统的性能指标数据。

该模块的作用是采集用于判断数据库性能的指标数据,例如,采集数据库系统的会话健康状况的关键信息、数据库集群状态信息、数据库告警日志信息、数据库主机日志等等。

数据分析模块12,适于对性能指标数据进行分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新。

其中,分析结果包括各类异常检测项的信息值,异常阈值包括各类异常检测项的异常阈值;若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新。

该模块的功能是对采集到的性能指标数据进行综合梳理分析,例如,可以对性能指标数据首先进行分类,并对分类后的性能指标数据进行过滤清洗等等,得到各类异常检测项的信息值,异常检测项的信息值也就是异常检测项的具体指标值。

然后,将各类异常检测项的信息值与对应的异常阈值进行比对,判断是否需要对异常阈值是否需要进行更新,如果是,则对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要再更新。

这里的异常阈值的更新的是为了避免误判的情况,例如,当前异常阈值为业务低峰时段的异常阈值,低峰时段内,如果异常检测项的信息值高于该业务低峰时段的异常阈值,此时则认为是发生了异常事件;此时,业务高峰时段来临,异常检测项的信息值升高,大于该业务低峰时段的异常阈值,此时并非是数据库系统发生了异常事件,而是异常阈值设置的不合理,则需要对异常阈值进行更新。基于此,本实施例的装置首先是判定异常阈值是否需要进行调整,然后再判定数据库系统是否出现异常。

防御判定模块13,适于将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件,若确定发生异常事件,向防御执行模块下发防御执行指令。

该模块的作用是根据各类异常检测项的信息值与对应的异常阈值进行比较,确定异常的数据,进而确定是否发生了异常事件,定位异常来源。如果发生了异常事件,则向防御执行模块下发防御执行指令。

防御执行模块14,适于根据接收到的防御执行指令,按照与异常事件匹配的防御规则进行异常防御处理。

该模块的作用是对防御判定模块的指令进行响应,按照与异常事件匹配的防御规则执行数据库系统的异常防御处理。

根据本实施例所提供的数据库系统的异常处理装置,该装置基于自动异常判定的主动防御,采集数据库系统的性能指标数据,判定数据库系统是否出现异常,在出现异常的情况下自动执行异常防御操作,从而能够快速消除数据库异常,实现了数据库异常的自动诊断和处理,无需人工参与处理,极大提高了响应速度,提升了异常处理的效率;并且,该方式还采用了动态异常阈值判定,能够自我修正异常判定的标准,提升异常判定的准确性,避免人工经验带来的局限性和不确定性。

图2示出了本发明另一实施例提供的数据库系统的异常处理装置的结构示意图,如图2所示,该装置包括:数据采集模块21、数据分析模块22、防御判定模块23、防御执行模块24、告警模块25、日志记录模块26。

数据采集模块21,适于采集数据库系统的性能指标数据,并为性能指标数据添加时间戳,以及根据性能指标数据的来源信息为性能指标数据添加标签。

其中,性能指标数据包括以下数据中的一项或多项:数据库会话数据、数据库告警日志数据、数据库集群状态数据、数据库主机状态数据。数据采集模块所采集的数据用于判断数据库运行效率、会话进程状态、数据库集群组件的运行状况。

采集数据库会话数据的具体实施方式为:将数据库当前的会话状态数据进行采集,会话状态数据包括以下数据中的一项或多项:会话所属用户数据、会话当前运行SQL数据、会话累计消耗的CPU及内存数据、会话的等待事件数据、会话发起主机及端口号数据、会话所在模块信息等等,将采集的会话数据打上时间戳,并根据会话所属的应用打上标签,数据库会话数据用于续分析会话状态。

采集数据库告警日志数据的具体实施方式为:将数据库节点的告警日志进行采集,并打上时间戳与节点信息,数据库告警日志数据用于分析数据库运行状态。

采集数据库集群状态数据的具体实施方式为:在数据库集群部署探针,周期性检查集群的状态并返回状态信息给数据采集模块。除此之外,数据采集模块还会定时采集集群日志,对关键信息进行筛选采集。数据库集群状态数据用于分析数据库集群运行状态。

采集数据库主机状态数据的具体实施方式为:数据采集模块周期性对主机性能指标数据进行采集,数据库主机状态数据用于分析数据库主机运行状态。其中,数据库主机性能指标数据包括以下数据中的至少一项:CPU使用率数据、内存使用率数据、网络端口流量数据、磁盘负载数据。

其中,数据分析模块22具体包括:数据归档子模块221、数据清洗子模块222以及阈值调整子模块223。

数据归档子模块221,适于根据性能指标数据的时间戳和标签,对性能指标数据归类存放。根据性能指标数据的时间戳和标签,对性能指标数据进行动态归类存放,如将以下各个类型的数据进行归类存放:会话资源消耗、CPU负载、内存使用率、异常会话数量、锁堵塞、集群脑裂、意外宕机、异常告警日志等等。性能指标数据分类归档之后便于阈值调整子模块对数据进行分析。

数据清洗子模块222,适于将归类后的性能指标数据进行数据清洗处理;其中,数据清洗处理包括以下处理中的至少一个:无效数据的过滤处理、异动数据的沉淀处理。根据数据的有效性进行清洗、分类、合并等数据清洗动作,过滤无效数据,并将异动信息进行沉淀,最终,通过阈值调整子模块对数据清洗处理后的数据进行分析。

阈值调整子模块223,适于对数据清洗后的各类数据进行采样分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新;若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新。

具体地,当比对结果中的异常检测项的信息值与对应的异常阈值之间的差值大于预定值时,则确定需要对异常阈值进行更新,例如,当异常检测项的信息值偏离异常阈值的偏离程度大于预设比例时,确定需要对异常阈值进行更新,同时日志记录模块26对更新进行记录。

其中,异常检测项包括对应于上述各个数据类型,也即,异常检测项的也包括会话资源消耗、CPU负载、内存使用率、异常会话数量、锁堵塞、进群脑裂、意外宕机、异常告警日志等等。异常检测项的信息值也就是监测到的异常检测项的具体指标值。

其中,阈值调整子模块223根据历史性能指标数据及对应的历史异常阈值,对异常阈值进行更新。在一种可选的实施方式中,可以根据历史性能指标数据和历史异常阈值构建模型,通过模型来确定当下最合适的异常阈值,进而对异常阈值进行更新。通过长周期的监控运行状态进行修正异常判定阈值,从而提高阈值判定的准确性。

防御判定模块23包括:异常判定子模块231、白名单子模块232以及异常处理执行子模块233。

异常判定子模块231,适于将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件。

各类异常检测项的信息值与数据分析模块中获取相应的异常检测项的异常判定阈值,如果判断出异常检测项的信息值与相应的异常判定阈值之间的差异达到异常标准时,则表明发生异常事件。实际应用中,发生异常事件的主体可以是数据库、数据库主机或者数据库网络等等。

需要说明的是,本发明实施例中异常阈值的更新的判定标准与是否发生异常事件的判定标准是不一致的,可由本领域技术人员灵活设置。

白名单子模块232,适于在确定发生异常事件之后,判断异常事件对应的主体是否属于主体白名单;若判断出异常事件对应的主体不属于主体白名单,调用异常处理执行子模块。

如果发生异常的主体可以通过白名单模块检测出来,则无需调用异常处理执行子模块进行处理,对当前异常不进行处理,通过这种方式可以排除系统维护期间对维护操作的干扰。如果发生异常的主体不属于白名单,则调用异常处理执行子模块223。

异常处理执行子模块233,适于确定与异常事件相应的异常防御处理动作信息,基于与异常事件相应的异常防御处理动作信息向防御执行模块下发防御执行指令。

本实施例中,预先设置了针对于不同异常事件的相应处理动作,包括但不限于:异常会话查杀、数据库监听重启、数据库重启、集群重启、集群切换、主机重启等。例如,当异常事件为数据库存在大量会话锁争用,则相应的异常防御处理动作为查杀持锁会话,以恢复锁异常造成的数据库会话堵塞。再如,当异常事件为数据库因连接风暴造成性能恶劣,则相应的异常防御处理动作为监听限流,以使数据库自动调整监听流量上限参数。确定了与异常事件响应的异常防御处理动作之后,向防御执行模块下发指示执行该异常防御处理动作的防御执行指令。

防御执行模块24包括:权限验证子模块241,操作集合子模块242以及任务调度子模块243。

权限验证子模块241,适于接收防御执行指令,验证防御执行指令的发起方的权限。权限验证子模块对上游发送的指令进行解密,并进行权限验证,确保指令是由授权的发起方发出的,保证不被非法分子调用,保证系统安全。

操作集合子模块242,适于在发起方具备权限的情况下,确定防御执行指令匹配的防御操作信息,根据匹配的防御操作信息向任务调度子模块下发调度指令。

该模块是针对于数据库系统的原子操作接口集合,操作涵盖数据库异常会话处理、主机异常处理及网络异常处理等多个方面,是主动防御的动作集合。接收到防御执行指令后,根据防御执行指令的内容匹配相应的防御操作信息,并向任务调度子模块下发调度指令,以供任务调度子模块根据调度指令执行相应的操作。

任务调度子模块243,适于接收到调度指令时,根据调度指令向数据库系统下发防御操作指令,以便数据库系统根据防御操作指令执行异常防御处理。

接收到调度指令时,将防御操作命令发送给消息队列,并下发给对应的数据库以执行防御操作。另外,异常防御处理的防御信息统一收集并存入日志记录模块,以供后续进行复盘分析,归档沉淀。防御信息具体包括以下信息中的至少一项:触发防御处理的时间信息、异常防御的处理动作信息、异常防御处理的执行结果。

告警模块25,适于将异常防御处理的防御信息进行告警输出。防御信息具体包括以下信息中的至少一项:触发防御处理的时间、异常防御的处理动作、异常防御处理的执行结果。

告警模块是各类告警接口的集合,提供各类告警推送。当触发主动防御时将主动防御信息进行告警输出,告警接口主要分为两类:告警平台的web页面的声光/图像告警提示,以及电话语音/短信的接口,以便进行远程提示。

根据本发明实施例所提供的数据库系统的异常处理装置,通过采集数据库运行状况、会话进程状况、数据库集群组件的运行状况共三个维度的性能指标数据,并对数据进行清洗、分类、合并,并进行分析和匹配,根据实际数据判定是否调整异常阈值,实现动态异常阈值判定,能够自我修正异常判定的标准,提升异常判定的准确性,避免了个人经验的局限性和不确定性。在动态异常阈值判定的基础上,根据实际数据进行异常事件的判定,在出现异常的情况下主动执行异常防御操作,从而能够快速消除数据库异常,实现了数据库异常的自我诊断和处理,避免人工参与处理,极大提高了响应速度,提升了异常处理的效率。

图3示出了本发明实施例中数据库系统的异常处理方法的流程示意图,如图3所示,该方法包括以下步骤:

步骤S301,采集数据库系统的性能指标数据。

步骤S302,对性能指标数据进行分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新;分析结果包括各类异常检测项的信息值,异常阈值包括各类异常检测项的异常阈值。

步骤S303,若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新。

步骤S304,将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件。

步骤S305,若确定发生异常事件,按照与异常事件匹配的防御规则进行异常防御处理。

可选地,在确定发生异常事件之后,方法进一步包括:判断异常事件对应的主体是否属于主体白名单;若判断出异常事件对应的主体不属于主体白名单,则按照与异常事件匹配的防御规则进行异常防御处理。

可选地,采集数据库系统的性能指标数据之后,方法进一步包括:为性能指标数据添加时间戳,以及根据性能指标数据的来源信息为性能指标数据添加标签;

则对性能指标数据进行分析进一步包括:

根据性能指标数据的时间戳和标签,对性能指标数据进行归类存放;

将归类后的性能指标数据进行数据清洗处理;其中,数据清洗处理包括以下处理中的至少一个:无效数据的过滤处理、异动数据的沉淀处理;

对数据清洗后的各类数据进行采样分析,得到分析结果。

可选地,性能指标数据包括数据以下中的一项或多项:

数据库会话数据、数据库告警日志数据、数据库集群状态数据、数据库主机状态数据。

可选地,方法进一步包括:将异常防御处理的防御信息进行告警输出;

防御信息具体包括以下信息中的一项或多项:触发异常防御处理的时间信息、异常防御的处理动作信息、异常防御处理的执行结果。

可选地,方法进一步包括:记录异常防御处理的防御信息;以及记录异常阈值的更新结果。

图4示出了本发明实施例中数据库系统的异常处理方法的流程示意图,如图4所示,该流程中包括以下步骤:

步骤S401,性能指标数据采集;

步骤S402,数据清洗分析;

步骤S403,异常阈值调整判定,判定是否需要对异常阈值进行调整。若是,则执行步骤S404;若否,则执行步骤S405;

步骤S404,调整异常阈值,并跳转执行步骤S403;

步骤S405,数据库异常判定,判定数据库是否发生异常事件;若是,执行步骤S406;若否,本方法结束。

步骤S406,判定发生异常事件的主体是否属于白名单;若是,本方法结束;若否,则执行步骤S407。

步骤S407,发送防御指令;

步骤S408,匹配防御动作接口;

步骤S409,执行防御动作;

步骤S410,判断是否执行防御动作;若是,则执行步骤S412;若否,则执行步骤S411;

步骤S411,对防御信息进行记录,本方法结束。

步骤S412,对防御信息进行告警推送,并记录日志,本方法结束。

图5示出了本发明实施例的数据库系统的异常处理的逻辑架构图。如图5所示,在监控层,进行监控调度、告警过滤以及日志上传的处理;在逻辑层,进行策略匹配、白名单过滤以及发送指令的处理;在执行层,进行指令执行、处理结果日志上传的处理;在日志层,进行日志清洗、日志分析以及结果下发的处理。

本发明实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的数据库系统的异常处理方法。

可执行指令具体可以用于使得处理器执行以下操作:

采集数据库系统的性能指标数据。

对性能指标数据进行分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新;分析结果包括各类异常检测项的信息值,异常阈值包括各类异常检测项的异常阈值。

若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新。

将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件。

若确定发生异常事件,按照与异常事件匹配的防御规则进行异常防御处理。

在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:

在确定发生异常事件之后,判断异常事件对应的主体是否属于主体白名单;若判断出异常事件对应的主体不属于主体白名单,则按照与异常事件匹配的防御规则进行异常防御处理。

在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:

为性能指标数据添加时间戳,以及根据性能指标数据的来源信息为性能指标数据添加标签;

根据性能指标数据的时间戳和标签,对性能指标数据进行归类存放;

将归类后的性能指标数据进行数据清洗处理;其中,数据清洗处理包括以下处理中的至少一个:无效数据的过滤处理、异动数据的沉淀处理;

对数据清洗后的各类数据进行采样分析,得到分析结果。

在一种可选的方式中,性能指标数据包括数据以下中的一项或多项:

数据库会话数据、数据库告警日志数据、数据库集群状态数据、数据库主机状态数据。

在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:将异常防御处理的防御信息进行告警输出;

在一种可选的方式中,防御信息具体包括以下信息中的一项或多项:触发异常防御处理的时间信息、异常防御的处理动作信息、异常防御处理的执行结果。

在一种可选的方式中,所述可执行指令使所述处理器执行以下操作:记录异常防御处理的防御信息;以及记录异常阈值的更新结果。

图6示出了本发明计算设备实施例的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。

如图6所示,该计算设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。

其中:处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。处理器602,用于执行程序610,具体可以执行上述用于计算设备的数据库系统的异常处理方法实施例中的相关步骤。

具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。

处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。

存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。

程序610具体可以用于使得处理器602执行以下操作:

采集数据库系统的性能指标数据。

对性能指标数据进行分析,将分析结果与异常阈值进行比对,根据比对结果判断是否需要对异常阈值进行更新;分析结果包括各类异常检测项的信息值,异常阈值包括各类异常检测项的异常阈值。

若判断出需要对异常阈值进行更新,对异常阈值进行更新,直到根据分析结果与更新后的异常阈值判断出不需要对更新后的异常阈值进行更新。

将各类异常检测项的信息值与各类异常检测项的更新后的异常阈值进行比较,确定是否发生异常事件。

若确定发生异常事件,按照与异常事件匹配的防御规则进行异常防御处理。

在一种可选的方式中,所述程序610使所述处理器602执行以下操作:

在确定发生异常事件之后,判断异常事件对应的主体是否属于主体白名单;若判断出异常事件对应的主体不属于主体白名单,则按照与异常事件匹配的防御规则进行异常防御处理。

在一种可选的方式中,所述程序610使所述处理器602执行以下操作:为性能指标数据添加时间戳,以及根据性能指标数据的来源信息为性能指标数据添加标签;

根据性能指标数据的时间戳和标签,对性能指标数据进行归类存放;

将归类后的性能指标数据进行数据清洗处理;其中,数据清洗处理包括以下处理中的至少一个:无效数据的过滤处理、异动数据的沉淀处理;

对数据清洗后的各类数据进行采样分析,得到分析结果。

在一种可选的方式中,性能指标数据包括数据以下中的一项或多项:

数据库会话数据、数据库告警日志数据、数据库集群状态数据、数据库主机状态数据。

在一种可选的方式中,所述程序610使所述处理器602执行以下操作:将异常防御处理的防御信息进行告警输出;

在一种可选的方式中,防御信息具体包括以下信息中的一项或多项:触发异常防御处理的时间信息、异常防御的处理动作信息、异常防御处理的执行结果。

在一种可选的方式中,所述程序610使所述处理器602执行以下操作:记录异常防御处理的防御信息;以及记录异常阈值的更新结果。

在此提供的算法或显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明实施例也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明实施例的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。

相关技术
  • 数据库系统的异常处理装置及方法
  • 分布式数据库系统中的异常处理系统及方法
技术分类

06120113098828