自动诊断存储库 (ADR)是一个基于文件的存储库,用于存储数据库诊断数据,例如跟踪文件、警报日志、DDL 日志和运行状况监视器报告。
ADR 的主要特征包括:
-
统一目录结构
-
一致的诊断数据格式
-
统一工具集
上述特征使客户和 Oracle Support 能够跨多个 Oracle 实例、组件和产品关联和分析诊断数据。
ADR 位于数据库之外,这使得 Oracle 数据库能够在物理数据库不可用时访问和管理 ADR。数据库实例可以在创建数据库之前创建 ADR。
问题和事件
ADR主动跟踪数据库中的关键错误问题。
严重错误表现为内部错误,例如ORA-600
,或其他严重错误。每个问题都有一个问题键,它是描述问题的文本字符串。
当一个问题多次出现时,ADR 会为每次出现创建一个带时间戳的事件。事件由数字事件 ID唯一标识。发生事件时,ADR 会向Enterprise Manager发送事件警报。严重错误的诊断和解决通常从事件警报开始。
由于一个问题可能会在短时间内产生许多事件,因此 ADR 在达到某些阈值后对事件生成应用洪水控制。洪水控制的事件会生成警报日志条目,但不会生成事件转储。通过这种方式,ADR 会通知您正在发生严重错误,而不会因诊断数据而使系统过载。
ADR 结构
ADR 库可以包含多个 ADR 主目录,其中每个ADR 主目录都是 Oracle 产品或组件实例的所有诊断数据(跟踪、转储、警报日志等)的根目录。例如,在具有共享存储和 Oracle ASM 的 Oracle RAC 环境中,每个数据库实例和每个 Oracle ASM 实例都有自己的 ADR 主目录。
Oracle 数据库实例的 ADR 目录结构
如以下 Linux 示例所示,当您在创建数据库之前使用唯一 SID 和数据库名称启动实例时,Oracle 数据库默认创建 ADR 作为主机文件系统中的目录结构。SID 和数据库名称构成 ADR 主页中文件路径名称的一部分。
创建 ADR
% setenv ORACLE_SID osi % echo "DB_NAME=dbn" > init.ora % sqlplus / as sysdba . . . Connected to an idle instance. SQL> STARTUP NOMOUNT PFILE="./init.ora" ORACLE instance started. Total System Global Area 146472960 bytes Fixed Size 1317424 bytes Variable Size 92276176 bytes Database Buffers 50331648 bytes Redo Buffers 2547712 bytes SQL> COL NAME FORMAT a21 SQL> COL VALUE FORMAT a60 SQL> SELECT NAME, VALUE FROM V$DIAG_INFO; NAME VALUE --------------------- -------------------------------------------------------- Diag Enabled TRUE ADR Base /d1/3910926111/oracle/log ADR Home /d1/3910926111/oracle/log/diag/rdbms/dbn/osi Diag Trace /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/trace Diag Alert /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/alert Diag Incident /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/incident Diag Cdump /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/cdump Health Monitor /d1/3910926111/oracle/log/diag/rdbms/dbn/osi/hm Default Trace File /d1/3910926111/oracle/log ... osi/trace/osi_ora_6825.trc Active Problem Count 0 Active Incident Count 0
警报日志
每个数据库都有一个警报日志,它是一个 XML 文件,其中包含按时间顺序排列的数据库消息和错误日志。
警报日志内容包括:
-
所有内部错误 (
ORA-600
)、块损坏错误 (ORA-1578
) 和死锁错误 (ORA-60
) -
管理操作,例如 SQL*Plus 命令
STARTUP
、、、和SHUTDOWN
ARCHIVE LOG
RECOVER
-
与共享服务器和调度程序进程的功能有关的若干消息和错误
-
物化视图自动刷新期间的错误
Oracle 数据库使用警报日志作为在企业管理器 GUI 中显示信息的替代方法。如果管理操作成功,Oracle 数据库会在警报日志中写入一条“已完成”消息以及时间戳。
当您第一次启动数据库实例时,Oracle 数据库会在图 13-8alert
所示的子目录中创建警报日志,即使尚未创建数据库也是如此。此文件为 XML 格式。trace 子目录包含一个纯文本警报日志,其中一部分出现在以下示例中:
Fri Nov 02 12:41:58 2014 SMP system found. enable_NUMA_support disabled (FALSE) Starting ORACLE instance (normal) CLI notifier numLatches:3 maxDescs:189 LICENSE_MAX_SESSION = 0 LICENSE_SESSIONS_WARNING = 0 Initial number of CPU is 2 Number of processor cores in the system is 2 Number of processor sockets in the system is 2 Shared memory segment for instance monitoring created Picked latch-free SCN scheme 3 Using LOG_ARCHIVE_DEST_1 parameter default value as /disk1/oracle/dbs/arch Autotune of undo retention is turned on. IMODE=BR ILAT =10 LICENSE_MAX_USERS = 0 SYS auditing is disabled NOTE: remote asm mode is local (mode 0x1; from cluster type) Starting up: Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production With the Partitioning, Advanced Analytics and Real Application Testing options. . . . Using parameter settings in client-side pfile System parameters with nondefault values: processes = 100 sessions = 172
查询V$DIAG_INFO
告警日志。
DDL 日志
DDL 日志与警报日志具有相同的格式和基本行为,但仅包含 DDL 语句和详细信息。数据库将 DDL 信息写入自己的文件以减少警报日志中的混乱。
DDL日志记录是DDL文本,可以选择添加补充信息。每个DDL语句都有一条日志记录。DDL日志存储在ADR主目录的log/DDL子目录中。
跟踪文件
跟踪文件是包含用于调查问题的诊断数据的文件。此外,跟踪文件可以为调整应用程序或实例提供指导。
标签:ADR,Repository,数据库,Diagnostic,警报,DDL,Oracle,日志 From: https://www.cnblogs.com/wonchaofan/p/16758069.html