1.概述
在Oracle中,各个组件(监听器、数据库实例、各种配置工具)在安装和运行时都会有相应的日志Log和跟踪文件Trace生成。
Oracle 11g之前,这些信息都是零散的分布在Oracle组件目录中的。在11g,Oracle推出了ADR(Automatic Diagnostic Repository)
的概念,将这些信息统一的列入到其中管理。在11g中,提供了ADR_HOME目录,其中集中保存各类型的日志和跟踪信息。
一般在$ORACLE_BASE下的diag文件夹里
#export ORACLE_BASE=/u01/PROD/db
[oracle@erpdb01 db]$ ls
admin cfgtoollogs checkpoints diag oradatatech_st
[oracle@erpdb01 db]$ cd diag/
[oracle@erpdb01 diag]$ ls
asm clients crs diagtool lsnrctl netcman ofm rdbms tnslsnr
[oracle@erpdb01 diag]$ pwd
/u01/PROD/db/diag
[oracle@erpdb01 diag]$
这个一般懒得一个个看,主要使用ADRCI工具检查日志和管理诊断信息。
[oracle@erpdb01 trace]$ adrci
ADRCI: Release 11.2.0.4.0 - Production on Wed Dec 9 14:42:13 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
ADR base = "/u01/PROD/db"
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> show homepath
ADR Homes:
diag/clients/user_oracle/host_2976029217_80
adrci> show home
ADR Homes:
diag/clients/user_oracle/host_2976029217_80
adrci> show homes
ADR Homes:
diag/clients/user_oracle/host_2976029217_80
adrci>
这个环境只用了一个我们换个环境
adrci> show homepath
ADR Homes:
diag/diagtool/user_oracle/host_3609335305_11
diag/asm/user_oracle/host_3609335305_80
diag/rdbms/prod/PROD1
diag/clients/user_oracle/host_3609335305_80
diag/asmtool/user_oracle/host_3609335305_80
adrci>
查看相应的日志信息:
adrci> show alert -TAIL 10
2013-12-02 22:30:31.823000 +08:00
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
2013-12-02 22:30:47.822000 +08:00
***********************************************************************
Fatal NI connect error 12514, connecting to:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=erpdb01.szgas.com)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=PROD1)(INSTANCE_NAME=PROD1)(CID=(PROGRAM=sqlplus)(HOST=erpdb01.szgas.com)(USER=oracle))))
VERSION INFORMATION:
TNS for Linux: Version 11.2.0.4.0 - Production
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
Time: 02-DEC-2013 22:30:47
Tracing not turned on.
Tns error struct:
ns main err code: 12564
TNS-12564: TNS:connection refused
ns secondary err code: 0
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
adrci>
adrci> show homepath
ADR Homes:
diag/diagtool/user_oracle/host_3609335305_11
diag/asm/user_oracle/host_3609335305_80
diag/rdbms/prod/PROD1
diag/clients/user_oracle/host_3609335305_80
diag/asmtool/user_oracle/host_3609335305_80
adrci> show alert -TAIL 10
DIA-48449: Tail alert can only apply to single ADR home
adrci>
要注意,如果要进入具体的那个组件查看日志信息和诊断信息,首先需要设置homepath到一个组件目录里面。
如果我们要查看数据库日志,需要如下的配置
alert cdump hm incident incpkg ir lck metadata metadata_dgif metadata_pv stage sweep trace
[oracle@cisdb01 PROD1]$ pwd
/u01/PROD/oracle/diag/rdbms/prod/PROD1
[oracle@cisdb01 PROD1]$
adrci> set homepath diag/rdbms/prod/PROD1
adrci> show alert -TAIL 10
2015-12-09 12:24:29.013000 +08:00
TNS-00505: Operation timed out
nt secondary err code: 110
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.0.54)(PORT=65381))
2015-12-09 13:17:48.881000 +08:00
Thread 1 advanced to log sequence 16512 (LGWR switch)
Current log# 1 seq# 16512 mem# 0: +DATA_CIS/prod/onlinelog/group_1.273.841238279
Current log# 1 seq# 16512 mem# 1: +RECO_CIS/prod/onlinelog/group_1.257.841238281
LNS: Standby redo logfile selected for thread 1 sequence 16512 for destination LOG_ARCHIVE_DEST_2
2015-12-09 13:17:53.546000 +08:00
Archived Log entry 51004 added for thread 1 sequence 16511 ID 0xe935962 dest 1:
adrci>
上面命令show alert显示的内容是数据库组件日志alert信息。注意,此处我们也可以使用tail –n 命令,但是后面的数字表示的是日志的条目数,而不是记录行数!
查看incident和problem信息
在很多时候,数据库组件生成的错误事件信息,都是以诊断信息的形式产生出来。利用ADRCI,可以方便的对这些信息进行查看。
adrci> show problem
ADR Home = /u01/PROD/oracle/diag/rdbms/prod/PROD1:
*************************************************************************
PROBLEM_ID PROBLEM_KEY LAST_INCIDENT LASTINC_TIME
-------------------- ----------------------------------------------------------- -------------------- ----------------------------------------
1 ORA 600 [kgantc_1] 538779 2015-06-30 16:13:38.211000 +08:00
2 ORA 603 616019 2015-06-30 16:14:25.214000 +08:00
4 ORA 600 [kdsgrp1] 697900 2015-08-20 19:30:21.523000 +08:00
3 ORA 600 697901 2015-08-20 19:30:30.890000 +08:00
4 rows fetched
adrci>
adrci> show incident
ADR Home = /u01/PROD/oracle/diag/rdbms/prod/PROD1:
*************************************************************************
INCIDENT_ID PROBLEM_KEY CREATE_TIME
-------------------- ----------------------------------------------------------- ----------------------------------------
538779 ORA 600 [kgantc_1] 2015-06-30 16:13:38.211000 +08:00
616019 ORA 603 2015-06-30 16:14:25.214000 +08:00
697900 ORA 600 [kdsgrp1] 2015-08-20 19:30:21.523000 +08:00
697901 ORA 600 2015-08-20 19:30:30.890000 +08:00
4 rows fetched
adrci>
生成诊断package
打包package的步骤分为logical package和physical package
对事件697901创建逻辑包
adrci> ips create package incident 697901Created package 2 based on incident id 697901, correlation level typical
adrci>
同时可以在诊断包2中加入697900事件
adrci> ips add incident 697900 package 2
Added incident 697900 to package 2
adrci>
将Logical Package输出为Physical Package
adrci> ips generate package 2 in /home/oracle/evis
Can't locate Sys/Hostname.pm in @INC (@INC contains: /u01/PROD/11.2.0.4/grid/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/PROD/11.2.0.4/grid/perl/lib/5.10.0 /u01/PROD/11.2.0.4/grid/perl/lib /u01/PROD/11.2.0.4/grid/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/PROD/11.2.0.4/grid/perl/lib/5.10.0 /u01/PROD/11.2.0.4/grid/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/PROD/11.2.0.4/grid/perl/lib/site_perl/5.10.0 /u01/PROD/11.2.0.4/grid/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/PROD/11.2.0.4/grid/perl/lib/5.10.0/x86_64-linux-thread-multi /u01/PROD/11.2.0.4/grid/perl/lib/5.10.0 /u01/PROD/11.2.0.4/grid/perl/lib/site_perl/5.10.0/x86_64-linux-thread-multi /u01/PROD/11.2.0.4/grid/perl/lib/site_perl/5.10.0 /u01/PROD/11.2.0.4/grid/perl/lib/site_perl .) at /u01/PROD/11.2.0.4/grid/bin/diagcollection.pl line 83.
BEGIN failed--compilation aborted at /u01/PROD/11.2.0.4/grid/bin/diagcollection.pl line 83.
Generated package 2 in file /home/oracle/evis/ORA600_20151209153517_COM_1.zip, mode complete
adrci>
adrci> host
[oracle@cisdb01 diag]$ cd /home/oracle/evis
[oracle@cisdb01 evis]$ ls -lrt
-rw-r--r-- 1 oracle oinstall 25240218 Dec 9 15:40 ORA600_20151209153517_COM_1.zip
[oracle@cisdb01 evis]$
control
adrci> show control
ADR Home = /u01/PROD/oracle/diag/rdbms/prod/PROD1:
*************************************************************************
ADRID SHORTP_POLICY LONGP_POLICY LAST_MOD_TIME LAST_AUTOPRG_TIME LAST_MANUPRG_TIME ADRDIR_VERSION ADRSCHM_VERSION ADRSCHMV_SUMMARY ADRALERT_VERSION CREATE_TIME
-------------------- -------------------- -------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- -------------------- -------------------- -------
2978996791 720 8760 2015-08-20 19:32:21.684745 +08:00 2015-12-07 12:25:35.464527 +08:00 1 2 80 1 2013-11-28 14:00:43.101287 +08:00
adrci>
相关视图:
SQL> col name for a22
SQL> select * from v$diag_info;
INST_ID NAME VALUE
---------- ---------------------- --------------------------------------------------------------------------------------------------------------
1 Diag Enabled TRUE
1 ADR Base /u01/PROD/db/tech_st/11.2.0/admin/PROD_erpdb
1 ADR Home /u01/PROD/db/tech_st/11.2.0/admin/PROD_erpdb/diag/rdbms/prod/PROD1
1 Diag Trace /u01/PROD/db/tech_st/11.2.0/admin/PROD_erpdb/diag/rdbms/prod/PROD1/trace
1 Diag Alert /u01/PROD/db/tech_st/11.2.0/admin/PROD_erpdb/diag/rdbms/prod/PROD1/alert
1 Diag Incident /u01/PROD/db/tech_st/11.2.0/admin/PROD_erpdb/diag/rdbms/prod/PROD1/incident
1 Diag Cdump /u01/PROD/db/tech_st/11.2.0/admin/PROD_erpdb/diag/rdbms/prod/PROD1/cdump
1 Health Monitor /u01/PROD/db/tech_st/11.2.0/admin/PROD_erpdb/diag/rdbms/prod/PROD1/hm
1 Default Trace File /u01/PROD/db/tech_st/11.2.0/admin/PROD_erpdb/diag/rdbms/prod/PROD1/trace/PROD1_ora_15520.trc
1 Active Problem Count 2
1 Active Incident Count 71
11 rows selected.
SQL>
参考:http://blog.csdn.net/eviswang/article/details/50763692