adrci简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昨天有人说起adrci(11g以后才有),我从网上找了点资料,有兴趣的可以看下:
用过11g的人都会发现,11g中alert文件以及trace文件的存放位置都发生了变化。

从原来的ORACLE_BASE/admin/INSTANCE_NAME目录变成了
ORACLE_BASE/diag/rdbms/DBNAME/INSTANCE_NAME目录。

Oracle之所以修改了这个跨越多个版本都没有修改过的参数设置,就是因为Oracle在11g中推出
了ADRCI。

这个工具可以统一管理ASM实例和多个数据库实例的alert文件、后台trace文件、用
户trace文件,dump文件等等。

而且这个工具可以快速查询错误相关的所有trace文件,并将这些文件打包到一个zip文件,以便
将问题相关的信息提供给Oracle的技术支持。

一.关于 ADR Command Interpreter (ADRCI)
关于Automatic Diagnostic Repository (ADR)
一个存放数据库诊断日志、跟踪文件的目录,称作ADR base,对应初始化参数DIAGNOSTIC_DEST,如果设置了ORACLE_BASE环境变量,
DIAGNOSTIC_DEST等于ORACLE_BASE,如果没有设置ORACLE_BASE,则等与ORACLE_HOME/log。

关于ADRCI
ADRCI Command-Line Utility 命令行工具,使用该工具查看ADR中的日志和跟踪信息,查看健康报告;
还可以将相关错误日志和信息打包成zip文件,以便提供给oracle support分析。

在ADRCI工具中可以执行很多命令,另外可以象sqlplus一样执行脚本。

二.开始使用ADRCI
1.运行ADRCI,$ORACLE_HOME/bin/adrci
代码:
[root@ractest ~]# su - oracle
[oracle@ractest ~]$ which adrci
~/11g/bin/adrci
[oracle@ractest ~]$ adrci
ADRCI: Release 11.1.0.4.0 - Beta on Thu Jul 12 05:39:29 2007
Copyright (c) 1982, 2006, Oracle. All rights reserved.
ADR base = "/home/oracle"
adrci>>
退出ADRCI,在adrci>>提示符下敲入exit或者quit ,回车大小写敏感:在adrci中命令大小写不
敏感
代码:
adrci>>SHOW traCEfile
diag/rdbms/orcl/orcl/trace/orcl_ora_20187.trc
diag/rdbms/orcl/orcl/trace/orcl_fbar_11388.
但使用搜索串的时候是敏感的,比如:
SHOW TRACEFILE %mmon%
2.如何得到帮助信息:
(1)得到adrci中的命令列
代码:
adrci>>help
HELP [topic]
Available Topics:
CREATE REPORT
......
(2)也可以使用adrci –help来得到adrci的命令使用和选项。

如:
代码:
[oracle@ractest ~]$ 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)
-----------------------------------------------------------------
(3)如何得到特定命令的帮助信息:
adrci>>HELP SHOW TRACEFILE
Usage: SHOW TRACEFILE [file1 file2 ...] [-rt | -t]
[-i inc1 inc2 ...] [-path path1 path2 ...]
…………….
3.使用ADRCI进行批处理命令或者脚本
(1) 使用exec选项,用分号将命令隔开
这里文档中有个小问题,文档中写ADRCI EXEC="COMMAND[; COMMAND]...",只能在windows平台这样写,在unix/linux平台下必须用小写来执行。

代码:
adrci>>show homes;show base; echo '20070712'
ADR Homes:
diag/rdbms/orcl/orcl
ADR base is "/home/oracle"
20070712
adrci>>
adrci>>
adrci>>exit
[oracle@ractest ~]$ adrci exec="show homes;echo '20070712';echo '';show base; " ADR Homes:
diag/rdbms/orcl/orcl
20070712
ADR base is "/home/oracle"
(2) 使用script选项。

adrci SCRIPT=adrci_script.txt
但shahand使用的beta版似乎还有些问题。

