oracle新技术主题,Oracle 11g 新特性:如何使用ADRCI

Oracle 11g 新特性:如何使用ADRCI

相关文章: Oracle 11g alert文件的变化(后台报警日志)   http://www.itpub.net/showthread.php?s=&postid=8026251

-----shahand 20070711

一.关于 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

[php][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>>

[/php]

退出ADRCI,在adrci>>提示符下敲入exit或者quit  , 回车

大小写敏感:在adrci中命令大小写不敏感

[php]

adrci>>SHOW traCEfile

diag/rdbms/orcl/orcl/trace/orcl_ora_20187.trc

diag/rdbms/orcl/orcl/trace/orcl_fbar_11388.trc

[/php]

但使用搜索串的时候是敏感的,比如:

SHOW TRACEFILE %mmon%

2.如何得到帮助信息:

(1)得到adrci中的命令列表

[php]

adrci>>help

HELP [topic]

Available Topics:

CREATE REPORT

......

[/php]

(2)也可以使用adrci –help来得到adrci的命令使用和选项。如:

[php]

[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)

-----------------------------------------------------------------

[/php]

(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平台下必须用小写来执行。

[php]

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"

[/php]

(2) 使用script选项。adrci SCRIPT=adrci_script.txt

但shahand使用的beta版似乎还有些问题。。。。好像没有任何结果一样

[php]

[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 ~]$

[/php]

三.使用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-错误信息,注意这里的参数很好,比较人性化,可以帮助提供错误时间

[php]

adrci>>SHOW ALERT -P "MESSAGE_TEXT LIKE '%ORA-%'"

ADR Home = /home/oracle/diag/rdbms/orcl/orcl:

*************************************************************************

2007-06-28 04:36:01.046000 +08:00

Errors in file /home/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_20222.trc:

ORA-00942: table or view does not exist

2007-07-03 08:19:52.641000 +08:00

ORA-1089 : opidrv aborting process

[/php]

再用以下该命令的帮助:

[php]adrci>>help show alert

Usage: SHOW ALERT [-p ] [-tail [num]] [-v]

[-file ]

Purpose: Show alert messages.

Options:

[-p ]: 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 alert_ext".

[/php]

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的错误。。。

[php]

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

$ exit

[/php]

2.确认了在adrci中使用的alert是log.xml,而非alert_orcl.log

对alert进行置空(> file),adrci不受影响;

对log.log进行置空,adrci返回的错误挺吓人的:internal error code,跟00600一个风格啊。。。

266faa3e2451dd0bb0047cc3ca69ae30.gif   应该是某些tag找不到,就报这么狠的错误

[php]

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 the file

[/php]

3.在adrci中不能使用退格(backspace)怎么办

跟sqlplus一样,有下面几种选择:

用del键;

使用Ctrl+backspace;

使用Ctrl+u删除整行(bash下);

在os命令行下stty erase ^h  (可以直接写到oracle的.profile/.bash_profile下面)

4.另外adrci一个重要的功能是查看Incident和对Incident打包的功能。本文没有涉及到该部分内容。

全文完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值