CN112559376A - 一种数据库故障的自动定位方法、装置及电子设备 - Google Patents
一种数据库故障的自动定位方法、装置及电子设备 Download PDFInfo
- Publication number
- CN112559376A CN112559376A CN202011559417.3A CN202011559417A CN112559376A CN 112559376 A CN112559376 A CN 112559376A CN 202011559417 A CN202011559417 A CN 202011559417A CN 112559376 A CN112559376 A CN 112559376A
- Authority
- CN
- China
- Prior art keywords
- fault
- node
- tree
- information
- event
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种数据库故障的自动定位方法、装置及电子设备,所述方法包括:获得所述数据库的故障告警信息;获得所述数据库在至少一项指标上的当前状态信息;获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
Description
技术领域
本申请涉及数据库技术领域,尤其涉及一种数据库故障的自动定位方法、装置及电子设备。
背景技术
数据库运维是数据中心数据库自动化运维建设的重要环节,而数据库排障又是数据中心安全稳定运行的切入点和风险点。
传统的数据库排障方案中,依赖于专家根据经验判断,因此,需要投入大量时间成本和人力成本,例如,需要协调多个部门涉及多个运维人员,发现、定位以及解决数据库故障的过程需要花费较长时间,导致排障效率较低。
因此,亟需一种能够快速实现数据库排障的技术方案。
发明内容
有鉴于此,本申请提供一种数据库故障的自动定位方法、装置及电子设备,用以解决现有技术中数据库排障效率较低的技术问题。
本申请提供了一种数据库故障的自动定位方法,包括:
获得所述数据库的故障告警信息;
获得所述数据库在至少一项指标上的当前状态信息;
获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;
在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;
根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
上述方法,优选的,获得与所述故障告警信息相对应的排障树,包括:
获得所述故障告警信息对应的故障类型;
在排障树集合中,获得与所述故障类型相匹配的排障树;所述排障树集合中包含有多个排障树,每个所述排障树分别对应于一个或多个故障类型。
上述方法,优选的,所述排障树中还包含有根节点,所述根节点中包含有所述排障树对应的故障标识;
其中,在排障树集合中,获得与所述故障类型相匹配的排障树,包括:
将所述故障类型与所述排障树集合中每个所述排障树的根节点进行比对,以得到具有所述故障标识与所述故障类型相匹配的根节点的排障树。
上述方法,优选的,所述异常事件节点至少包含有节点状态信息;
其中,在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点,包括:
将所述当前状态信息与所述排障树中的每个异常事件节点的节点状态信息进行比对,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个目标事件节点。
上述方法,优选的,将所述当前状态信息与所述排障树中的每个异常事件节点的节点状态信息进行比对,包括:
以所述排障树中的根节点的子节点对应的异常事件节点作为当前事件节点,将所述当前状态信息与所述当前事件节点的节点状态信息进行比对,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个中间层事件节点;
以所述中间层事件节点的子节点对应的异常事件节点作为新的当前事件节点,重新将所述当前状态信息与所述当前事件节点的节点状态信息进行比对,直到所述当前事件节点为所述排障树中的叶子节点,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个目标事件节点。
上述方法,优选的,所述目标事件节点中至少包含有所述目标事件节点对应的事件根因信息;
其中,根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,包括:
获得所述目标事件节点中所包含的事件根因信息;
根据所述事件根因信息,获得所述数据库中存在故障的目标对象;
根据所述目标对象,获得所述数据库针对所述故障告警信息的故障根因。
上述方法,优选的,所述目标事件节点中至少包含有所述目标事件节点对应的事件处理信息;
其中,在根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因之后,所述方法还包括:
根据所述事件处理信息,获得针对所述故障告警信息的故障处理信息,所述故障处理信息用于指示对所述故障根因对应的目标对象进行排障。
上述方法,优选的,所述排障树通过以下方式获得:
获得对应于同一所述故障标识的多个历史告警信息以及每个所述历史告警信息对应的异常事件信息;
根据所述异常事件信息,生成相应的异常事件节点;
基于所述异常事件节点,建立所述故障标识对应的排障树;其中,所述排障树中的异常事件节点之间具有有向边,所述有向边的指向根据所述异常事件节点之间的因果关系确定,且所述有向边表征所述异常事件节点之间的因果关系。
本申请还提供了一种数据库故障的自动定位装置,包括:
告警获得单元,用于获得所述数据库的故障告警信息;
状态获得单元,用于获得所述数据库在至少一项指标上的当前状态信息;
排障树获得单元,用于获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;
事件匹配单元,用于在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;
根因获得单元,用于根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
本申请还提供了一种电子设备,包括:
存储器,用于存储应用程序和所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现:获得所述数据库的故障告警信息,获得所述数据库在至少一项指标上的当前状态信息;获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
由上述方案可知,本申请提供的一种数据库故障的自动定位方法、装置及电子设备中,在获得到数据库的故障告警信息之后,通过获得数据库在至少一项指标上的当前状态信息,就可以在获得到与故障告警信息相对应的排障树之后,在包含有多个异常事件节点中获得到与当前状态信息相匹配的目标事件节点,进而根据这些目标事件节点所表征的异常就可以获得数据库针对故障告警信息的故障根因,以便于对数据库中的目标对象进行排障。可见,本申请中并不依赖于人工排障,而是通过包含有多个异常事件节点的排障树来实现故障告警的自动定位,由此避免人工参与所造成的排障耗时过长的情况,从而提高排障效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的一种数据库故障的自动定位方法的流程图;
图2-图4分别为本申请实施例中的应用示例图;
图5为本申请实施例一提供的一种数据库故障的自动定位方法的部分流程图;
图6为本申请实施例一提供的一种数据库故障的自动定位方法的另一流程图;
图7为本申请实施例一提供的一种数据库故障的自动定位方法的另一部分流程图;
图8为本申请实施例二提供的一种数据库故障的自动定位装置的结构示意图;
图9-图10分别为本申请实施例二提供的一种数据库故障的自动定位装置的另一结构示意图;
图11为本申请实施例三提供的一种电子设备的结构示意图;
图12-图18分别为本申请适用于对oracle数据库进行排障的示例图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参考图1,为本申请实施例一提供的一种数据库故障的自动定位方法的实现流程图,该方法可以适用于装载有数据库的电子设备中或者与装载有数据库的设备相连接的电子设备中,如本地或云端的计算机或服务器等。本实施例中的技术方案主要用于提高对数据库进行排障的效率。
具体的,本实施例中的技术方案可以包含以下步骤:
步骤101:获得数据库的故障告警信息。
其中,故障告警信息是指数据库在出现异常时所生成的信息,如平均活跃会话的告警信息等,该故障告警信息能够表征数据库在当前处于异常状态。具体实现中,本实施例中的故障告警信息可以以故障告警事件标识。例如,本实施例中可以对数据库的运行通过异常检测算法、告警规则、第三方告警标准化等方式在数据库出现异常时生成相应的故障告警事件。
在一种实现方式中,本实施例中的电子设备对其生成的故障告警信息进行读取;
或者,在另一种实现方式中,本实施例中的电子设备对装载有数据库的设备所生成的故障告警信息进行接收,具体可以通过与装载有数据库的设备之间的通信连接如WiFi或移动通信网络等接收到所传输来的故障告警信息。
步骤102:获得数据库在至少一项指标上的当前状态信息。
其中,数据库中的指标可以理解为数据库属性项目,数据库在指标上的当前状态信息是指数据库在各个属性上的状态信息,这里的指标是数据库所在电子设备上与数据库出现异常时间可能相关的任意一项或多项指标,如数据库的等待事件以及相关联的操作系统、存储、网络等指标。
具体的,本实施例中可以通过对数据库所在设备中的数据进行状态信息读取,以得到数据库在至少一个指标上的当前状态信息,这些状态信息能够更加全面的表征数据库当前的运行状态,以便于对数据库存在的故障或异常进行定位以及故障排除。
步骤103:获得与故障告警信息相对应的排障树。
其中,与故障告警信息相对应的排障树中至少包含有多个与故障告警信息相关联的异常事件节点。如图2中所示,排障树中包含与故障告警信息相关联的故障类型的信息,故障类型用于表征故障或异常出现时数据库运行场景的场景类型,如会话异常等信息,而在排障树中所包含的异常事件节点中可以包含有事件类型的信息,该事件类型的信息表征对应的异常事件节点所对应的异常事件所属的类型,具体可以用事件标识来表示,如主机异常、交换机异常或存储设备异常等类型,另外,每个异常事件节点中还可以包含有节点状态信息,该节点状态信息用于表征相应的异常事件节点对应的异常事件所呈现的异常状态,如主机CPU(Central Processing Unit)过载状态、交换机吞吐量下降状态、存储设备性能指标状态等,另外,每个异常事件节点中还可以包含有异常事件节点对应的异常事件的事件根因信息,该事件根因信息中可以包含有相应异常事件对应的存在故障的对象引起异常事件的信息,如数据库主机、光纤交换机或者存储设备等对象,另外,每个异常事件节点中还可以包含针对相应的异常事件的事件处理信息,该事件处理信息中可以包含有能够用于指示对事件根因信息中的对象进行排障的处理信息,如停止主机进程、切换流量或者重启oracle实例等处理信息。
具体的,本实施例中可以通过对故障告警信息进行类型解析,进而获得到与故障告警信息相匹配的排障树,产生故障告警信息的数据库的当前运行场景与所获得的排障树所对应的数据库运行场景相匹配。
例如,本实施例中在获得与故障告警信息相对应的排障树时,可以首先获得故障告警信息对应的故障类型,例如,通过对产生故障告警信息的数据库的当前运行场景进行场景解析,以得到故障告警信息对应的故障类型,如会话异常类型或者存储异常类型等;之后,在排障树集合中,获得与故障类型相匹配的排障树。
需要说明的是,排障树集合中可以包含有多个排障树,如图3中所示,排障树集合中的每个排障树分别对应于一个或多个故障类型,而每个排障树的结构均可以参考图2中的结构。由此,在获得到故障告警信息对应的故障类型之后,可以根据排障树集合中每个排障树所对应的故障类型这一映射关系,来筛选出与故障告警信息对应的故障类型相匹配的排障树。
具体实现中,本实施例中的排障树中可以包含有一个根节点和多个子节点,每个子节点即为排障树中所包含的异常事件节点,如图4中所示,根节点和多个子节点形成树结构。其中,在根节点中包含有排障树对应的故障类型的故障标识,如与会话场景类型相对应的排障树的根节点中记录有会话异常的故障标识,根节点可以包含有一个或多个子节点,而每个子节点还可以有自己的子节点,每个子节点分别对应于一个相应的异常事件节点,不同层上的异常事件节点之间关于各自对应的异常事件具有相应的因果关系,具体以树结构上的父子关系表征异常事件之间的因果关系。
基于此,本实施例中在获得与故障告警信息对应的故障类型相匹配的排障树时,具体可以通过以下方式实现:
将与故障告警信息对应的故障类型与排障树集合中每个排障树的根节点进行比对,以得到具有故障标识与故障类型相匹配的根节点的排障树,即为与故障告警信息对应的故障类型相匹配的排障树。
其中,本实施例中可以将故障告警信息对应的故障类型与排障树集合中的每个排障树的根节点中所包含的故障类型的故障标识进行比对,进而比对出与故障告警信息对应的故障类型相匹配的排障树。例如,将故障告警信息所对应的会话场景类型与排障树集合中的每个排障树中的根节点中所包含的故障类型的故障标识进行比对,就可以筛选到会话场景类型对应的排障树。
步骤104:在排障树中,获得与当前状态信息相匹配的至少一个目标事件节点。
其中,本实施例中可以将当前状态信息与排障树中每个异常事件节点分别进行比对,进而得到一个或多个目标事件节点,以此表征与数据库的当前运行场景相关联的异常事件,也就是说,在数据库的当前运行场景中已经发生了与排障树中所筛选出的目标事件节点相对应的异常事件。
基于以上排障树中的异常事件节点内包含有节点状态信息的实现,本实施例中在排障树中获得与当前状态信息相匹配的至少一个目标事件节点时,可以通过以下方式实现:
将当前状态信息与排障树中的每个异常事件节点的节点状态信息进行比对,以得到节点状态信息与当前状态信息相匹配的至少一个目标事件节点。
在具体实现中,本实施例中可以按照排障树中异常事件节点之间的父子关系所表征的异常事件节点之间的顺序,将当前状态信息依次与排障树中的每个异常事件节点的节点状态信息进行比对,以得到目标事件节点。具体实现步骤如图5中所示:
步骤501:以排障树中的根节点的子节点对应的异常事件节点作为当前事件节点。
以图4中的排障树为例,将排障树中的第一层子节点对应异常事件节点作为当前事件节点。
步骤502:将当前状态信息与当前事件节点的节点状态信息进行比对,以得到节点状态信息与当前状态信息相匹配的至少一个中间层事件节点。
以图4中的排障树为例,将排障树中的第一层子节点对应异常事件节点作为当前事件节点之后,将第一层子节点对应异常事件节点的节点状态信息与当前状态信息进行比对,进而筛选出第一层子节点中的节点状态信息与当前状态信息相匹配的异常事件节点,即第一层子节点中的中间层事件节点。
步骤503:以中间层事件节点的子节点对应的异常事件节点作为新的当前事件节点,返回重新执行步骤502,以重新将当前状态信息与当前事件节点的节点状态信息进行比对,直到当前事件节点为排障树中的叶子节点,以得到节点状态信息与当前状态信息相匹配的至少一个目标事件节点。
以图4中的排障树为例,在筛选出第一层子节点中的中间层事件节点之后,将第一层子节点中筛选出的中间层事件节点的子节点即第二层子节点对应的异常事件节点作为新的当前事件节点,再将当前状态信息与新的当前事件节点即第二层子节点对应的异常事件节点的节点状态信息进行比对,以得到第二层子节点中的节点状态信息与当前状态信息相匹配的中间层事件节点,之后,将第二层子节点中筛选出的中间层事件节点的子节点即第三层子节点对应的异常事件节点作为新的当前事件节点,再将当前状态信息与新的当前事件节点即第三层子节点对应的异常事件节点的节点状态信息进行比对,以得到第三层子节点中的节点状态信息与当前状态信息相匹配的中间层事件节点,以此类推,直到排障树中的叶子节点,即当前事件节点没有子节点进行比对,就可以得到排障树中作为叶子节点的目标事件节点,即与当前状态信息相匹配的异常事件节点。
需要说明的是,本实施例中可以将以上获取目标事件节点的过程生成二维或三维的图像或动画,进而在输出给运维人员后,生动的展示排障过程,以改善使用体验。
步骤105:根据目标事件节点,获得数据库针对故障告警信息的故障根因。
其中,本实施例中可以对目标事件节点对应的异常事件的事件信息进行解析,进而得到针对故障告警信息的故障根因,实际上就是目标事件节点对应的异常事件的事件根因。
具体的,基于以上异常事件节点中包含有相应异常事件的事件根因信息的实现,本实施例中可以通过以下方式实现故障根因的获得:
首先,获得目标事件节点中所包含的事件根因信息,例如,对目标事件节点中记录事件根因信息的字段进行信息读取,进而获得到事件根因信息,如交换机或数据库实例SQL等异常根因信息;
之后,根据事件根因信息,获得数据库中存在故障的目标对象,例如,可以对事件根因信息中对引起异常事件的对象进行解析或识别,进而获得到事件根因信息中所保证的存在故障的目标对象,如交换机或数据库实例SQL等对象;
最后,根据这些目标对象,获得数据库针对故障告警信息的故障根因,如交换机故障、实例故障等。
需要说明的是,本实施例中所获得到的目标事件起点可以有一个或多个,相应的,针对故障告警信息的故障根因可以有一个或多个,基于此,本实施例中可以将这些故障根因均进行输出。
进一步的,本实施例中可以按照一定的规则对多个故障根因进行排序后再进行输出。
由上述方案可知,本申请实施例一提供的一种数据库故障的自动定位方法中,在获得到数据库的故障告警信息之后,通过获得数据库在至少一项指标上的当前状态信息,就可以在获得到与故障告警信息相对应的排障树之后,在包含有多个异常事件节点中获得到与当前状态信息相匹配的目标事件节点,进而根据这些目标事件节点所表征的异常就可以获得数据库针对故障告警信息的故障根因,以便于对数据库进行排障。可见,本实施例中并不依赖于人工排障,而是通过包含有多个异常事件节点的排障树来实现故障告警的自动排障,由此避免人工参与所造成的排障耗时过长的情况,从而提高排障效率。
在一种实现方式中,基于以上异常事件节点中还包含有异常事件节点对应的时间处理信息的实现,本实施例中可以在获得到故障根因之后,进一步根据目标事件节点中所包含的目标事件节点对应的事件处理信息对数据库运维人员提供排障参考信息,具体的,在步骤105之后,本实施例中的方法还可以包含以下步骤,如图6中所示:
步骤106:根据目标事件节点中所包含的事件处理信息,获得针对故障告警信息的故障处理信息。
其中,故障处理信息用于指示对故障根因对应的目标对象进行排障。例如,故障处理信息中可以包含有“切换流量”或者“重启oracle实例”等信息,由此,在将故障处理信息进行输出之后,读取到这些故障处理信息的运维人员可以参考这些信息对数据库中故障根因对应的目标对象进行排障处理,例如,切换交换机流量或者重启oracle实例等。
另外,本实施例中还可以在获得到故障根因之后,一起将故障根因进行输出,以提示运维人员及时进行数据库排障。
在一种实现方式中,本实施例中的排障树可以通过以下方式获得,如图7中所示:
步骤701:获得对应于同一故障标识的多个历史告警信息以及每个历史告警信息对应的异常事件信息。
其中,历史告警信息是指数据库在历史运行场景中所产生的告警信息。需要说明的是,本实施例中可以对历史时段内的历史告警信息进行获取,例如,对过去的一年或6个月内数据库所产生的历史告警信息进行获取。
需要说明的是,本实施例中所获得到的历史告警信息可以是对应于多个故障标识的,如会话场景类型的故障标识或者数据存储场景类型的故障标识等等,本实施例中可以按照故障标识对所获得到的历史告警信息进行分组,进而分别对于划分到同一组即对应于同一故障标识的多个历史告警信息进行处理,进而生成该故障标识对应的排障树。
另外,本实施例中可以在获得到历史告警信息之后,可以通过异常检测算法、告警规则以及第三方告警标准化等方式生成每个历史告警信息对应的一个或多个异常事件信息,即数据库等待事件(event),如主机CPU过载事件、光纤交换机吞吐量下降事件、存储设备性能指标异常事件等等。这些异常事件信息中包含有相应异常事件对应的状态信息、类型信息、根因信息等内容。
步骤702:根据异常事件信息,生成相应的异常事件节点。
其中,本实施例中可以针对异常事件信息,生成相应异常事件的异常事件节点,并根据异常事件信息中所包含的各项内容,相应生成对应的异常事件节点的节点状态信息、事件类型信息、事件根因信息、事件处理信息等任意一项或任意多项的内容。
步骤703:基于异常事件节点,建立故障标识对应的排障树。
其中,排障树中的异常事件节点之间具有有向边,有向边的指向根据异常事件节点之间的因果关系确定,其中,有向边包含有两端:头部和尾部,有向边的头部也可以称为根部,即没有箭头的一端,其对应于作为原因的异常事件对应的节点,有向边的尾部即为有箭头的一端,其对应于作为结果的异常事件对应的节点。基于此,有向边的指向表征异常事件节点之间的因果关系。例如,有向边从作为子节点的异常事件节点指向作为父节点的异常事件节点或根节点,如图4中所示,以表征作为子节点的异常事件节点对应的异常事件为作为父节点的异常事件节点对应的异常事件的根因,作为父节点的异常事件节点对应的异常事件为作为子节点的异常事件节点对应的异常事件的结果。
具体的,本实施例中通过解析异常事件节点中的各项内容,确定异常事件节点对应的异常事件之间的因果关系,进而确定异常事件节点之间的因果关系,由此,建立异常事件节点之间的有向边,以表征异常事件之间在排障树中的因果关系,进而建立排障树。
需要说明的是,对于不同故障标识对应的排障树,均可以采用以上方案分别实现,从而将多个对应于不同故障标识的排障树组成排障树集合。
进一步的,本实施例中可以将排障树集合中的每个排障树进行输出,由此,运维人员可以通过查看排障树进行人工排障,以提高排障的准确率。
需要说明的是,随着时间的进行,数据库当前的故障告警信息会成为历史告警信息,在获得到该故障告警信息对应的故障根因之后,针对该故障告警信息对应的故障根因,将相应的异常事件即故障告警信息的事件更新到排障树中,以便于后续的故障定位以及排障。
参考图8,为本申请实施例二提供的一种数据库故障的自动定位装置的实现流程图,该装置可以适用于装载有数据库的电子设备中或者与装载有数据库的设备相连接的电子设备中,如本地或云端的计算机或服务器等。本实施例中的技术方案主要用于提高对数据库进行排障的效率。
具体的,本实施例中的装置可以包含以下单元:
告警获得单元801,用于获得所述数据库的故障告警信息;
状态获得单元802,用于获得所述数据库在至少一项指标上的当前状态信息;
排障树获得单元803,用于获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;
事件匹配单元804,用于在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;
根因获得单元805,用于根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
由上述方案可知,本申请实施例二提供的一种数据库故障的自动定位装置中,在获得到数据库的故障告警信息之后,通过获得数据库在至少一项指标上的当前状态信息,就可以在获得到与故障告警信息相对应的排障树之后,在包含有多个异常事件节点中获得到与当前状态信息相匹配的目标事件节点,进而根据这些目标事件节点所表征的异常就可以获得数据库针对故障告警信息的故障根因,以便于对数据库中的目标对象进行排障。可见,本实施例中并不依赖于人工排障,而是通过包含有多个异常事件节点的排障树来实现故障告警的自动定位,由此避免人工参与所造成的排障耗时过长的情况,从而提高排障效率。
在一种实现方式中,排障树获得单元803具体用于:获得所述故障告警信息对应的故障类型;在排障树集合中,获得与所述故障类型相匹配的排障树;所述排障树集合中包含有多个排障树,每个所述排障树分别对应于一个或多个故障类型。
可选的,所述排障树中还包含有根节点,所述根节点中包含有所述排障树对应的故障标识;
其中,排障树获得单元803在排障树集合中获得与所述故障类型相匹配的排障树时,具体用于:
将所述故障类型与所述排障树集合中每个所述排障树的根节点进行比对,以得到具有所述故障标识与所述故障类型相匹配的根节点的排障树。
在一种实现方式中,所述异常事件节点至少包含有节点状态信息;
其中,事件匹配单元804具体用于:将所述当前状态信息与所述排障树中的每个异常事件节点的节点状态信息进行比对,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个目标事件节点。
可选的,事件匹配单元804在将所述当前状态信息与所述排障树中的每个异常事件节点的节点状态信息进行比对时,具体用于:
以所述排障树中的根节点的子节点对应的异常事件节点作为当前事件节点,将所述当前状态信息与所述当前事件节点的节点状态信息进行比对,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个中间层事件节点;
以所述中间层事件节点的子节点对应的异常事件节点作为新的当前事件节点,重新将所述当前状态信息与所述当前事件节点的节点状态信息进行比对,直到所述当前事件节点为所述排障树中的叶子节点,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个目标事件节点。
在一种实现方式中,所述目标事件节点中至少包含有所述目标事件节点对应的事件根因信息;
其中,根因获得单元805具体用于:获得所述目标事件节点中所包含的事件根因信息;根据所述事件根因信息,获得所述数据库中存在故障的目标对象;根据所述目标对象,获得所述数据库针对所述故障告警信息的故障根因。
在一种实现方式中,所述目标事件节点中至少包含有所述目标事件节点对应的事件处理信息;
其中,本实施例中的装置还包含以下结构,如图9中所示:
处理获得单元806,用于在根因获得单元805根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因之后,根据所述事件处理信息,获得针对所述故障告警信息的故障处理信息,所述故障处理信息用于指示对所述故障根因对应的目标对象进行排障。
在一种实现方式中,本实施例中的装置还包含以下结构,如图10中所示:
排障树生成单元807,用于获得对应于同一所述故障标识的多个历史告警信息以及每个所述历史告警信息对应的异常事件信息;根据所述异常事件信息,生成相应的异常事件节点;基于所述异常事件节点,建立所述故障标识对应的排障树;其中,所述排障树中的异常事件节点之间具有有向边,所述有向边的指向根据所述异常事件节点之间的因果关系确定,且所述有向边表征所述异常事件节点之间的因果关系。
需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。
参考图11,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以为装载有数据库的电子设备中或者与装载有数据库的设备相连接的电子设备,如本地或云端的计算机或服务器等。本实施例中的技术方案主要用于提高对数据库进行排障的效率。
具体的,本实施例中的电子设备可以包含以下结构:
存储器1101,用于存储应用程序和所述应用程序运行所产生的数据;
处理器1102,用于执行所述应用程序,以实现:获得所述数据库的故障告警信息,获得所述数据库在至少一项指标上的当前状态信息;获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
由上述方案可知,本申请实施例三提供的一种电子设备中,在获得到数据库的故障告警信息之后,通过获得数据库在至少一项指标上的当前状态信息,就可以在获得到与故障告警信息相对应的排障树之后,在包含有多个异常事件节点中获得到与当前状态信息相匹配的目标事件节点,进而根据这些目标事件节点所表征的异常就可以获得数据库针对故障告警信息的故障根因,以便于对数据库中的目标对象进行排障。可见,本实施例中并不依赖于人工排障,而是通过包含有多个异常事件节点的排障树来实现故障告警的自动定位,由此避免人工参与所造成的排障耗时过长的情况,从而提高排障效率。
以下以金融行业中商业银行的oracle数据库的自动排障为例,对本申请的技术方案进行举例说明,如下:
首先,如下表1,为本申请中所涉及的缩略语和关键术语的定义内容:
表1术语
本申请的发明人经过实际应用发现:Oracle数据库运维是数据中心数据库自动化运维建设的重要环节,数据库排障又是数据中心安全稳定运行的切入点和风险点,商业银行在数据中心的建设和运维方面虽然已经积累了大量的实践经验,但数据库运维仍然面临场景复杂、变更操作风险高、自动化和智能化效率低的难题。尽管运维管理技术在不断进步,但目前仍有很多数据库运维开发人员并没有真正解脱出来,在传统运维中,对数据库故障仍然依靠人工分析定位,缺少自动排障能力。商业银行数据中心传统的数据库排障依然无法脱离人工定位,给应急处置工作带来挑战。
另外,本申请的发明人发现:传统运维缺乏全局故障根源定位决策支持,网络、基础、存储、系统、应用、数据库等监控数据分散,故障相关数据分析链条复杂,信息同步效率低,定位能力较差;需要投入大量时间、人力成本,例如,运维中需要协调5个以上部门涉及10多个运维人员,从发现到定位解决最长花费1小时,且专家依赖,重复人工投入,定位排障经验无法自动化,应急处置效率和准确性无法保证。
为解决以上难题,本申请的发明人经过进一步研究提出一种基于规则的Oracle数据库自动排障系统,旨在提高应急分析效率,提高数据库排障效率。
首先,本申请的实现方案可以适用于商业银行数据中心,并基于此提供一种基于规则的Oracle数据库自动排障系统,具备Oracle数据库专家经验的自动应用,实现快速排障。
首先,自动排障系统:
基于Oracle数据库运维专家经验,进行总结梳理如图12所示,包含有多个对应于会话场景的历史告警信息,每个历史告警信息对应有多个异常事件信息,如平均等待时间异常、交换机异常、存储异常、CPU使用率异常、SQL异常、主机异常等,异常事件之间存在因果关系,每个异常事件分别在一个或多个指标上具有状态信息,如吞吐量、响应时间、等待时间、CPU使用率值等信息,这些状态信息分别对应有专家经验得出的事件根因信息。
(1)排障视图说明:
依照前面的人工排障经验数据构建有向图,即排障树,人工排障过程中每一个事件或排查动作作为一个节点;节点之间的因果关系作为一条有向边。拥有一个根节点,作为触发式排障的起始节点。针对Oracle数据库的排障视图实例如图13所示。
其中,在排障树中的根节点中包含有故障标识,以表征该故障树对应的数据库运行场景的类型,如会话场景类型等;在排障树中的每个子节点中均包含有事件类型的信息,如主机异常或交换机异常等信息;在排障树的每个字节点中还包含有节点状态信息,如主机CPU过载状态、交换机吞吐量下降状态、存储设备性能指标状态等;在排障树中的每个子节点中还可以包含有异常事件的事件根因信息,如数据库主机、光纤交换机或者存储设备等对象引起异常事件的信息;在排障树中的每个子节点还可以包含针对相应的异常事件的事件处理信息,如停止主机进程、切换流量或者重启oracle实例等处理信息。
(2)排障树中的事件平台说明:
通过异常检测算法、告警规则、第三方告警标准化等方式生成的运维事件(Event)。事件代表排障过程中需注意的异常现象,作为节点存在于排障树中,具体结构如表2所示:
表2事件结构定义
排障树中的事件产生的逻辑如图14所示:
首先,在数据源如指标、日志以及告警中读取出相应的数据,进而通过指标异常检测、日志异常检测、告警标准化以及其他程序进行数据处理,进而通过事件管理中的事件标准化以及事件聚合,从而生成相应的事件,以形成排障树中的异常事件节点。
(3)排障过程中的事件平台说明:
根据已经发布的各个不同故障标识对应的排障树,自动检查当前的故障告警事件对应的排障树中的各个节点对应的异常事件是否发生,进而更新排障树上各个节点的状态;根据排障树各个节点的状态信息,如针对数据库的当前状态信息,比对哪些节点的状态与当前状态信息相匹配,进而判断出哪些节点的事件已经发生,哪些节点的事件没有发生,之后,再根据相应的算法给出根因推荐,将匹配出的发生的事件对应的根因进行输出。具体的实现流程如图15所示。
其中,结合图16中所示的整体架构图,本申请实现的系统中包含数据平台、事件平台、排障视图、排障引擎和图形化界面等模块,其中,排障视图模块中包含配置事件和配置规则的模块,排障引擎中包含有自动排障的模块,图形化界面模块中包含有排障树显示模块和根因分显示模块等,基于此,对图15中所示的流程进行说明:
首先,在数据平台上保存有历史数据如指标、日志以及变更信息等,还保存有数据库的当前状态信息,如指标、日志等;
之后,在事件平台上,对历史告警信息以及当前的故障告警信息分别进行事件标准化,针对历史告警信息生成相应的异常事件,用于生成相应排障树中的节点,针对当前的故障告警信息,生成故障告警事件;
然后,在数据库中产生故障告警信息,并在事件平台上产生新的故障告警事件之后,通过拉取事件(2)到排障引擎的控制中心中,即触发排障分析,就可以通过事件规则库中加载的排障树(1)生成并发布排障任务(3),在任务执行模块中基于任务参数(4)如状态信息等进行排障树节点排查,从而得到排障结果,并汇报给控制中心(5),控制中心根据排障结果对事件平台中的事件进行更新(6),进一步更新到排障树中。
基于此,本实施例中还可以通过图形化界面将排障树进行显示,并在根因分析完成后,将根因即故障根因进行显示。
以上本申请所实现的整个排障系统实现方法相关技术如表3所示:
表3开发实现技术清单
图形化界面 | Vue.js |
排障视图 | MongoDB |
排障引擎 | 自研组件 |
事件平台 | 自研组件 |
数据平台 | ES、InfluxDB |
综上,本申请所实现的系统的具体逻辑流程图如图17中所示。
其中,系统在初期对读取到的指标数据、告警数据、配置管理数据库CMDB(Configuration Management Database)数据、ES(elasticsearch)数据等进行数据标准化,如通过订阅聚合将指标数据存储到数据库中的influxdb集群,将告警数据通过定期读取存储到数据库中的mongo集群,将CMDB等数据通过定期同步存储到数据库中的mongo集群;
之后,系统将指标数据读取到后端服务的接口中进行排障树生成以及排障树比对,将告警数据读取到后端服务中的接口中参与到告警触发分析,以得到排障数据以及告警的根因分析结果,进一步的,可以根据根因分析的结果对排障树进行增量配置,以便于后续进行排障。
结合图17中所示的系统,本申请中的排障引擎的逻辑实现如图18中所示:
首先,在接收到告警信息之后,获得告警信息对应的排障树,之后,并行执行排障树中每个节点的状态对比以及检测,从而得到比对结果,最后,根据结果执行根因分析,得到故障根因。
可见,本申请中实现了Oracle数据库专家经验存储、故障识别、排障推理等自动化应用,也实现了Oracle数据库排障流程化、可视化、自动化,加速智能排障过程。因此,本申请中基于数据中心数据库运维排障,实现汇集数据,自动发现异常,定位根因。而且,本申请中汇集所有监控数据,自动预测并检测异常,及时告警;另外,本申请中自动定位故障根源指标、业务维度、日志异常,提供决策支持。
综上,本申请中自动化分析定位排障,降本增效,通过取代大量重复手工工作,自动化分钟级故障发现与根因定位;而且,基于运维图谱的智能排障,专家经验可复用,自动化排障,提高排障效率。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据库故障的自动定位方法,其特征在于,包括:
获得所述数据库的故障告警信息;
获得所述数据库在至少一项指标上的当前状态信息;
获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;
在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;
根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
2.根据权利要求1所述的方法,其特征在于,获得与所述故障告警信息相对应的排障树,包括:
获得所述故障告警信息对应的故障类型;
在排障树集合中,获得与所述故障类型相匹配的排障树;所述排障树集合中包含有多个排障树,每个所述排障树分别对应于一个或多个故障类型。
3.根据权利要求2所述的方法,其特征在于,所述排障树中还包含有根节点,所述根节点中包含有所述排障树对应的故障标识;
其中,在排障树集合中,获得与所述故障类型相匹配的排障树,包括:
将所述故障类型与所述排障树集合中每个所述排障树的根节点进行比对,以得到具有所述故障标识与所述故障类型相匹配的根节点的排障树。
4.根据权利要求1所述的方法,其特征在于,所述异常事件节点至少包含有节点状态信息;
其中,在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点,包括:
将所述当前状态信息与所述排障树中的每个异常事件节点的节点状态信息进行比对,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个目标事件节点。
5.根据权利要求4所述的方法,其特征在于,将所述当前状态信息与所述排障树中的每个异常事件节点的节点状态信息进行比对,包括:
以所述排障树中的根节点的子节点对应的异常事件节点作为当前事件节点,将所述当前状态信息与所述当前事件节点的节点状态信息进行比对,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个中间层事件节点;
以所述中间层事件节点的子节点对应的异常事件节点作为新的当前事件节点,重新将所述当前状态信息与所述当前事件节点的节点状态信息进行比对,直到所述当前事件节点为所述排障树中的叶子节点,以得到所述节点状态信息与所述当前状态信息相匹配的至少一个目标事件节点。
6.根据权利要求1所述的方法,其特征在于,所述目标事件节点中至少包含有所述目标事件节点对应的事件根因信息;
其中,根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,包括:
获得所述目标事件节点中所包含的事件根因信息;
根据所述事件根因信息,获得所述数据库中存在故障的目标对象;
根据所述目标对象,获得所述数据库针对所述故障告警信息的故障根因。
7.根据权利要求1所述的方法,其特征在于,所述目标事件节点中至少包含有所述目标事件节点对应的事件处理信息;
其中,在根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因之后,所述方法还包括:
根据所述事件处理信息,获得针对所述故障告警信息的故障处理信息,所述故障处理信息用于指示对所述故障根因对应的目标对象进行排障。
8.根据权利要求1所述的方法,其特征在于,所述排障树通过以下方式获得:
获得对应于同一所述故障标识的多个历史告警信息以及每个所述历史告警信息对应的异常事件信息;
根据所述异常事件信息,生成相应的异常事件节点;
基于所述异常事件节点,建立所述故障标识对应的排障树;其中,所述排障树中的异常事件节点之间具有有向边,所述有向边的指向根据所述异常事件节点之间的因果关系确定,且所述有向边表征所述异常事件节点之间的因果关系。
9.一种数据库故障的自动定位装置,其特征在于,包括:
告警获得单元,用于获得所述数据库的故障告警信息;
状态获得单元,用于获得所述数据库在至少一项指标上的当前状态信息;
排障树获得单元,用于获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;
事件匹配单元,用于在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;
根因获得单元,用于根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
10.一种电子设备,其特征在于,包括:
存储器,用于存储应用程序和所述应用程序运行所产生的数据;
处理器,用于执行所述应用程序,以实现:获得所述数据库的故障告警信息,获得所述数据库在至少一项指标上的当前状态信息;获得与所述故障告警信息相对应的排障树,所述排障树中至少包含有多个异常事件节点;在所述排障树中,获得与所述当前状态信息相匹配的至少一个目标事件节点;根据所述目标事件节点,获得所述数据库针对所述故障告警信息的故障根因,所述故障根因至少包含存在故障的目标对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011559417.3A CN112559376A (zh) | 2020-12-25 | 2020-12-25 | 一种数据库故障的自动定位方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011559417.3A CN112559376A (zh) | 2020-12-25 | 2020-12-25 | 一种数据库故障的自动定位方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112559376A true CN112559376A (zh) | 2021-03-26 |
Family
ID=75034221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011559417.3A Pending CN112559376A (zh) | 2020-12-25 | 2020-12-25 | 一种数据库故障的自动定位方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112559376A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113139658A (zh) * | 2021-04-23 | 2021-07-20 | 上海中通吉网络技术有限公司 | 基于变更和告警事件流处理故障的管道理论方法 |
CN113434193A (zh) * | 2021-08-26 | 2021-09-24 | 北京必示科技有限公司 | 根因变更的定位方法和装置 |
CN113849486A (zh) * | 2021-11-30 | 2021-12-28 | 云和恩墨(北京)信息技术有限公司 | 故障处理方法、其装置、电子设备及计算机可读存储介质 |
CN113886130A (zh) * | 2021-10-21 | 2022-01-04 | 深信服科技股份有限公司 | 一种处理数据库故障的方法,装置及介质 |
CN114285725A (zh) * | 2021-12-24 | 2022-04-05 | 中国电信股份有限公司 | 网络故障确定方法及装置、存储介质及电子设备 |
WO2023061227A1 (zh) * | 2021-10-12 | 2023-04-20 | 华为技术有限公司 | 数据库运维方法和装置 |
-
2020
- 2020-12-25 CN CN202011559417.3A patent/CN112559376A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113139658A (zh) * | 2021-04-23 | 2021-07-20 | 上海中通吉网络技术有限公司 | 基于变更和告警事件流处理故障的管道理论方法 |
CN113434193A (zh) * | 2021-08-26 | 2021-09-24 | 北京必示科技有限公司 | 根因变更的定位方法和装置 |
WO2023061227A1 (zh) * | 2021-10-12 | 2023-04-20 | 华为技术有限公司 | 数据库运维方法和装置 |
CN113886130A (zh) * | 2021-10-21 | 2022-01-04 | 深信服科技股份有限公司 | 一种处理数据库故障的方法,装置及介质 |
CN113849486A (zh) * | 2021-11-30 | 2021-12-28 | 云和恩墨(北京)信息技术有限公司 | 故障处理方法、其装置、电子设备及计算机可读存储介质 |
CN114285725A (zh) * | 2021-12-24 | 2022-04-05 | 中国电信股份有限公司 | 网络故障确定方法及装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112559376A (zh) | 一种数据库故障的自动定位方法、装置及电子设备 | |
CN111158977B (zh) | 一种异常事件根因定位方法及装置 | |
KR20210019564A (ko) | 운영 유지 시스템 및 방법 | |
CN112395170A (zh) | 智能故障分析方法、装置、设备及存储介质 | |
US11201865B2 (en) | Change monitoring and detection for a cloud computing environment | |
KR20180108446A (ko) | Ict 인프라 관리 시스템 및 이를 이용한 ict 인프라 관리 방법 | |
CN113360722B (zh) | 一种基于多维数据图谱的故障根因定位方法及系统 | |
CN112559237B (zh) | 运维系统排障方法、装置、服务器和存储介质 | |
CN113282461A (zh) | 传输网的告警识别方法和装置 | |
CN112446511A (zh) | 一种故障处置方法、装置、介质及设备 | |
CN109669844A (zh) | 设备故障处理方法、装置、设备和存储介质 | |
CN115809183A (zh) | 基于知识图谱的信创终端故障发现及处置的方法 | |
CN113468159A (zh) | 一种数据应用全链路管控方法及系统 | |
CN114567538A (zh) | 告警信息处理方法及装置 | |
CN113542017A (zh) | 基于网络拓扑和多指标的一种网络故障定位方法 | |
CN115237717A (zh) | 一种微服务异常检测方法和系统 | |
CN111865673A (zh) | 一种自动化故障管理方法、装置及系统 | |
CN114647558A (zh) | 一种日志异常检测的方法和装置 | |
CN114202206A (zh) | 系统异常根因分析方法及装置 | |
CN112803587A (zh) | 一种基于诊断决策库的自动化设备状态智能巡视方法 | |
CN116468423A (zh) | 一种运维应急协同方法、系统和终端设备 | |
CN111414355A (zh) | 一种海上风电场数据监测存储系统及方法、装置 | |
CN110928663A (zh) | 一种跨平台多线程监控方法及装置 | |
CN110609761A (zh) | 确定故障源的方法、装置、存储介质和电子设备 | |
CN107682173B (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 |