adrci命令怎么用

70次阅读
没有评论

共计 9186 个字符,预计需要花费 23 分钟才能阅读完成。

这篇文章给大家分享的是有关 adrci 命令怎么用的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

一、adrci 说明  

  在 oracle11g 中,dump file 的目录已经有所改变,bdump 和 udump 整合到 trace 中,cdump 独立出一个。 
oracle 新增了一个 ADRCI(Automatic Diagnostic Repository Command Interpreter)的工具, 
统一管理 ASM 实例和多个数据库实例的 alert 文件、后台 trace 文件、用户 trace 文件,dump 文件等等。 
而且这个工具可以快速查询错误相关的所有 trace 文件,并将这些文件打包到一个 zip 文件,以便将问题  
相关的信息提供给 Oracle 的技术支持。 

二、查看文件  
1)进入、退出 adrci 
– 显示帮助  
[root@oratest ~]# su – oracle 
[oracle@oratest ~]$ which adrci 
~/bin/adrci 

[oracle@oratest trace]$ adrci 
ADRCI: Release 11.2.0.3.0 – Production on Wed Dec 23 10:30:26 2015 
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved. 
ADR base = /u01  
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  

– 设定一下 adrci 的主目录: 
adrci show home  — 若非我们想要的目录,可以指定   set home diag/rdbms/tinadb/tinadb 
ADR Homes: 
diag/rdbms/tinadb/tinadb 

– 退出 ADRCI: 
adrci exit 或者 quit  回车  
 
– 备注  
1. 在 adrci 中命令大小写不敏感 但使用搜索串的时候是敏感的,比如:show tracefile %mmon% 

2. 在 adrci 中不能使用退格(backspace)怎么办  
跟 sqlplus 一样,有下面几种选择: 
用 del 键; 
使用 Ctrl+backspace; 
使用 Ctrl+ u 删除整行(bash 下); 
在 os 命令行下 stty erase ^h (可以直接写到 oracle 的.profile/.bash_profile 下面) 

2)查看 alert 日志  
1.show alert -tail (默认是 10 条条目) 
2.show alert -tail -f(类似 tail -f alertlog 一样) 
3.show alert 
4.show alert -p MESSAGE_TEXT like %ORA-%  
更多可见 help show alert 
注意,show alert 的起始点是在 control 中设置的保留时间之后的日志,或者说是 purge 之后的日志,之前的日志无法显示。 

举例: 
adrci show alert -tail -f 
2015-12-23 08:35:13.712000 +08:00 
  Current log# 2 seq# 191 mem# 0: /u01/oradata/tinadb/redo02.log 
Archived Log entry 296 added for thread 1 sequence 190 ID 0x637eb2fb dest 1: 
2015-12-23 08:50:18.242000 +08:00 
Thread 1 advanced to log sequence 192 (LGWR switch) 
  Current log# 3 seq# 192 mem# 0: /u01/oradata/tinadb/redo03.log 
Archived Log entry 297 added for thread 1 sequence 191 ID 0x637eb2fb dest 1: 
2015-12-23 09:05:17.755000 +08:00 
Thread 1 advanced to log sequence 193 (LGWR switch) 
  Current log# 1 seq# 193 mem# 0: /u01/oradata/tinadb/redo01.log 
Archived Log entry 298 added for thread 1 sequence 192 ID 0x637eb2fb dest 1: 
2015-12-23 09:20:20.346000 +08:00 
Thread 1 advanced to log sequence 194 (LGWR switch) 
  Current log# 2 seq# 194 mem# 0: /u01/oradata/tinadb/redo02.log 
Archived Log entry 299 added for thread 1 sequence 193 ID 0x637eb2fb dest 1: 

3)查看 control 
adrci show control 
ADR Home = /u01/diag/rdbms/tinadb/tinadb: 
************************************************************************* 
ADRID  SHORTP_POLICY  LONGP_POLICY  LAST_MOD_TIME  LAST_AUTOPRG_TIME  LAST_MANUPRG_TIME  ADRDIR_VERSION  ADRSCHM_VERSION  ADRSCHMV_SUMMARY  ADRALERT_VERSION  CREATE_TIME 
——————– ——————– ——————– —————————————- —————————————- —————————————- ——————– ——————– ——————– ——————– —————————————- 
2092229604  720  8760  2015-12-09 17:41:58.349021 +08:00  2015-12-23 10:05:32.222256 +08:00  1  2  80  1  2015-12-09 17:41:58.349021 +08:00 
1 rows fetched 
关于 control 的设置,除了默认的 SHORTP_POLICY 为 720 小时,LONGP_POLICY 为 8760 小时外,我们可以修改这 2 个时间: 

