ADRCI是一个命令行工具,是Oracle 11g中引入的故障可诊断性架构的一部分。 ADRCI可以完成以下:
查看自动诊断信息库(ADR)中的诊断数据。
查看Health Monitor报告。
将事件和问题信息打包到zip文件中以传输到Oracle Support。
adrci无需单独安装,只要配置了ORACLE_HOME和PATH环境变量即可,直接输入adrci即可。
在使用ADRCI之前需要设置ADR HOME,设置ADR HOME是为了指定ADRCI诊断数据是来自哪个实例。如:
adrci> show home
ADR Homes:
diag/rdbms/cndba/cndba1
diag/clients/user_oracle/host_1874443374_110
diag/diagtool/user_oracle/adrci_1874443374_110
adrci> set home diag/rdbms/cndba/cndba1 或 set [homes|homepath]
查看当前ADR HOME
adrci> show home
ADR Homes:
diag/rdbms/cndba/cndba1
从11g开始,告警日志信息会同时写入XML格式和文本格式的文件中。可以通过文本编辑器查看文本格式的告警日志,或者通过ADRCI工具来查看XML格式的告警日志。默认情况下,ADRCI会以当前环境默认编辑器来显示告警日志,当然可以通过SET EDITOR命令来修改默认编辑器。然后通过SHOW ALERT命令来查看告警日志信息。如:
adrci> show alert
ADR Home = /u01/app/oracle/diag/rdbms/cndba/cndba1:
2018-11-12 11:23:09.070000 +08:00
Starting ORACLE instance (normal) (OS id: 31600)
注:如果没有设置ADR HOME,那么会提示你选择ADR HOME。如:
adrci> show alert
Choose the home from which to view the alert log:
1: diag/rdbms/cndba/cndba1
2: diag/clients/user_oracle/host_1874443374_110
3: diag/diagtool/user_oracle/adrci_1874443374_110
Q: to quit
Please select option:
SHOW ALERT命令的参数:
SHOW ALERT -TAIL
显示日志的最后10组信息
SHOW ALERT -TAIL 50
指定显示最后多少组信息
SHOW ALERT -TAIL -F
动态增量显示告警日志信息
重定向输出到文件中
SPOOL /home/oracle/MYALERT.LOG
SHOW ALERT -TERM
SPOOL OFF
查看指定错误的日志,如ORA-600
SHOW ALERT -P “MESSAGE_TEXT LIKE ‘%ORA-600%’”
除了可以根据错误信息来查看日志,还可以根据进程号,用户ID等等,如:
Type
ORIGINATING_TIMESTAMP timestamp
NORMALIZED_TIMESTAMP timestamp
ORGANIZATION_ID text(65)
COMPONENT_ID text(65)
HOST_ID text(65)
HOST_ADDRESS text(17)
MESSAGE_TYPE number
MESSAGE_LEVEL number
MESSAGE_ID text(65)
MESSAGE_GROUP text(65)
CLIENT_ID text(65)
MODULE_ID text(65)
PROCESS_ID text(33)
THREAD_ID text(65)
USER_ID text(65)
INSTANCE_ID text(65)
DETAILED_LOCATION text(161)
UPSTREAM_COMP_ID text(101)
DOWNSTREAM_COMP_ID text(101)
EXECUTION_CONTEXT_ID text(101)
EXECUTION_CONTEXT_SEQUENCE number
ERROR_INSTANCE_ID number
ERROR_INSTANCE_SEQUENCE number
MESSAGE_TEXT text(2049)
MESSAGE_ARGUMENTS text(129)
SUPPLEMENTAL_ATTRIBUTES text(129)
SUPPLEMENTAL_DETAILS text(129)
PROBLEM_KEY text(65)
可以通过SHOW TRACEFILE命令来查看当前ADR中的所有trace文件名称,也可以通过条件进行过滤查找,包括:
获取文件名与搜索字符串匹配的trace文件列表。
获取特定目录中的trace文件列表。
获取与特定事件有关的trace文件列表。
SHOW TRACEFILE命令及相关参数的说明:
SHOW TRACEFILE
默认显示当前ADR HOME下的所有trace文件:
diag/rdbms/cndba/cndba1/trace/cndba1_m000_16021.trc
diag/rdbms/cndba/cndba1/trace/cndba1_m000_15327.trc
diag/rdbms/cndba/cndba1/trace/cndba1_m000_13473.trc
SHOW TRACEFILE %mmon%
查看文件名称包括mmon的trace文件
SHOW TRACEFILE %mmon% -PATH /home/steve/temp
查找指定路径下,并且包括mmon的trace文件
SHOW TRACEFILE -RT
按照trace文件修改时间降序排列显示,最新的trace文件显示在最前面。
SHOW TRACEFILE -I 1681
查找事件(incident)号是1681的trace文件
通过命令SHOW INCIDENT来查看处于打开状态的事件信息。如:
adrci> show incident
ADR Home = /u01/app/oracle/product/11.1.0/db_1/log/diag/rdbms/orclbi/orclbi:
INCIDENT_ID PROBLEM_KEY CREATE_TIME
3808 ORA 603 2007-06-18 21:35:49.322161 -07:00
3807 ORA 600 [4137] 2007-06-18 21:35:47.862114 -07:00
3805 ORA 600 [4136] 2007-06-18 21:35:25.012579 -07:00
3804 ORA 1578 2007-06-18 21:35:08.483156 -07:00
4 rows fetched
SHOW INCIDENT的参数说明:
查看更详细的事件信息
SHOW INCIDENT -MODE BRIEF
SHOW INCIDENT -MODE DETAIL
查看指定事件号的事件信息
SHOW INCIDENT -MODE DETAIL -P “INCIDENT_ID=1681”
为指定的报告类型和运行ID创建报告,并将报告存储在ADR中。目前,仅支持hm_run(运行状况监视器)报告类型。而报告名称和报告ID可通过SHOW HM_RUN来查看,如:
HM RUN RECORD 3362
RUN_ID 75461 --报告ID
RUN_NAME HM_RUN_75461 --报告名称
CHECK_NAME DB Structure Integrity Check
NAME_ID 2
MODE 2
START_TIME 2018-11-20 06:00:07.927295 +08:00
RESUME_TIME
END_TIME 2018-11-20 06:00:08.048419 +08:00
MODIFIED_TIME 2018-11-20 06:00:08.048419 +08:00
TIMEOUT 0
FLAGS 0
STATUS 5
SRC_INCIDENT_ID 0
NUM_INCIDENTS 0
ERR_NUMBER 0
REPORT_FILE
CON_UID 1995777824
CONTAINER_ID 3
CONTAINER_NAME CNDBAPDB
3362 rows fetched
–根据报告类型“hm_run”和报告名称来创建报告
adrci> create report hm_run HM_RUN_75461
show report是以XML格式来展示报告内容,可以EM或DBMS_HM包来格式化输出。
adrci> show report hm_run HM_RUN_75461
<?xml version="1.0" encoding="US-ASCII"?>
<HM-REPORT REPORT_ID="HM_RUN_75461">
<TITLE>HM Report: HM_RUN_75461</TITLE>
<RUN_INFO>
<CHECK_NAME>DB Structure Integrity Check</CHECK_NAME>
<RUN_ID>75461</RUN_ID>
<RUN_NAME>HM_RUN_75461</RUN_NAME>
<RUN_MODE>REACTIVE</RUN_MODE>
<RUN_STATUS>COMPLETED</RUN_STATUS>
<RUN_ERROR_NUM>0</RUN_ERROR_NUM>
<SOURCE_INCIDENT_ID>0</SOURCE_INCIDENT_ID>
<NUM_INCIDENTS_CREATED>0</NUM_INCIDENTS_CREATED>
<RUN_START_TIME>2018-11-20 06:00:07.927295 +08:00</RUN_START_TIME>
<RUN_END_TIME>2018-11-20 06:00:08.048419 +08:00</RUN_END_TIME>
</RUN_INFO>
<RUN_PARAMETERS/>
<RUN-FINDINGS/>
</HM-REPORT>
用于根据指定的策略,清除ADR中的诊断数据。仅清除ADR内容。
ADR中的诊断数据都有默认生命周期。 例如,有关事件和问题的信息在一年后会被清除,而相关的转储文件(转储)仅在30天后就会被清除。
某些Oracle产品(如Oracle数据库)会在其生命周期结束时自动清除诊断数据。 而其他产品和组件需要使用此命令手动清除诊断数据。 还可以使用PURGE命令清除将要自动清除的数据。
语法:
purge [[-i {id | start_id end_id}] | [-age mins [-type {ALERT|INCIDENT|TRACE|CDUMP|HM}]]]
具体示例:
purge
根据默认策略删除当前ADR HOME下的所有诊断数据
purge -i 123 456
删除123到456之间所有实践数据
purge -age 60 -type incident
删除最后一小时之前所有事件的数据。
还可以指定
ALERT:告警日志
TRACE:trace文件,包括转储文件
###2.7.帮助
更多的命令使用可以通过“HELP”来查看,如:
adrci> help
HELP [topic]
Available Topics:
CREATE REPORT
ECHO
ESTIMATE
EXIT
HELP
HOST
IPS
PURGE
RUN
SELECT
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 LOG
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
查看某个命令的使用,则HELP COMMAND,如:
adrci> help purge
Usage: PURGE [[-i | ] |
[[-age ] |
[-size ] |
[-type {ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP|LOG} ]]]
Purpose: Purge the diagnostic data in the current ADR home. If no
option is specified, the default purging policy will be used.
Options:
[-i id1 | id1 id2]: Purge a single specified incident, or a range
of incidents.
[-age ]: Purge diagnostic data older than from the
ADR home, if the data is purgable.
[-size ]: Purge diagnostic data from the ADR home until the size
of the home reaches bytes.
[-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP|LOG]: Purge a specific
type of data.
Notes:
When purging by size, only INCIDENT, TRACE, CDUMP and UTSCDMP data
is considered.
Some data can not be purged (such as incidents in the ‘tracked’ state),
which means that the specified target size may not be reached in all cases.
Examples:
purge
purge -i 123 456
purge -age 60 -type incident
purge -size 10000000