Oracle 11g 新特性之如何使用ADRCI
|
一。关于 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 /bin/bash: -c: line 0: `!" Additional information: 512
对alert进行置空(> file),adrci不受影响;对log.log进行置空,adrci返回的错误挺吓人的:internal error code,跟00600一个风格啊……应该是某些tag找不到,就报这么狠的错误 代码: adrci>>show alert
跟sqlplus一样,有下面几种选择: 用del键; 使用Ctrl+backspace; 使用Ctrl+u删除整行(bash下); 在os命令行下stty erase ^h (可以直接写到oracle的。profile/.bash_profile下面) 4.另外adrci一个重要的功能是查看Incident和对Incident打包的功能 |