adrci set control (SHORTP_POLICY = 360) 
adrci set control (LONGP_POLICY = 2160) 
adrci show control 
ADR Home = /u01/diag/rdbms/tinadb/tinadb: 
************************************************************************* 
ADRID  SHORTP_POLICY  LONGP_POLICY  LAST_MOD_TIME  LAST_AUTOPRG_TIME  LAST_MANUPRG_TIME  ADRDIR_VERSION  ADRSCHM_VERSION  ADRSCHMV_SUMMARY  ADRALERT_VERSION  CREATE_TIME 
——————– ——————– ——————– —————————————- —————————————- —————————————- ——————– ——————– ——————– ——————– —————————————- 
2092229604  360  2160  2015-12-09 17:41:58.349021 +08:00  2015-12-23 10:05:32.222256 +08:00  1  2  80  1  2015-12-09 17:41:58.349021 +08:00 

这样就改成了 tracefiles 保留 360 小时,即 15 天,incident file 保留 2160 小时,即 90 天。 
上述就是 oracle 自己保留日志的期限,我们也可以通过 purge 这个命令来手工的清空。 

4)快速定位 tracefile 
(1) 列出所有跟踪文件:  show tracefile 
(2) 模糊查询跟踪文件,比如某个进程的,注意这里区分大小写   show tracefile %mmon% 
(3) 可以指定某个路径   show tracefile %mmon% -path /home/steve/temp 
(4) 按时间排序   show tracefile -rt 

举例: 
adrci show tracefile %mmon% 
  diag/rdbms/tinadb/tinadb/trace/tinadb_mmon_7202.trc 
  diag/rdbms/tinadb/tinadb/trace/tinadb_mmon_21083.trc 
  diag/rdbms/tinadb/tinadb/trace/tinadb_mmon_8320.trc 
  diag/rdbms/tinadb/tinadb/trace/tinadb_mmon_4137.trc 

三、定位 incident 和 problem 
常用: 
show incident 
show incident -mode detail -p incident_id=1  
show problem 
show problem -p problem_id=2  
更多信息见 help show incident 或 help show problem。 

举例: 
adrci show incident 
ADR Home = /u01/diag/rdbms/tinadb/tinadb: 
************************************************************************* 
INCIDENT_ID  PROBLEM_KEY  CREATE_TIME 
——————– ———————————————————– —————————————- 
53353  ORA 600 [krbnpdf_wrngdbid_3]  2015-12-17 10:09:33.291000 +08:00 
53354  ORA 600 [krbnbeg_norestart]  2015-12-17 10:24:52.395000 +08:00 
53355  ORA 600 [krbnpdf_nonid]  2015-12-17 10:28:17.766000 +08:00 
53417  ORA 600 [krbnbeg_norestart]  2015-12-17 10:32:58.256000 +08:00 
53418  ORA 600 [krbnpdf_nonid]  2015-12-17 10:34:22.881000 +08:00 
5 rows fetched 

adrci show problem 
ADR Home = /u01/diag/rdbms/tinadb/tinadb: 
************************************************************************* 
PROBLEM_ID  PROBLEM_KEY  LAST_INCIDENT  LASTINC_TIME 
——————– ———————————————————– ——————– —————————————- 
1  ORA 600 [krbnpdf_wrngdbid_3]  53353  2015-12-17 10:09:33.291000 +08:00 
2  ORA 600 [krbnbeg_norestart]  53417  2015-12-17 10:32:58.256000 +08:00 
3  ORA 600 [krbnpdf_nonid]  53418  2015-12-17 10:34:22.881000 +08:00 
3 rows fetched 

我们看到有 5 个 incident 和 3 个 problem 
problem 指的是大的问题, 叫 criticial error, 一个大问题会由很多小的 incidents 所导致。所以他们是 1:n 的关系. 

查看细节: 
adrci show incident -mode detail -p incident_id=53353  
ADR Home = /u01/diag/rdbms/tinadb/tinadb: 
************************************************************************* 

********************************************************** 
INCIDENT INFO RECORD 1 
********************************************************** 
  INCIDENT_ID  53353 
  STATUS  ready 
  CREATE_TIME  2015-12-17 10:09:33.291000 +08:00 
  PROBLEM_ID  1 
  CLOSE_TIME  NULL  
  FLOOD_CONTROLLED  none 
  ERROR_FACILITY  ORA 
  ERROR_NUMBER  600 
  ERROR_ARG1  krbnpdf_wrngdbid_3 
  ERROR_ARG2  /u01/oradata/tinadb/system01.dbf 
  ERROR_ARG3  1669126943 
  ERROR_ARG4  1668473151 
  ERROR_ARG5  1669126943 
  ERROR_ARG6  NULL  

