资讯详情

[译] Oracle Database 21c 中的 Attention 日志

原文地址:https://oracle-base.com/articles/21c/attention-log-oracle-database-21c 原文作者:Tim Hall

多年来,数据库的报警日志变得非常大,很难从大量的报警信息中找到重要的日志内容。Attention 日志是 Oracle 21c 中引入的 JSON 用于捕获关键事件的格式文件,使系统更容易诊断。

目录

  • Attention 日志位置
  • Attention 日志内容
  • 从 SQL 查询 Attention 日志
  • 思考

Attention 日志位置

每个数据库都有一个 Attention 日志,Attention 可以查询日志的位置 V$DIAG_INFO 找到视图。下面的查询显示了来自 V$DIAG_INFO 所有视图信息:

set linesize 100 pagesize 20 column name format a25 column value format a70  select name, value from   v$diag_info order by 1;  NAME                      VALUE ------------------------- ---------------------------------------------------------------------- ADR Base                  /u01/app/oracle ADR Home                  /u01/app/oracle/diag/rdbms/cdb1/cdb1 Active Incident Count     2 Active Problem Count      1 Attention Log             /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/attention_cdb1.log Default Trace File        /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/cdb1_ora_12511.trc Diag Alert                /u01/app/oracle/diag/rdbms/cdb1/cdb1/alert Diag Cdump                /u01/app/oracle/diag/rdbms/cdb1/cdb1/cdump Diag Enabled              TRUE Diag Incident             /u01/app/oracle/diag/rdbms/cdb1/cdb1/incident Diag Trace                /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace Health Monitor            /u01/app/oracle/diag/rdbms/cdb1/cdb1/hm
ORACLE_HOME               /u01/app/oracle/product/21.0.0/dbhome_1

13 rows selected.

SQL>

通过设置查询条件,仅查询 Attention 日志路径:

select name, value
from   v$diag_info
where  name = 'Attention Log';

NAME                      VALUE
------------------------- ----------------------------------------------------------------------
Attention Log             /u01/app/oracle/diag/rdbms/cdb1/cdb1/trace/attention_cdb1.log

SQL>

Attention 日志内容

Attention 日志包含 JSON 格式的消息,以下是来自我的测试数据库的两条示例消息:

{ 
        
  "ERROR"        : "PMON (ospid: 2070): terminating the instance due to ORA error 12752",
  "URGENCY"      : "IMMEDIATE",
  "INFO"         : "Additional Information Not Available",
  "CAUSE"        : "The instance termination routine was called",
  "ACTION"       : "Check alert log for more information relating to instance termination rectify the error and restart the instance",
  "CLASS"        : "CDB Instance / CDB ADMINISTRATOR / AL-1003",
  "TIME"         : "2021-10-13T03:36:50.671+00:00"
}

{ 
        
  "NOTIFICATION" : "Starting ORACLE instance (normal) (OS id: 1146)",
  "URGENCY"      : "INFO",
  "INFO"         : "Additional Information Not Available",
  "CAUSE"        : "A command to startup the instance was executed",
  "ACTION"       : "Check alert log for progress and completion of command",
  "CLASS"        : "CDB Instance / CDB ADMINISTRATOR / AL-1000",
  "TIME"         : "2021-10-13T10:46:01.949+00:00"
}

我们可以看到,对于不同类型的消息,呈现的元素可能会有所不同。文档将这些分解如下,我用粗体添加了我自己的评论。

Attention 日志内容的解释后面是一个示例消息,该示例消息与文档中的解释或我在 21c 注意日志中看到的消息样式不匹配。

从 SQL 查询 Attention 日志

Attention 日志似乎没有专门的 V$ 视图。文档建议使用 V$DIAG_ALERT_EXT 视图,但这是 XML 告警日志的视图,而不是 Attention 日志,我们可以自己解析。

思考

以下是我在查看 Attention 日志时的一些思考:

  • Attention 日志的文档相当模糊和不准确。看起来它可能是针对数据库的 beta 版本编写的,并且没有更正以匹配生产版本。
  • 不同类型的消息可以包含不同的元素,这使得解析文件更加困难。在上面的示例中,我们有一个带有“ERROR”元素的消息,另一个带有“NOTIFICATION”元素的消息。如果他们为每种类型的消息保留共同的元素名称,并且只包含一个“TYPE”元素,那就更容易了。
  • 数据库应用特性说明 Attention 日志采用 JSON 和 XML 格式。要查找此语句,请在 此处 搜索“attention log”,然后单击生成的“Enhanced Diagnosability of Oracle Database”标题。在主文档中没有提到 XML 格式,只有 JSON 格式的文件。有两个隐藏参数(_diag_attn_log_format_error 和 _diag_attn_log_format_standard)看起来相关,但没有关于如何使用它们的文档,因此显然不支持它们。
  • Attention 日志文件位于我的数据库的“/u01/app/oracle/diag/rdbms/cdb1/cdb1/trace”目录中。还有一个“/u01/app/oracle/diag/rdbms/cdb1/cdb1/log/attention”目录,但是里面没有文件。目前尚不清楚该目录的用途。

总的来说,我的理解是这是一个好主意,但我不确定我是否赞同这个方式,并且文档方面还需要大量补充修正。

标签: cl21c1r0cba电容

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

 锐单商城 - 一站式电子元器件采购平台  

 深圳锐单电子有限公司