Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明
?
?
一.自動診斷資料檔案庫(ADR)
?
1.1 ADR 說明
ADR?(AutomaticDiagnostic Repository)?,ADR 是一個基于文件的資料檔案庫,用于存放數(shù)據(jù)庫診斷數(shù)據(jù)(如跟蹤、意外事件轉儲和程序包、預警日志、健康狀況監(jiān)視器報告、核心轉儲等)。它對存儲在任何數(shù)據(jù)庫外的多個實例和多種產(chǎn)品使用一個統(tǒng)一的目錄結構。因此,可用于數(shù)據(jù)庫關閉時的問題診斷。從Oracle Database 11g R1 開始,數(shù)據(jù)庫、自動存儲管理(ASM)、集群就緒服務(CRS) 和其它Oracle 產(chǎn)品或組件將所有診斷數(shù)據(jù)都存儲在ADR 中。每種產(chǎn)品的每個實例都將診斷數(shù)據(jù)存儲在自己的ADR 主目錄下。例如,在具有共享存儲和ASM 的Real Application Clusters 環(huán)境中,每個數(shù)據(jù)庫實例和每個ASM 實例在ADR 中都有一個主目錄。ADR的統(tǒng)一目錄結構對各種產(chǎn)品和實例使用一致的診斷數(shù)據(jù)格式,而且還有一組統(tǒng)一的工具,使客戶和Oracle 技術支持可以相互關聯(lián)并分析多個實例的診斷數(shù)據(jù)。
?
從Oracle Database11g R1 開始,將忽略傳統(tǒng)的…_DUMP_DEST 初始化參數(shù)。ADR 根目錄又稱為ADR 基目錄,其位置由DIAGNOSTIC_DEST 初始化參數(shù)設定。如果省略此參數(shù)或?qū)⑵浔A魹榭?#xff0c;數(shù)據(jù)庫將在啟動時按如下方式設置DIAGNOSTIC_DEST:
如果已設置了環(huán)境變量ORACLE_BASE,則將DIAGNOSTIC_DEST 設置為$ORACLE_BASE。
如果未設置環(huán)境變量ORACLE_BASE,則將DIAGNOSTIC_DEST 設置為$ORACLE_HOME/log。
?
--驗證:
[18:02 oracle@dave ~]$echo $ORACLE_BASE
/u01/app/oracle
[18:03 oracle@dave ~]$ora param diag
Session altered.
?
NAME??????????????????????????? ISDEFAULTSESMO? SYSMOD??? VALUE
------------------------- --------- -------------- ----------------------------------------
diagnostic_dest ??????????FALSE???? FALSE??IMMEDIATE?? /u01/app/oracle
?
我這里設置了ORACLE_BASE 的環(huán)境變量,所以這里的diagnostic_dest 參數(shù)使用了ORACLE_BASE的值。
?
ADR 基目錄中可以包含多個ADR 主目錄,其中每個ADR 主目錄都是一個根目錄,用于存放特定Oracle 產(chǎn)品或組件的特定實例的全部診斷數(shù)據(jù)。前一張幻燈片的圖形中顯示了數(shù)據(jù)庫的ADR主目錄位置。
另外,還生成了兩個預警文件。一個是文本形式的預警文件(與早期版本Oracle DB 使用的預警文件非常相似),位于各個ADR 主目錄的TRACE 目錄下。還有一個符合XML 標準的預警消息文件,存儲在ADR 主目錄內(nèi)的ALERT 子目錄下。可使用EnterpriseManager 和ADRCI 實用程序查看文本格式的預警日志(已刪除了XML 標記)。
INCIDENT 目錄包含多個子目錄,每個子目錄均以特定意外事件命名,并且僅包含與該意外事件相關的轉儲。
HM 目錄包含由健康狀況監(jiān)視器生成的檢查器運行報告。
還有一個METADATA 目錄,其中包含資料檔案庫自身的重要文件。可以將此目錄比作數(shù)據(jù)庫字典。可使用ADRCI 查詢此字典。
ADR 命令解釋器(ADRCI) 是一個實用程序,可用于執(zhí)行支持工作臺允許的所有任務(但是僅限于在命令行環(huán)境中)。使用ADRCI 實用程序,您還可以查看ADR 中跟蹤文件的名稱以及刪除了XML 標記、具有和不具有內(nèi)容篩選功能的預警日志。
此外,還可以使用V$DIAG_INFO列出一些重要的ADR 位置。
?
?
使用tree命令查看目錄結構:
[18:11 oracle@dave /u01/app/oracle/diag]$tree
.
|-- asm
|-- clients
|-- crs
|-- diagtool
|-- lsnrctl
|-- netcman
|-- ofm
|-- rdbms
|??`-- dave
|??????|-- dave
|??????|?? |-- alert
|??????|?? |?? `-- log.xml
|??????|?? |-- cdump
|??????|?? |?? |-- core_16650
|??????|?? |?? |-- core_18804
|??????|?? |?? `-- core_6039
|??????|?? |-- hm
|??????|?? |-- incident
|??????|?? |?? |-- incdir_13378
|??????|?? |?? |??|-- dave_cjq0_16650_i13378.trc
|??????|?? |?? |??`-- dave_cjq0_16650_i13378.trm
|??????|?? |?? |-- incdir_13458
|??????|?? |?? |??|-- dave_ora_18804_i13458.trc
|??????|?? |?? |??`-- dave_ora_18804_i13458.trm
|??????|?? |?? `-- incdir_8529
|??????|?? |?????? |-- dave_mmnl_6039_i8529.trc
|??????|?? |?????? `-- dave_mmnl_6039_i8529.trm
|??????|?? |-- incpkg
|??????|?? |-- ir
|??????|?? |-- lck
|??????|?? |?? |-- AM_53417_1688101061.lck
|??????|?? |?? |-- AM_53417_2985279723.lck
|??????|?? |?? |-- AM_53419_3606358678.lck
|??????|?? |?? |-- AM_53421_2401899358.lck
|??????|?? |?? |-- AM_58174112_2445060518.lck
|??????|?? |?? `-- AM_994187642_3287667720.lck
|??????|?? |-- metadata
|??????|?? |?? |-- ADR_CONTROL.ams
|??????|?? |?? |-- ADR_INTERNAL.mif
|??????|?? |?? |-- ADR_INVALIDATION.ams
|??????|?? |?? |-- AMS_XACTION.ams
|??????|?? |?? |-- DDE_USER_ACTION.ams
|??????|?? |?? |-- DDE_USER_ACTION_DEF.ams
|??????|?? |?? |-- DDE_USER_ACTION_PARAMETER.ams
|??????|?? |?? |-- DDE_USER_ACTION_PARAMETER_DEF.ams
|??????|?? |?? |-- DDE_USER_INCIDENT_ACTION_MAP.ams
|??????|?? |?? |-- DDE_USER_INCIDENT_TYPE.ams
|??????|?? |?? |-- DFW_CONFIG_CAPTURE.ams
|??????|?? |?? |-- DFW_CONFIG_ITEM.ams
|??????|?? |?? |-- EM_DIAG_JOB.ams
|??????|?? |?? |-- EM_TARGET_INFO.ams
|??????|?? |?? |-- EM_USER_ACTIVITY.ams
|??????|?? |?? |-- HM_FDG_SET.ams
|??????|?? |?? |-- HM_FINDING.ams
|??????|?? |?? |-- HM_INFO.ams
|??????|?? |?? |-- HM_MESSAGE.ams
|??????|?? |?? |-- HM_RECOMMENDATION.ams
|??????|?? |?? |-- HM_RUN.ams
|??????|?? |?? |-- INCCKEY.ams
|??????|?? |?? |-- INCIDENT.ams
|??????|?? |?? |-- INCIDENT_FILE.ams
|??????|?? |?? |-- INC_METER_CONFIG.ams
|??????|?? |?? |-- INC_METER_IMPT_DEF.ams
|??????|?? |?? |-- INC_METER_INFO.ams
|??????|?? |?? |-- INC_METER_PK_IMPTS.ams
|??????|?? |?? |-- INC_METER_SUMMARY.ams
|??????|?? |?? |-- IPS_CONFIGURATION.ams
|??????|?? |?? |-- IPS_FILE_COPY_LOG.ams
|??????|?? |?? |-- IPS_FILE_METADATA.ams
|??????|?? |?? |-- IPS_PACKAGE.ams
|??????|?? |?? |-- IPS_PACKAGE_FILE.ams
|??????|?? |?? |-- IPS_PACKAGE_HISTORY.ams
|??????|?? |?? |-- IPS_PACKAGE_INCIDENT.ams
|??????|?? |?? |-- IPS_PACKAGE_UNPACK_HISTORY.ams
|??????|?? |?? |-- IPS_PROGRESS_LOG.ams
|??????|?? |?? |-- IPS_REMOTE_PACKAGE.ams
|??????|?? |?? |-- PICKLEERR.ams
|??????|?? |?? |-- PROBLEM.ams
|??????|?? |?? |-- SWEEPERR.ams
|??????|?? |?? |-- VIEW.ams
|??????|?? |?? `-- VIEWCOL.ams
|??????|?? |-- metadata_dgif
|??????|?? |-- metadata_pv
|??????|?? |-- stage
|??????|?? |?? |-- stg3_13378_inc2.stg
|??????|?? |?? |-- stg3_13378_inc.stg
|??????|?? |?? |-- stg3_13458_inc2.stg
|??????|?? |?? |-- stg3_13458_inc.stg
|??????|?? |?? |-- stg3_8529_inc2.stg
|??????|?? |?? `-- stg3_8529_inc.stg
|??????|?? |-- sweep
|??????|?? `-- trace
|?????? |??????|-- alert_dave.log
|??????|?????? |-- cdmp_20120912042233
|??????|?????? |-- cdmp_20121011174004
|??????|?????? `-- cdmp_20121011174010
|??????`-- i_1.mif
`-- tnslsnr
???`-- dave
???????`-- listener
???????????|-- alert
???????????|?? `-- log.xml
???????????|-- cdump
???????????|-- incident
???????????|-- incpkg
???????????|-- lck
???????????|?? |--AM_1096102193_3488045378.lck
???????????|?? |-- AM_1096102262_3454819329.lck
???????????|?? |--AM_1744845641_3861997533.lck
???????????|?? `--AM_3216668543_3129272988.lck
???????????|-- metadata
???????????|?? |-- ADR_CONTROL.ams
???????????|?? |-- ADR_INVALIDATION.ams
???????????|?? |-- INC_METER_IMPT_DEF.ams
???????????|?? `-- INC_METER_PK_IMPTS.ams
???????????|-- metadata_dgif
???????????|-- metadata_pv
???????????|-- stage
???????????|-- sweep
???????????`-- trace
??????????????? `-- listener.log
?
46 directories, 75 files
[18:11 oracle@dave /u01/app/oracle/diag]$
?
1.2 V$DIAG_INFO
?
SQL> desc v$diag_info
?Name?????????????????????????????????????Null???? Type
?------------------------------------------------- ----------------------------
?INST_ID??????????????????????????????????? ????????NUMBER
?NAME??????????????????????????????????????????????VARCHAR2(64)
?VALUE?????????????????????????????????????????????VARCHAR2(512)
?
?
SQL> set lin 180
SQL> col name for a20
SQL> col value for a70
SQL> set pagesize 100
SQL> select * from v$diag_info;
??INST_ID NAME??????????????????????????VALUE
---------- ----------------------------------------------------------------------------------------------------
????????1 Diag Enabled??????????????????TRUE
????????1 ADR Base??????????????????? ???/u01/app/oracle
????????1 ADR Home??????????????????????/u01/app/oracle/diag/rdbms/dave/dave
????????1 Diag Trace????????????????????/u01/app/oracle/diag/rdbms/dave/dave/trace
????????1 Diag Alert????????????????????/u01/app/oracle/diag/rdbms/dave/dave/alert
????????1 Diag Incident?????????????????/u01/app/oracle/diag/rdbms/dave/dave/incident
????????1 Diag Cdump????????????????????/u01/app/oracle/diag/rdbms/dave/dave/cdump
????????1 Health Monitor????????????????/u01/app/oracle/diag/rdbms/dave/dave/hm
????????1 Default Trace File????????????/u01/app/oracle/diag/rdbms/dave/dave/trace/dave_ora_24518.trc
????????1 Active Problem Count?????????? 1
????????1 Active Incident Count????????? 3
?
?
V$DIAG_INFO 視圖列出了所有重要的ADR 位置:
(1)? ADR Base:ADR 基目錄的路徑
(2)? ADR Home:當前數(shù)據(jù)庫實例的ADR 主目錄的路徑
(3)? Diag Trace:文本預警日志和后臺/前臺進程跟蹤文件的位置
(4)? Diag Alert:XML 版本的預警日志的位置
(5)? …
(6)? Default Trace File:會話的跟蹤文件的路徑。SQL 跟蹤文件將寫入到這里。
?
1.3 診斷跟蹤的位置
對于OracleDatabase 11g,前臺和后臺跟蹤文件之間沒有什么區(qū)別。這兩種類型的文件都會放入$ADR_HOME/trace目錄中。
所有非意外事件跟蹤都存儲在TRACE子目錄中。以前的版本會將嚴重錯誤信息轉儲到相應的進程跟蹤文件而不是意外事件轉儲,這就是新舊版本之間的主要區(qū)別。從Oracle Database 11g 開始,意外事件轉儲將存放到獨立于正常進程跟蹤文件的文件中。
?
注:跟蹤和轉儲之間的主要區(qū)別在于,跟蹤是較為連續(xù)的輸出(如打開SQL 跟蹤時),而轉儲是為了響應事件(如意外事件)而進行的一次性輸出。另外,核心是特定于端口的二進制內(nèi)存轉儲。
?
?
1.4 ADRCI:ADR 命令行工具
ADRCI 是一個命令行工具,包含在Oracle Database 版本11g 中引入的故障可診斷性基礎結構中。使用ADRCI,可以:
(1)? 查看自動診斷資料檔案庫(ADR) 中的診斷數(shù)據(jù)。
(2)? 將意外事件和問題信息打包成zip 文件,以傳輸?shù)絆racle 技術支持。此操作是使用稱為意外事件打包服務(IPS) 的服務完成的。
?
ADRCI 具有豐富的命令集,可在交互模式下使用,也可以在腳本中使用。此外,ADRCI 還可以使用與SQL*Plus 執(zhí)行SQL 腳本和PL/SQL 命令相同的方式執(zhí)行ADRCI 命令腳本。
由于未打算保護ADR 中數(shù)據(jù)的安全,所以沒有必要登錄到ADRCI。ADR 數(shù)據(jù)僅受對ADR目錄的操作系統(tǒng)權限保護。
打包和以其它方式管理診斷數(shù)據(jù)的最簡單方法是使用Oracle Enterprise Manager 的支持工作臺。ADRCI 提供了一個可代替支持工作臺大部分功能的命令行,并添加了一些功能,如列出和查詢跟蹤文件。
?
可以使用ADRCI 查看預警日志文件的內(nèi)容。可以選擇更改當前的ADR 主目錄。使用SHOW HOMES 命令列出所有ADR 主目錄,然后使用SET HOMEPATH 命令更改當前的ADR 主目錄。
請確保已正確設置了操作系統(tǒng)環(huán)境變量(如ORACLE_HOME),然后在操作系統(tǒng)命令提示符下輸入以下命令:adrci。
然后,使用SHOW ALERT 命令。要限制輸出,可以使用–TAIL 選項查看最近的記錄。這將顯示預警日志的最后部分(大約20 到30 條消息),然后等待更多消息進入預警日志中。這些剛剛進入到預警日志的消息也會顯示出來。使用此命令,可以對預警日志進行實時監(jiān)視。按CTRL-C 可停止等待并返回到ADRCI 提示符處。如果需要,還可以指定要打印的行數(shù)。
?
注:ADRCI 允許您將輸出假脫機到文件中,與在SQL*Plus 中使用的方法非常相似。
?
二.ADRCI 使用示例
?
2.1 幫助
[oracle@dave dave]$ adrci
?
ADRCI: Release 11.2.0.3.0 - Production onThu Oct 11 18:34:29 2012
?
Copyright (c) 1982, 2011, Oracle and/or itsaffiliates.? All rights reserved.
?
ADR base = "/u01/app/oracle"
adrci> show homepath
ADR Homes:
diag/rdbms/dave/dave
?
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 beused directly by Oracle, type "HELP EXTENDED" to see the list
?
2.2 查看alert log
?
adrci> help show alert
?
?Usage: SHOW ALERT [-p <predicate_string>]? [-term]
??????????????????? [ [-tail [num] [-f]] |[-file <alert_file_name>] ]
?Purpose: Show alert messages.
?
?Options:
???[-p <predicate_string>]: The predicate string must bedouble-quoted.
???The fields in the predicate are the fields:
???????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)
?
???[-tail [num] [-f]]: Output last part of the alert messages and
???output latest messages as the alert log grows. If num is not specified,
???the last 10 messages are displayed. If "-f" is specified, newdata
???will append at the end as new alert messages are generated.
?
[-term]: Direct results to terminal. If this option is notspecified,??? the results will be open inan editor. By default, it will open in emacs, but "set editor" can beused to set other editors.
--如果直接showalert ,會啟用editor模式。
?
???[-file <alert_file_name>]: Allow users to specify an alert filewhich
???may not be in ADR. <alert_file_name> must be specified with fullpath.
???Note that this option cannot be used with the -tail option
?
?Examples:?
???show alert
???show alert -p "message_text like '%incident%'"
???show alert -tail 20
小技巧:
當有多個homepath的時候,我們在使用show alert 時會讓我們選擇。 這樣不方便查看,我們可以直接先指定我們的homepath,這樣就避免出現(xiàn)這種問題了。 如下:
adrci> show homepath
ADR Homes:?
diag/rdbms/dave/dave
diag/tnslsnr/dave/listener
adrci> show alert
Choose the alert log from the following homes to view:
1: diag/rdbms/dave/dave
2: diag/tnslsnr/dave/listener
Q: to quit
Please select option: 1
adrci> set homepath diag/rdbms/dave/dave
adrci> show alert -tail 20?
2.2.1 顯示最近10條alert log
adrci> showalert -tail
2012-10-11 17:40:04.975000 +08:00
Dumping diagnostic data indirectory=[cdmp_20121011174004], requested by (instance=1, osid=16650 (CJQ0)),summary=[incident=13378].
2012-10-11 17:40:08.193000 +08:00
Restarting dead background process CJQ0
CJQ0 started with pid=22, OS id=23205
Sweep [inc][13458]: completed
2012-10-11 17:40:09.273000 +08:00
Sweep [inc][13378]: completed
Sweep [inc2][13378]: completed
2012-10-11 17:40:10.805000 +08:00
Dumping diagnostic data indirectory=[cdmp_20121011174010], requested by (instance=1, osid=18804),summary=[incident=13458].
2012-10-11 17:41:08.886000 +08:00
Sweep [inc2][13458]: completed
2012-10-11 18:14:32.747000 +08:00
Time drift detected. Please check VKTMtrace file for more details.
?
2.2.2 顯示最近15條alert log
adrci> showalert -tail 15
2012-10-11 15:57:01.996000 +08:00
Time drift detected. Please check VKTMtrace file for more details.
2012-10-11 17:00:05.236000 +08:00
Time drift detected. Please check VKTMtrace file for more details.
2012-10-11 17:39:24.364000 +08:00
Thread 1 advanced to log sequence 36 (LGWRswitch)
?Current log# 3 seq# 36 mem# 0: /u01/app/oracle/oradata/anqing/redo03.log
2012-10-11 17:39:59.093000 +08:00
Exception [type: SIGSEGV, Address notmapped to object] [ADDR:0x0] [PC:0x0, {empty}] [flags: 0x0, count: 1]
Exception [type: SIGSEGV, Address notmapped to object] [ADDR:0x0] [PC:0x0, {empty}] [flags: 0x0, count: 1]
2012-10-11 17:40:00.347000 +08:00
Errors in file /u01/app/oracle/diag/rdbms/dave/dave/trace/dave_cjq0_16650.trc? (incident=13378):
ORA-07445: exception encountered: core dump[PC:0x0] [SIGSEGV] [ADDR:0x0] [PC:0x0] [Address not mapped to object] []
Errors in file/u01/app/oracle/diag/rdbms/dave/dave/trace/dave_ora_18804.trc? (incident=13458):
ORA-07445: ??o??°??????é”?èˉˉ: ??????è????¨ [PC:0x0] [SIGSEGV] [ADDR:0x0] [PC:0x0] [Address not mapped toobject] []
Incident details in:/u01/app/oracle/diag/rdbms/dave/dave/incident/incdir_13458/dave_ora_18804_i13458.trc
Incident details in:/u01/app/oracle/diag/rdbms/dave/dave/incident/incdir_13378/dave_cjq0_16650_i13378.trc
Use ADRCI or Support Workbench to packagethe incident.
See Note 411.1 at My Oracle Support forerror and packaging details.
Use ADRCI or Support Workbench to packagethe incident.
See Note 411.1 at My Oracle Support forerror and packaging details.
2012-10-11 17:40:04.975000 +08:00
Dumping diagnostic data indirectory=[cdmp_20121011174004], requested by (instance=1, osid=16650 (CJQ0)),summary=[incident=13378].
2012-10-11 17:40:08.193000 +08:00
Restarting dead background process CJQ0
CJQ0 started with pid=22, OS id=23205
Sweep [inc][13458]: completed
2012-10-11 17:40:09.273000 +08:00
Sweep [inc][13378]: completed
Sweep [inc2][13378]: completed
2012-10-11 17:40:10.805000 +08:00
Dumping diagnostic data indirectory=[cdmp_20121011174010], requested by (instance=1, osid=18804),summary=[incident=13458].
2012-10-11 17:41:08.886000 +08:00
Sweep [inc2][13458]: completed
2012-10-11 18:14:32.747000 +08:00
Time drift detected. Please check VKTMtrace file for more details.
adrci>
?
2.2.3 時時監(jiān)控alert log
adrci> showalert -tail -f
2012-10-11 17:40:04.975000 +08:00
Dumping diagnostic data indirectory=[cdmp_20121011174004], requested by (instance=1, osid=16650 (CJQ0)),summary=[incident=13378].
2012-10-11 17:40:08.193000 +08:00
Restarting dead background process CJQ0
CJQ0 started with pid=22, OS id=23205
Sweep [inc][13458]: completed
2012-10-11 17:40:09.273000 +08:00
Sweep [inc][13378]: completed
Sweep [inc2][13378]: completed
2012-10-11 17:40:10.805000 +08:00
Dumping diagnostic data indirectory=[cdmp_20121011174010], requested by (instance=1, osid=18804),summary=[incident=13458].
2012-10-11 17:41:08.886000 +08:00
Sweep [inc2][13458]: completed
2012-10-11 18:14:32.747000 +08:00
Time drift detected. Please check VKTMtrace file for more details.
?
--該命令會顯示最近10條記錄,并時時更新新的log。 可以按CTRL-C來結束等待,返回ADRCI。
?
?
2.2.4 查看所有的alert log
?
如果直接使用show alert,默認使用editor模式,如vi,所以退出使用vi的命令。可以指定-term參數(shù),直接顯示,而不是打開。 但這樣,如果日志過長,不方便查看。
?
adrci> show alert
?
ADR Home =/u01/app/oracle/diag/rdbms/dave/dave:
*************************************************************************
Output the results to file:/tmp/alert_26566_1402_dave_1.ado
?
2012-09-07 13:12:22.622000 +08:00
Starting ORACLE instance (normal)
2012-09-07 13:12:24.456000 +08:00
LICENSE_MAX_SESSION = 0
LICENSE_SESSIONS_WARNING = 0
Shared memory segment for instancemonitoring created
Picked latch-free SCN scheme 3
Using LOG_ARCHIVE_DEST_1 parameter defaultvalue as USE_DB_RECOVERY_FILE_DEST
Autotune of undo retention is turned on.
IMODE=BR
ILAT =27
LICENSE_MAX_USERS = 0
?
注意:
show alert的起始點是在control中設置的保留時間之后的日志,或者說是purge之后的日志,之前的日志無法顯示。后文有說明。
?
2.2.5 查看具體的ORA-錯誤
adrci> showalert? -P "message_text? LIKE '%ORA-600%'"
?
ADR Home =/u01/app/oracle/diag/rdbms/dave/dave:
*************************************************************************
adrci>
?
adrci> showalert? -P "message_text? LIKE '%ORA-27037%'"
?
ADR Home =/u01/app/oracle/diag/rdbms/dave/dave:
*************************************************************************
Output the results to file:/tmp/alert_26566_1402_dave_7.ado
?
2012-09-07 13:21:06.387000 +08:00
Errors in file/u01/app/oracle/diag/rdbms/dave/dave/trace/dave_ora_12435.trc:
ORA-00313: open failed for members of loggroup 1 of thread 1
ORA-00312: online log 1 thread 1:'/u01/app/oracle/oradata/dave/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file ordirectory
Additional information: 3
Errors in file/u01/app/oracle/diag/rdbms/dave/dave/trace/dave_ora_12435.trc:
ORA-00313: open failed for members of loggroup 1 of thread 1
ORA-00312: online log 1 thread 1:'/u01/app/oracle/oradata/dave/redo01.log'
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file ordirectory
…
?
2.3 查找trace files
??? 通過ADRCI,我們可以查看ADR下的所有tracefiles,并可以對這些trace 文件進行過濾,只查看我們關注的信息。
?
如: 獲取trace 文件包含‘mmon’字符串的文件:
adrci> show tracefile
????diag/rdbms/dave/dave/trace/dave_mmon_16622.trc
????diag/rdbms/dave/dave/trace/dave_vktm_16598.trc
????diag/rdbms/dave/dave/trace/alert_dave.log
????diag/rdbms/dave/dave/incident/incdir_8529/dave_mmnl_6039_i8529.trc
????diag/rdbms/dave/dave/incident/incdir_13378/dave_cjq0_16650_i13378.trc
????diag/rdbms/dave/dave/incident/incdir_13458/dave_ora_18804_i13458.trc
adrci> showtracefile %mmon%
????diag/rdbms/dave/dave/trace/dave_mmon_16622.trc
?
2.4 查看incident
?
adrci> show incident
?
ADR Home =/u01/app/oracle/diag/rdbms/dave/dave:
*************************************************************************
INCIDENT_ID????????? PROBLEM_KEY????????????????????????????????????????????????CREATE_TIME?????????????????????????????
------------------------------------------------------------------------------- ----------------------------------------
8529???????????????? ORA 7445 [PC:0x0]??????????????????????????????????????????2012-09-12 04:22:16.811000 +08:00??????
13378??????????????? ORA 7445 [PC:0x0]??????????????????????????????????????????2012-10-11 17:40:00.347000 +08:00??????
13458??????????????? ORA 7445 [PC:0x0]??????????????????????????????????????????2012-10-11 17:40:00.356000 +08:00??????
3 rows fetched
?
2.5 purge alert log
在2.2.4 節(jié)里,我們通過show alert 查看了所有的alert log信息。
show alert的起始點是在control中設置的保留時間之后的日志,或者說是purge之后的日志,之前的日志無法顯示。
?
ADRCI的purge 命令會清空alert log的內(nèi)容,注意這里的內(nèi)容僅僅是XML的alert log。對于trace目錄下的text 格式的alert log 不會進行清空。 我們在使用purge 時,可以指定alert log中entries保留的時間。 單位是分鐘。
?
adrci> help purge
?
?Usage: PURGE [[-i <id1> | <id1> <id2>] |
?????????????? [-age <mins> [-typeALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]]]:
?
?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]: Users can input a single incident ID, or a
???range of incidents to purge.
?
???[-age <mins>]: Users can specify the purging policy either to all
???the diagnostic data or the specified type. The data older than<mins>
???ago will be purged
?
???[-type ALERT|INCIDENT|TRACE|CDUMP|HM|UTSCDMP]: Users can specify whattype of data to be purged.
?
?Examples:?
???purge
???purge -i 123 456
??? purge-age 60 -type incident
?
如清除超過60分鐘前的alert log,命令如下:
adrci> purge -age 60 -type ALERT
adrci> show alert -term
?
ADR Home =/u01/app/oracle/diag/rdbms/dave/dave:
?
這里已經(jīng)沒有日志了。 我們手工的制造一條日志。 在查看:
?
SQL> alter system switch logfile;
System altered.
?
adrci> show alert -term
?
ADR Home =/u01/app/oracle/diag/rdbms/dave/dave:
*************************************************************************
2012-10-11 19:39:31.042000 +08:00
Thread 1 advanced to log sequence 37 (LGWRswitch)
?Current log# 1 seq# 37 mem# 0: /u01/app/oracle/oradata/anqing/redo01.log
--這里顯示了我們?nèi)罩厩袚Q的記錄。
?
2.6 修改ADR 的保留時間
?
adrci> show control
?
ADR Home =/u01/app/oracle/diag/rdbms/dave/dave:
*************************************************************************
ADRID??????????????? SHORTP_POLICY??????? LONGP_POLICY???????
-------------------- ----------------------------------------
3642307927?????????? 720????????????????? 8760???????????????
1 rows fetched
--之前格式有點亂,我調(diào)整了一下。
?
官網(wǎng)對這2個參數(shù)的解釋:
Attribute Name | Description |
SHORTP_POLICY | Number of hours after which to purge ADR contents that have a short life. Default is 720 (30 days). A setting of 0 (zero) means that all contents that have a short life can be purged. The maximum setting is 35791394. If a value greater than 35791394 is specified, then this attribute is set to 0 (zero). The ADR contents that have a short life include the following: Trace files Core dump files Packaging information |
LONGP_POLICY | Number of hours after which to purge ADR contents that have a long life. Default is 8760 (365 days). A setting of 0 (zero) means that all contents that have a long life can be purged. The maximum setting is 35791394. If a value greater than 35791394 is specified, then this attribute is set to 0 (zero). The ADR contents that have a long life include the following: Incident information Incident dumps Alert logs |
?
SHORTP_POLICY 默認是720小時,30天。其控制如下三種文件的保留時間:
(1)? Trace files
(2)? Core dump files
(3)? Packaging information
?
LONGP_POLICY默認值是8760小時,即365天,1年,其控制如下三種文件的保留時間:
(1)? Incident information
(2)? Incident dumps
(3)? Alert logs
?
?
修改ADR的保留策略:
adrci> set control (SHORTP_POLICY = 360)?
adrci> set control (LONGP_POLICY = 2160)?
?
adrci> show control
?
ADR Home =/u01/app/oracle/diag/rdbms/dave/dave:
*************************************************************************
ADRID??????????????? SHORTP_POLICY??????? LONGP_POLICY????????
-------------------- ----------------------------------------
3642307927?????????? 360????????????????? 2160??????? ?????????
1 rows fetched
?
?
關于ADRCI 的更多內(nèi)容,參考官網(wǎng)手冊:
http://docs.oracle.com/cd/E11882_01/server.112/e10701/adrci.htm
?
?
?
---------------------------------------------------------------------------------------
版權所有,文章允許轉載,但必須以鏈接方式注明源地址,否則追究法律責任!
Skype: ???tianlesoftware
QQ:???? ? tianlesoftware@gmail.com
Email: ???tianlesoftware@gmail.com
Blog:?? ? http://blog.csdn.net/tianlesoftware
Weibo: ???http://weibo.com/tianlesoftware
Twitter:? http://twitter.com/tianlesoftware
Facebook: http://www.facebook.com/tianlesoftware
Linkedin: http://cn.linkedin.com/in/tianlesoftware
轉載于:https://www.cnblogs.com/tianlesoftware/archive/2012/11/25/3609149.html
總結
以上是生活随笔為你收集整理的Oracle 11g 新特性 -- 自动诊断资料档案库(ADR) 说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 理解分布式id生成算法--雪花算法(Sn
- 下一篇: jl1.如何设置元素的宽高包含元素的边框