(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下面)
4.另外adrci一个重要的功能是查看Incident和对Incident打包的功能。

