从版本 11g 开始,Oracle 数据库包括一个用于预防、检测、诊断和解决问题的高级故障可诊断性基础架构。本说明有助于了解称为自动诊断存储库的新 11g 基础结构。
范围和应用
受众:想要了解 ADR 的 Oracle 11g 用户和 DBA。
11g 了解自动诊断存储库。
11g有什么新功能?
在 11g 中,RDBMS 诊断数据已重新组织并存储在通用目录结构(自动诊断存储库 (ADR))中。ADR 是一种集中式目录结构,可以在其中查找跟踪文件、警报消息、事件转储、核心文件等。
自动诊断存储库 (ADR):
所有跟踪文件、核心文件和警报文件现在都组织到由自动诊断存储库 (ADR)
组成的目录结构中。
ADR 是数据库诊断数据的基于文件的存储库。它具有跨多个实例和多个产品的统一目录结构。
从版本 11g 开始,数据库、自动存储管理 (ASM)、群集就绪服务 (CRS) 以及其他 Oracle 产品或组件将所有诊断数据存储在 ADR 中。每个产品的每个实例都将诊断数据存储在其自己的 ADR 主目录下。
例如,在具有共享存储和 ASM 的 Oracle 真实应用程序群集环境中,每个数据库实例和每个 ASM 实例在 ADR 中都有一个主目录。ADR 的统一目录结构、跨产品和实例的一致诊断数据格式以及一套统一的工具使客户和 Oracle 支持部门能够跨多个实例关联和分析诊断数据。
问题和事件 :
问题:是数据库中
的严重错误,例如:ora-600,ora-7445,ora-4031等。
问题键 :每个问题都有一个问题键,这是一个文本字符串,其中包含错误代码(如 ORA 600),在某些情况下,还包括一个或多个错误参数。
例如: 'ORA 4030' , 'ORA 600 [ktfacht1-0]'
事件:是单次发生的一个问题。每个事件都有一个数字事件 ID。
ADR 位于何处:
ADR 的位置由 Oracle“diagnostic_dest”参数控制。
在“diagnostic_dest”参数中指定的路径定义 ADR 根目录 ADR BASE。
ADR 中的第一个子目录(位于<adr_base>目录下)始终命名为“diag”
例如,如果“diagnostic_dest”,因此<adr_base>被指定为“$ORACLE_HOME/log”,则期望找到子目录“$ORACLE_HOME/log/diag”。下面将<adr_home>。
任意数量的实例/组件可以共享同一个 ADR BASE。在ADR基地下,将有单独的ADR家园。
在 ADR BASE 下,<adr_home>的地址将类似于:
diag/<product_type>/<prod_id>/<instance_id>。
在每个 ADR 主目录内,可以找到多个子目录,每个子目录用于存储特定类型的诊断数据。在子目录中,您应该能够找到 TRACE、ALERT、INCIDENT、CDUMP 等 ADR
HOME 内容:
您将在 ADR HOME -
Alert 下找到以下目录: 警报目录包含 XML 警报日志
Cdump : 核心转储存储在此目录中
跟踪 :进程跟踪文件和警报.log存储在跟踪目录中。“Background_dump_dest”和“user_dump_dest”现在在11g中被忽略。现在,所有跟踪文件都将在“跟踪”目录中生成。
事件 :事件目录存储遇到严重错误时创建的转储文件。
每次发生严重错误(事件)都会被赋予其自己的事件目录,事件ID用于形成目录名称。
元数据 :元数据目录存储一系列包含诊断元数据的文件。
HM : hm 目录存储用于运行状况检查
的报告 Incpkg, ir, lck, sweep :这些目录包含内部可诊断性框架状态。
DIAGNOSTIC_DEST - 默认值 :
如果设置了环境变量ORACLE_BASE,则DIAGNOSTIC_DEST设置为ORACLE_BASE指定的目录。
如果未设置环境变量ORACLE_BASE,则DIAGNOSTIC_DEST设置为ORACLE_HOME/log
V$DIAG_INFO:
对于每个数据库,您可以查询v$diag_info以检查其ADR位置。
这向我们展示了ADR BASE ,ADR主页,跟踪文件位置,XML警报位置,事件转储位置,核心转储和运行状况监视器报告。
还为我们提供了默认的会话跟踪(对于当前会话)和问题的数量,在数据库中报告的事件。
ADR 命令解释器 (ADRCI) :
ADRCI 是访问 ADR 的命令行实用程序。
在操作系统命令提示符处输入以下命令:
%]ADRCI
该实用程序将启动并显示以下提示:
adrci>
有各种命令可以从“adrci”执行,以查看警报日志,跟踪文件,报告的事件等。
无需登录到 ADRCI,因为 ADR 中的数据仅用于诊断目的,而不是为了安全。ADR 数据仅通过 ADR 目录上的操作系统权限进行保护。