首页 > 数据库 > 国内数据库 > YashanDB故障诊断概念
为便于诊断和解决问题,YashanDB引入了三个概念:故障、问题和事件。
故障是YashanDB运行过程中可能出现的一些严重错误,由数据库内部定义。可以通过视图V$DIAG_FAULT查看相关故障的信息。
问题是数据库运行过程中真实发生的故障,相同的故障可能会记录多个问题,相同故障的问题是通过问题键值进行区分的。可以通过视图V$DIAG_PROBLEM查看数据库运行过程中出现的问题。
事件是单次出现的问题,数据库运行过程中,不同的会话在不同的时间可能产生相同的问题,数据库会创建多个事件,每个事件都有唯一标识的ID用于区分,也会记录当前会话的ID。可以通过视图V$DIAG_INCIDENT查看数据库运行过程中出现的严重错误,和获取更多的诊断数据,例如创建时间、会话ID、故障详细描述等。
当问题(严重错误)多次发生时,系统将为每次问题创建一个事件。 这些事件将在加上时间戳后,存储在自动诊断存储库中。每个事件都由事件ID标识,该ID在自动诊断存储库中是唯一的。
发生一个事件时,数据库将执行如下操作:
一个问题可能会在短时间内产生数十个或数百个事件,这将导致系统中生成过多的诊断数据,占用 自动诊断存储库中的太多空间,并可能减慢诊断和解决问题的速度。由于这些原因,故障诊断机制将在达到洪水阈值后控制事件的生成。
受到洪水控制的事件只记录告警日志,不再dump事件。洪水控制事件提供了一种通知用户正在发生严重错误的方法,但不会存在诊断数据过载的现象。
事件洪水控制的阈值水平是预先确定的,无法更改。它们定义如下:
Note: 事件洪水控制后不会再记录事件,但是会记录事件的防洪累计次数。 作为DBA,应时常排查是否有新的事件产生,及时定位解决问题。 事件和问题诊断数据的存储上限为1000000条,如果个数超过该上限,新的诊断数据会覆盖旧的诊断数据。
YashanDB提供一种机制,在数据库进程出现故障宕机前,收集进程运行堆栈等信息,将诊断数据dump到自动诊断存储库中,这种主动诊断数据类似于飞机“黑匣子”飞行记录仪收集的数据。
Note: 当收集到 “黑匣子” 诊断数据,请打包诊断数据并及时联系我们的技术支持。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3078637/ ,如需转载,请注明出处,否则将追究法律责任。