原文地址:https://oracle-base.com/articles/21c/attention-log-oracle-database-21c
原文作者:Tim Hall
多年来,数据库的告警日志变得非常庞大,很难从海量的告警信息中找到重要的日志内容。Attention 日志是 Oracle 21c 中引入的 JSON 格式文件,用于捕获关键事件,使系统诊断更加容易。
目录
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 ID:消息的唯一标识符。但是貌似没有出现在上述消息中,除非他们将“TIME”元素归类为唯一标识符。
- Attention type:消息的类型。可选值为
Error,Warning,Notification, orAdditional information,Attention 类型可以动态修改。我们似乎可以将 Attention 类型值和 Attention 主题结合起来,而不是拥有一个名为“ATTENTION_TYPE”的元素,其值与这些允许值之一匹配。但是我不清楚“可以动态修改”是什么意思。 - Message text:我认为这一定是来自信息元素的值。
- Urgency:可选值是
Immediate,Soon,Deferrable, orInformation。这看起来基本没问题,但是 Attention 日志中的允许值与列出的不匹配。如果他们可以列出确切的允许值,那就太好了。 - Scope:可能的值为
Session、Process、PDB Instance、CDB Instance、CDB Cluster、PDB(用于数据库重启无法修复的持久存储问题)或CDB(用于数据库重启无法修复的持久存储问题)。我认为这必须是“CLASS”元素。 - Target user:必须对此 Attention 日志消息采取行动的用户。可能的值为
Clusterware Admin、CDB admin或PDB admin。我不认为这是存在的,但也许它是由“CLASS”元素暗示的? - Cause:无需说明。
- Action:无需说明。
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”目录,但是里面没有文件。目前尚不清楚该目录的用途。
总的来说,我的理解是这是一个好主意,但我不确定我是否赞同这个方式,并且文档方面还需要大量补充修正。
📚 推荐阅读:DBA 学习之路
如果这篇文章对你有帮助,推荐访问我的 Oracle DBA 系统学习站点,涵盖 100 天完整学习路线:
- 🔧 Oracle 安装部署 · RMAN 备份恢复 · Data Pump 数据迁移
- 🏗️ RAC 高可用 · DataGuard 容灾 · 多租户架构
- 🔍 故障排查 · 升级迁移 · GoldenGate 数据同步
最后修改时间:2026-04-19 16:29:56
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