四、ips 打包  
  将相关的 incident 的文件打包给 oracle,上传到 SR 上。我们这里用到一个 IPS(incident package service)服务。 
我们先创建一个逻辑的 package,有以下几种方式: 

1. 什么参数都不带,表示以默认的 level typical,里面无任何内容。 
adrci ips create package 
Created package 1 without any contents, correlation level typical 

2. 加 incident 参数,指明某个 incident。默认 level 还是 typical。 
adrci ips create package incident 53353 
Created package 2 based on incident id 53353, correlation level typical 

3. 加 incident 参数,指定某个 incident,设置 level 为 all。 
adrci ips create package incident 53354 correlate all 
Created package 3 based on incident id 53354, correlation level al 

4. 加 problem 参数,指定某个 problem。默认 level 还是 typical。 
adrci ips create package problem 2 
Created package 4 based on problem id 2, correlation level typical 

5. 加 problem 参数,指定某个 problem,设置 level 为 basic。 
adrci ips create package problem 1 correlate basic 
Created package 5 based on problem id 1, correlation level basic 

6. 加 time 参数,设置开始时间 to 结束时间,后面的 +8:00 表示东八区。 
adrci ips create package time 2015-12-22 00:00:00 to 2015-12-23 00:00:00  
Created package 6 based on time range 2015-12-22 00:00:00.000000 +08:00 to 2015-12-23 00:00:00.000000 +08:00, correlation level typical 

还可以追加文件到 PACKAGE 3: 
adrci ips add new incidents package 3 
Added new incidents to package 3 
adrci ips add problem 12 package 3 
Added problem 12 to package 3 

五、将包放到实际的物理位置  
adrci ips generate package 3 
Generated package 3 in file /u01/diag/rdbms/tinadb/tinadb/trace/ORA600krb_20151223104459_COM_1.zip, mode complete 

自定义路径,加 in 参数即可: 
adrci   ips GENERATE PACKAGE 3 in /tmp 
Generated package 3 in file /tmp/ORA600krb_20151223104459_COM_2.zip, mode complete 

注意:ips 的调用和 perl 有关。需要预先在 os 安装 yum install -y perl 否则这里会报错  

有了这个 zip 包,我们可以直接发送给 oracle 技术支持了。 

六、解压  
最后简单介绍一下 UNPACK 命令,这个命令可以将得到的 zip 文件解压到指定目录: 

adrci ips get metadata from file /tmp/ORA600krb_20151223104459_COM_2.zip 
IPS metadata from file /tmp/ORA600krb_20151223104459_COM_2.zip: 
———————————————————- 
?xml version= 1.0 encoding= US-ASCII ?  
PACKAGE  
  PACKAGE_ID 3 /PACKAGE_ID  
  PACKAGE_NAME ORA600krb_20151223104459 /PACKAGE_NAME  
  MODE Complete /MODE  
  SEQUENCE 2 /SEQUENCE  
  LAST_COMPLETE 2 /LAST_COMPLETE  
  DATE 2015-12-23 11:33:51.703402 +08:00 /DATE  
  ADR_BASE /u01 /ADR_BASE  
  ADR_HOME /u01/diag/rdbms/tinadb/tinadb /ADR_HOME  
  PROD_NAME rdbms /PROD_NAME  
  PROD_ID tinadb /PROD_ID  
  INST_ID tinadb /INST_ID  
  OCM_GUID/  
  OCM_ANNOTATION/  
  FINALIZED 1 /FINALIZED  
/PACKAGE  

———————————————————- 
adrci ips unpack file /tmp/ORA600krb_20151223104459_COM_2.zip into /tmp 
Unpacking file /tmp/ORA600krb_20151223104459_COM_2.zip into target /tmp 

七、清除 purge 
(1)清除 incident,我们可以用 purge 命令: 
adrci purge -age 2 

(2)清除 problem,我们可以用 delete 命令: 
adrci delete from problem where problem_id=1 

(3)清除 trace 
adrci purge -age 1440 -type trace – 可以删除 24h 以前的 trace 

八、命令行执行 adrci 命令  
[oracle@oratest ~]$ adrci exec= show homes;echo 20070712 echo show base;  

感谢各位的阅读!关于“adrci 命令怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-20发表,共计9186字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)