#故障诊断

YashanDB提供故障诊断架构,用于收集和管理诊断数据,从而诊断和解决数据库的问题。

故障诊断架构有助于预防、检测、诊断和解决问题。发生严重错误时,将为其分配一个事件编号,并立即捕获该错误的诊断数据并使用该编号进行标记,然后将诊断数据存储在自动诊断存储库中,以后可以根据事件编号检索并进行分析。

故障诊断架构的目标如下:

  • 首次故障诊断
  • 故障预防
  • 检测到故障后报错,防止数据进一步损坏
  • 减少故障诊断的时间
  • 减少故障解决的时间

实现这些目标的关键技术如下:

  • 事件警报:对于严重的错误,会在第一时间收集诊断数据,分配事件编号标识,存储在自动诊断存储库中,以便问题的追踪和解决。
  • 故障检测及响应:当数据库检测到错误时,会采取一定的措施限制损坏或故障中断。例如:归档磁盘空间不足时,记录告警日志,数据库被设置为故障状态,避免用户执行业务卡住时无法感知错误。DBA需要及时介入处理相应故障,恢复数据库状态。
  • 健康检查:检测到严重错误后,数据库会自动触发运行一个或多个健康检查任务,对严重错误执行更深入的分析,健康检查的结果存储到自动诊断存储库中。单个健康检查会检查数据块损坏、redo坏块等。DBA也可以定期或按需手动调用这些健康检查。
  • 自动巡检:实时监控数据库的一些组件,检测到严重错误时,立即上报或自动修复,及时修复避免引起更严重的错误,例如数据文件监控等。
  • 手动捕获数据——dump:允许用户手动执行dump命令,将系统内部结构信息转储到trace文件中,分析这些信息以便判断故障问题。
  • 自动捕获数据——“黑匣子”:在数据库进程出现故障宕机前,自动收集进程运行堆栈等信息。
  • 追踪事件:YashanDB定义了一系列追踪事件,用户可按需选择追踪不同的事件从而了解SQL执行信息,助力于性能观测与故障定位。
pdf-btn 下载文档 copy-btn 复制链接
edit-icon
反馈
coperate-icon
coperate
合作
communication-icon
communicate
交流