Oracle 11g ADRCI工具使用

在Oracle中,各个组件(监听器、数据库实例、各种配置工具)在安装和运行时都会有相应的日志Log和跟踪文件Trace生成。Oracle 11g之前,这些信息都是零散的分布在Oracle组件目录中的。在11g,Oracle推出了ADR(Automatic Diagnostic Repository)的概念,将这些信息统一的列入到其中管理。
 
1、ADRCI初探
 
在11g中,提供了ADR_HOME目录,其中集中保存各类型的日志和跟踪信息。
 
 
[oracle@bspdev app]$ ls -l
total 24
drwxrwxr-x. 3 oracle oinstall 4096 Mar 25 2011 11.2.0
drwxr-x---. 3 oracle oinstall 4096 Apr 1 2011 admin
drwxr-x---. 5 oracle oinstall 4096 Apr 1 2011 cfgtoollogs
drwxr-xr-x. 2 oracle oinstall 4096 Mar 31 2011 checkpoints
drwxrwxr-x. 6 oracle asmadmin 4096 Apr 1 2011 diag
drwxrwxr-x. 76 oracle oinstall 4096 Feb 23 09:34 oracle
 
[oracle@bspdev diag]$ ls
asm asmtool rdbms tnslsnr
[oracle@bspdev diag]$ cd rdbms
[oracle@bspdev rdbms]$ ls
ora11g
[oracle@bspdev rdbms]$ cd ora11g
[oracle@bspdev ora11g]$ ls
i_1.mif ora11g
[oracle@bspdev ora11g]$ cd ora11g
[oracle@bspdev ora11g]$ ls
alert cdump hm incident incpkg ir lck metadata stage sweep trace
 
 
在$ORACLE_BASE目录下,存在diag文件夹,里面保存如asm、asmtool、rdbms和TNS listener等重要组件的日志信息。针对每一个组件,又按照告警文件、跟踪文件和dump等分类进行组织。
 
Diag目录实际上就形成了一个输出日志信息资料库,所有的诊断信息和日志信息都在该目录中进行分类保存。此外,Oracle推出了ADRCI工具,可以统一的使用接口命令检查日志和管理诊断信息。
 
 
ora11g:/home/ora11g>adrci
 
ADRCI: Release 11.2.0.1.0 - Production on Mon May 21 13:56:53 2012
 
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
 
ADR base = "/nbsdu01/app/oracle"
adrci>
 
 
通过命令行adrci,我们可以在统一的命令行中进行诊断信息管理。
 
 
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
 
 
2、查看日志信息
 
在使用adrci的过程中,要注意当前homepath的问题。每个Oracle组件,都存在一个诊断信息目录。
 
 
ADR base = "/nbstu01/app/oracle"
adrci> show homepath
ADR Homes:
diag/rdbms/nbstest/NBSTEST
diag/tnslsnr/P550_05_LC/listener
 
 
要注意,如果要进入具体的那个组件查看日志信息和诊断信息,首先需要设置homepath到一个组件目录里面。上面的两个ADR home中,是Oracle数据库和监听器两个组件。如果我们要查看数据库日志,需要如下的配置。
 
 
adrci> set homepath diag/rdbms/nbstest/NBSTEST
 
adrci>show alert -TAIL 10
2012-05-21 15:37:59.861000 +08:00
Thread 1 cannot allocate new log, sequence 2319
Private strand flush not complete
 Current log# 2 seq# 2318 mem# 0: /nbstdata01/oradata/NBSTEST/redo02a.log
 Current log# 2 seq# 2318 mem# 1: /nbstdata02/oradata/NBSTEST/redo02b.log
2012-05-21 15:38:02.931000 +08:00
Thread 1 advanced to log sequence 2319 (LGWR switch)
 Current log# 1 seq# 2319 mem# 0: /nbstdata01/oradata/NBSTEST/redo01a.log
 Current log# 1 seq# 2319 mem# 1: /nbstdata02/oradata/NBSTEST/redo01b.log
2012-05-21 15:49:34.382000 +08:00
Thread 1 cannot allocate new log, sequence 2320
Private strand flush not complete
 Current log# 1 seq# 2319 mem# 0: /nbstdata01/oradata/NBSTEST/redo01a.log
 Current log# 1 seq# 2319 mem# 1: /nbstdata02/oradata/NBSTEST/redo01b.log
2012-05-21 15:49:37.420000 +08:00
Thread 1 advanced to log sequence 2320 (LGWR switch)
 Current log# 3 seq# 2320 mem# 0: /nbstdata01/oradata/NBSTEST/redo03a.log
 Current log# 3 seq# 2320 mem# 1: /nbstdata02/oradata/NBSTEST/redo03b.log
2012-05-21 16:03:48.579000 +08:00
Thread 1 cannot allocate new log, sequence 2321
Private strand flush not complete
 Current log# 3 seq# 2320 mem# 0: /nbstdata01/oradata/NBSTEST/redo03a.log
 Current log# 3 seq# 2320 mem# 1: /nbstdata02/oradata/NBSTEST/redo03b.log
2012-05-21 16:03:51.656000 +08:00
Thread 1 advanced to log sequence 2321 (LGWR switch)
 Current log# 2 seq# 2321 mem# 0: /nbstdata01/oradata/NBSTEST/redo02a.log
 Current log# 2 seq# 2321 mem# 1: /nbstdata02/oradata/NBSTEST/redo02b.log
 
 
上面命令show alert显示的内容是数据库组件日志alert信息。注意,此处我们也可以使用tail –n命令,但是后面的数字表示的是日志的条目数,而不是记录行数!

相关推荐