好像没有任何结果一样
代码:
[oracle@ractest ~]$ cat /tmp/a
show homes;
[oracle@ractest ~]$ adrci script=/tmp/a
[oracle@ractest ~]$ cat /tmp/a
fadsfdsa
[oracle@ractest ~]$ adrci script=/tmp/a
[oracle@ractest ~]$ cat /tmp/a
show trace;
[oracle@ractest ~]$ adrci script=/tmp/a
[oracle@ractest ~]$ cat /tmp/a
SET HOMEPATH /home/oracle/diag/rdbms/orcl/orcl;show trace;
[oracle@ractest ~]$ adrci script=/tmp/a
[oracle@ractest ~]$
三.使用ADRCI查看Oracle数据库后台报警日志(alert_sid.log)和跟踪文件
注意:以下大部分命令都需要用Ctrl+C 来结束,并返回到adrci命令行
1.查看完整alert信息:
adrci>>SHOW ALERT
2. 查看最新alert信息:
adrci>> SHOW ALERT –TAIL
查看最新20条alert信息:
adrci>> SHOW ALERT -TAIL 20
只查看600的错误
adrci>>SHOW ALERT -P "MESSAGE_TEXT LIKE '%ORA-600%'"
查看ORA-错误信息,注意这里的参数很好,比较人性化,可以帮助提供错误时间代码:
再用以下该命令的帮助:
代码:
adrci>>help show alert
Usage: SHOW ALERT [-p <predicate_string>] [-tail [num]] [-v]
[-file <alert_file_name>]
Purpose: Show alert messages.
Options:
[-p <predicate_string>]: The predicate string must be double quoted.
The fields in the predicate are the fields in the alert message's
XML schema. To get the field definitions, use command:
"describe&
3.查看跟踪文件
常用的有:
(1)列出所有跟踪文件: SHOW TRACEFILE
(2)模糊查询跟踪文件,比如某个进程的,注意这里区分大小写 SHOW TRACEFILE %mmon%
(3)可以指定某个路径 SHOW TRACEFILE %mmon% -PATH /home/steve/temp
(4)象ls那样按时间排序 SHOW TRACEFILE –RT
四.其他体验和说明
1.关于在adrci中执行os命令,可以直接在adrci中执行os命令。

所以当发出一个不存在的命令的时候,错误信息也就是系统返回的了。

虽然信息有点怪…明明在ksh下,却返回bash的错误。

代码:
adrci>>id
----------shahand偶然试出来的,居然可以直接执行
uid=10000(oracle) gid=1001(dba) groups=1001(dba),1002(oinstall)
context=user_u:system_r:unconfined_t
adrci>>host date
DIA-48415: Syntax error found in string [host date] at column [9]
adrci>>host
[oracle@ractest ~]$ exit
exit
adrci>>! -------------这样不行
/bin/bash: -c: line 0: syntax error near unexpected token `newline'
/bin/bash: -c: line 0: `!'
Additional information: 512
adrci>>! date -------------这就可以
Thu Jul 12 06:20:40 CST 2007
--------------------------------------------------------------------
[oracle@ractest ~]$ ksh
$ adrci
ADRCI: Release 11.1.0.4.0 - Beta on Thu Jul 12 06:28:14 2007
Copyright (c) 1982, 2006, Oracle. All rights reserved.
ADR base = "/home/oracle"
adrci>>abc
/bin/bash: abc: command not found
--------明明在ksh下,却返回bash的错误….
Additional information: 32512
adrci>>ksh
$ abc
ksh: abc: not found
<
2.确认了在adrci中使用的alert是log.xml,而非alert_orcl.log
对alert进行置空(> file),adrci不受影响;
对log.log进行置空,adrci返回的错误挺吓人的:internal error code,
跟00600一个风格啊。

应该是某些tag找不到,就报这么狠的错误
代码:
adrci>>show alert
ADR Home = /home/oracle/diag/rdbms/orcl/orcl:
**********************************************************
DIA-48001: internal error code, arguments: [17183],
[0x84B178C], [], [], [], [], [], []
DIA-48154: reached end of file for alert log
DIA-48102: encountered the end-of-file when reading&nb
3.在adrci中不能使用退格(backspace)怎么办
跟sqlplus一样,有下面几种选择:
用del键;
使用Ctrl+backspace;
使用Ctrl+u删除整行(bash下);
在os命令行下stty erase ^h (可以直接写到oracle的.profile/.bash_profile下面)。

相关文档
最新文档