简介:
ADR
全称
Automatic Diagnostic Repository
Oracle 11g
推出了
ADR
,
ADR
存储所有组件
(DB
、
ASM
、
CRS
、监听等
)
的日志和跟踪日志,提高了数据库的诊断能力。
ADR
产品
/
组件类型子目录
Oracle
数据库的
ADR
主路径组件
例如,对于SID
和数据库唯一名称均等于
orclbi
的数据库,
ADR
主
目录将
位于以下位置:
ADR_base/diag/rdbms/orclbi/orclbi/
同样,单个实例环境中Oracle ASM
实例的
ADR
主
目录
为:
ADR_base/diag/asm/+asm/+asm/
ADR
主页子目录
在每个ADR
主目录中都有包含诊断数据的子目录。
表9-2
列出了其中一些子目录及其内容。
图9-2
说明了数据库实例的
ADR
的完整目录层次结构。
使用V$DIAG_INFO
视图查看
ADR
位置
V$DIAG_INFO
视图列出了当前
Oracle
数据库实例的所有重要
ADR
位置。
SELECT * FROM V$DIAG_INFO; INST_ID NAME VALUE ------- --------------------- ------------------------------------------------------------- 1 Diag Enabled TRUE 1 ADR Base /u01/oracle 1 ADR Home /u01/oracle/diag/rdbms/orclbi/orclbi 1 Diag Trace /u01/oracle/diag/rdbms/orclbi/orclbi/trace 1 Diag Alert /u01/oracle/diag/rdbms/orclbi/orclbi/alert 1 Diag Incident /u01/oracle/diag/rdbms/orclbi/orclbi/incident 1 Diag Cdump /u01/oracle/diag/rdbms/orclbi/orclbi/cdump 1 Health Monitor /u01/oracle/diag/rdbms/orclbi/orclbi/hm 1 Default Trace File /u01/oracle/diag/rdbms/orclbi/orclbi/trace/orcl_ora_22769.trc 1 Active Problem Count 8 1 Active Incident Count 20
下表描述了此视图显示的一些信息
使用V$DIAG_Critical_ERROR
视图查看严重错误
V$DIAG_CRITICAL_ERROR
视图列出了当前
Oracle
数据库版本中指定为关键错误的所有非内部错误。
该视图未列出内部错误,因为内部错误始终被指定为关键错误。
以下示例显示了Oracle Database 11g Release 2
(
11.2.0.2
)中
V$DIAG_CRITICAL_ERROR
视图的输出:
SELECT * FROM V$DIAG_CRITICAL_ERROR; FACILITY ERROR ---------- ---------------------------------------------------------------- ORA 7445 ORA 4030 ORA 4031 ORA 29740 ORA 255 ORA 355 ORA 356 ORA 239 ORA 240 ORA 494 ORA 3137 ORA 227 ORA 353 ORA 1578 ORA 32701 ORA 32703 ORA 29770 ORA 29771 ORA 445 ORA 25319 OCI 3106 OCI 3113 OCI 3135
表
9-4 V$DIAG_CRITICAL_ERROR
视图中的数据
ADRCI
介绍
自动诊断存储库命令解释器(
ADRCI
)实用程序是用于管理
Oracle
数据库诊断数据的命令行工具。
关于
ADR
命令解释器(
ADRCI
)实用程序
ADRCI
是一个命令行工具,它是
Oracle
数据库
11g
中引入的故障诊断基础结构的一部分。
ADRCI
使您能够:
1.
在自动诊断库(
ADR
)中查看诊断数据。
2.
查看
Health Monitor
报告。
3.
将事件和问题信息打包到
zip
文件中,以便传输到
Oracle
支持部门。
4.
诊断数据包括事件和问题描述、跟踪文件、转储、运行状况监视器报告、警报日志条目等。
5.
ADR
数据由
ADR
目录上的操作系统权限保护,因此无需登录
ADRCI
。
6.
ADRCI
具有丰富的命令集,可以在交互模式或脚本中使用。
登录
adcri
PATH
环境变量必须包含
ORACLE_HOME/bin
。
[oracle@cjcos02 ~]$ adrci ADRCI: Release 11.2.0.4.0 - Production on Sat Dec 3 15:53:28 2022 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ADR base = "/oracle/app/oracle" adrci>
查看帮助信息
adrci> help HELP [topic] Available Topics: CREATE REPORT ECHO EXIT HELP HOST IPS PURGE RUN SET BASE SET BROWSER SET CONTROL SET ECHO SET EDITOR SET HOMES | HOME | HOMEPATH SET TERMOUT SHOW ALERT SHOW BASE SHOW CONTROL SHOW HM_RUN SHOW HOMES | HOME | HOMEPATH SHOW INCDIR SHOW INCIDENT SHOW PROBLEM SHOW REPORT SHOW TRACEFILE SPOOL There are other commands intended to be used directly by Oracle, type "HELP EXTENDED" to see the list adrci> help extended HELP [topic] Available Topics: BEGIN BACKUP CD CREATE STAGING XMLSCHEMA CREATE VIEW DDE DEFINE DELETE DESCRIBE DROP VIEW END BACKUP INSERT LIST DEFINE MERGE ALERT MERGE FILE MIGRATE QUERY REPAIR SELECT SET COLUMN SHOW CATALOG SHOW DUMP SHOW SECTION SHOW TRACE SHOW TRACEMAP SWEEP UNDEFINE UPDATE VIEW
在批处理模式下使用ADRCI 批处理模式允许您一次运行一系列ADRCI 命令,而无需提示输入 。
[oracle@cjcos02 ~]$ adrci -help Syntax: adrci [-help] [script=script_filename] [exec = "one_command [;one_command;...]"] Options Description (Default) ----------------------------------------------------------------- script script file name (None) help help on the command options (None) exec exec a set of commands (None) -----------------------------------------------------------------
[oracle@cjcos02 ~]$ adrci exec="show homes" ADR Homes: diag/rdbms/cjc/cjc diag/clients/user_oracle/host_2119060462_80 diag/tnslsnr/cjcos02/listener
执行多个命令
[oracle@cjcos02 ~]$ adrci exec="show homes;show incident" ADR Homes: diag/rdbms/cjc/cjc diag/clients/user_oracle/host_2119060462_80 diag/tnslsnr/cjcos02/listener ADR Home = /oracle/app/oracle/diag/rdbms/cjc/cjc: ************************************************************************* INCIDENT_ID PROBLEM_KEY CREATE_TIME -------------------- ----------------------------------------------------------- ---------------------------------------- 20553 ORA 600 [kccsbck_first] 2022-10-15 10:40:54.717000 +08:00 ADR Home = /oracle/app/oracle/diag/clients/user_oracle/host_2119060462_80: ************************************************************************* 0 rows fetched ADR Home = /oracle/app/oracle/diag/tnslsnr/cjcos02/listener: ************************************************************************* 0 rows fetched
通过脚本执行命令
[oracle@cjcos02 ~]$ vi adrci.txt SET HOMEPATH diag/rdbms/orcl/orcl; SHOW ALERT -term [oracle@cjcos02 ~]$ adrci script=adrci.txt ...... 2022-09-03 21:14:05.698000 +08:00 03-SEP-2022 21:14:05 * service_update * cjc * 0 2022-09-03 21:14:32.708000 +08:00 03-SEP-2022 21:14:32 * service_update * cjc * 0
设置主目录 如果存在多个实例,可以指定特定的实例进行查看
adrci> show homes ADR Homes: diag/rdbms/orclbi/orclbi1 diag/rdbms/orclbi/orclbi2 adrci> set homepath diag/rdbms/orclbi/orclbi2 adrci> show homes ADR Homes: diag/rdbms/orclbi/orclbi2
查看警报日志 Alert Log 从Oracle Database 11g 开始,警报日志以 XML 格式文件和文本文件的形式编写。 您可以使用任何文本编辑器查看文件的格式,也可以运行ADRCI 命令查看 XML 格式的警报日志,其中省略了 XML 标记。 默认情况下,ADRCI 在默认编辑器中显示警报日志。 可以使用SET EDITOR 命令更改默认编辑器。
adrci> show alert Choose the alert log from the following homes to view: 1: diag/rdbms/cjc/cjc 2: diag/clients/user_oracle/host_2119060462_80 3: diag/tnslsnr/cjcos02/listener Q: to quit
查看告警日志常用命令 从末尾开始查看 adrci> show alert -tail 需要指定 HOMEPATH DIA-48449: Tail alert can only apply to single ADR home adrci> SET HOMEPATH diag/rdbms/cjc/cjc adrci> show alert -tail 查看末尾 10 行 adrci> show alert -tail 1 0 实时查看 adrci> show alert -tail -f adrci> show alert -tail 1 0 -f 将结果输出到文件 adrci> SPOOL /home/mysql/cjc1203.log adrci> SHOW ALERT -TERM adrci> SPOOL OFF 查询指定错误 adrci> set home diag/rdbms/cjc/cjc adrci> SHOW ALERT -P "MESSAGE_TEXT LIKE '%ORA-01110%'" 结果如下:
...... 2022-10-15 14:32:32.616000 +08:00 Errors in file /oracle/app/oracle/diag/rdbms/cjc/cjc/trace/cjc_j000_5143.trc: ORA-12012: error on auto execute of job 3 ORA-00376: file 5 cannot be read at this time ORA-01110: data file 5: '/oradata/cjc/cjctbs01.dbf' ORA-06512: at "CJC.TEST_PRO", line 4 ORA-06512: at line 1
查找跟踪文件 tracefile 查看所有跟踪文件 adrci> SHOW TRACEFILE 查看 mmon 相关跟踪文件 adrci> SHOW TRACEFILE %mmon% 列出指定目录下,包含 mmon 的所有文件名称 adrci> SHOW TRACEFILE %mmon% -PATH /oracle/app/oracle/diag/rdbms/cjc/cjc/trace 按最近修改时间进行排序 adrci> SHOW TRACEFILE -RT 列出了与事件编号1681 相关的所有跟踪文件的名称 adrci> SHOW TRACEFILE -I 1681 查看事件 Incidents adrci> SHOW INCIDENT
ADR Home = /oracle/app/oracle/diag/rdbms/cjc/cjc: ************************************************************************* INCIDENT_ID PROBLEM_KEY CREATE_TIME -------------------- ----------------------------------------------------------- ---------------------------------------- 20553 ORA 600 [kccsbck_first] 2022-10-15 10:40:54.717000 +08:00 1 rows fetched
生成更详细的报告 adrci> SHOW INCIDENT -MODE BRIEF adrci> SHOW INCIDENT -MODE DETAIL
ADR Home = /oracle/app/oracle/diag/rdbms/cjc/cjc: ************************************************************************* ********************************************************** INCIDENT INFO RECORD 1 ********************************************************** INCIDENT_ID 20553 STATUS ready CREATE_TIME 2022-10-15 10:40:54.717000 +08:00 PROBLEM_ID 1 CLOSE_TIME <NULL> FLOOD_CONTROLLED none ERROR_FACILITY ORA ERROR_NUMBER 600 ERROR_ARG1 kccsbck_first ERROR_ARG2 1 ERROR_ARG3 3760267893 ERROR_ARG4 <NULL> ERROR_ARG5 <NULL> ERROR_ARG6 <NULL> ERROR_ARG7 <NULL> ERROR_ARG8 <NULL> ERROR_ARG9 <NULL> ERROR_ARG10 <NULL> ERROR_ARG11 <NULL> ERROR_ARG12 <NULL> SIGNALLING_COMPONENT <NULL> SIGNALLING_SUBCOMPONENT <NULL> SUSPECT_COMPONENT <NULL> SUSPECT_SUBCOMPONENT <NULL> ECID <NULL> IMPACTS 0 PROBLEM_KEY ORA 600 [kccsbck_first] FIRST_INCIDENT 20553 FIRSTINC_TIME 2022-10-15 10:40:54.717000 +08:00 LAST_INCIDENT 20553 LASTINC_TIME 2022-10-15 10:40:54.717000 +08:00 IMPACT1 34668546 IMPACT2 0 IMPACT3 0 IMPACT4 0 KEY_NAME ProcId KEY_VALUE 19.1 KEY_NAME PQ KEY_VALUE (16777216, 1665801648) KEY_NAME Client ProcId KEY_VALUE oracle@cjcos02 (TNS V1-V3).6377_140737352873792 KEY_NAME SID KEY_VALUE 1.3 OWNER_ID 1 INCIDENT_FILE /oracle/app/oracle/diag/rdbms/cjc/cjc/trace/cjc_ora_6377.trc OWNER_ID 1 INCIDENT_FILE /oracle/app/oracle/diag/rdbms/cjc/cjc/incident/incdir_20553/cjc_ora_6377_i20553.trc 1 rows fetched
仅显示了事件1681 的详细事件报告 adrci> SHOW INCIDENT -MODE DETAIL -P "INCIDENT_ID=1681" 参考: https://docs.oracle.com/cd/E11882_01/server.112/e25494/diag.htm#ADMIN11007 https://docs.oracle.com/cd/E11882_01/server.112/e22490/adrci.htm#SUTIL700
