解析listener跟蹤檔案
在上篇《監聽器控制程式lsnrctl跟蹤trace file》(http://space.itpub.net/17203031/viewspace-713587)中,我們探討了如何獲取到監聽器跟蹤檔案。本篇中,我們繼續來研究如何分析跟蹤檔案,從而發現其中的問題。
1、實驗檔案獲取
首先,我們先按照上篇中介紹的方法,獲取一個跟蹤檔案片段。先對listener.ora檔案進行配置引數。
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = www-0e6111dff74)(PORT = 1521))
)
)
TRACE_TIMESTAMP_LISTENER=true
TRACE_LEVEL_LISTENER=16
重新reload監聽器控制檔案,應用引數。
Microsoft Windows XP [版本 5.1.2600]
(C) 版權所有 1985-2001 Microsoft Corp.
C:\Documents and Settings\Administrator>lsnrctl
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-12月-2011 19:49:09
Copyright (c) 1991, 2005, Oracle. All rights reserved.
歡迎來到LSNRCTL, 請鍵入"help"以獲得資訊。
--使用reload命令,重新載入引數檔案;
LSNRCTL> reload
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)))
命令執行成功
此時,監聽跟蹤模式啟動。
LSNRCTL> status
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
啟動日期 20-12月-2011 19:33:01
正常執行時間 0 天 0 小時 16 分 22 秒
跟蹤級別 support
安全性 ON: Local OS Authentication
SNMP OFF
監聽程式引數檔案 D:\oracle\network\admin\listener.ora
監聽程式日誌檔案 D:\oracle\network\log\listener.log
監聽程式跟蹤檔案 D:\oracle\network\trace\listener.trc
監聽端點概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))
服務摘要..
服務 "PLSExtProc" 包含 1 個例程。
例程 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理程式...
命令執行成功
其後,啟動資料庫orcl,使用sqlplus進行一次連線。之後關閉監聽跟蹤。
LSNRCTL> trace off
正在連線到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)))
命令執行成功
LSNRCTL>
我們就可以在目錄位置上找到listener.trc。
2、Trace檔案處理和解析
我們使用的是帶時間戳的trace檔案生成。開啟檔案後,可以看到以操作呼叫為順序的trace檔案記錄。
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-12月-2011 19:49:12
Copyright (c) 1991, 2005, Oracle. All rights reserved.
[20-12月-2011 19:49:12:031] --- TRACE CONFIGURATION INFORMATION FOLLOWS ---
[20-12月-2011 19:49:12:031] New trace stream is D:\oracle\network\trace\listener.trc
[20-12月-2011 19:49:12:031] New trace level is 16
[20-12月-2011 19:49:12:031] --- TRACE CONFIGURATION INFORMATION ENDS ---
[20-12月-2011 19:49:12:031] nscontrol: entry
[20-12月-2011 19:49:12:031] ntvlaarl: entry
原始跟蹤檔案的特點是詳細記錄了監聽器的每個動作、每條資訊。我們希望知道的和不希望知道的內容都在其中。缺點是不容易閱讀,其中很多縮寫對技術水平要求很高。
不過,要注意trace檔案中的條目,都是按照entry+exit的體系巢狀起來的。如下:
[20-12月-2011 19:49:40:640] nau_gparams: entry
[20-12月-2011 19:49:40:640] nam_gbp: Reading parameter "sqlnet.authentication_required" from parameter file
[20-12月-2011 19:49:40:640] nam_gbp: Parameter not found
[20-12月-2011 19:49:40:640] nau_gparams: Using default value "FALSE"
[20-12月-2011 19:49:40:640] nau_gslf: entry
[20-12月-2011 19:49:40:640] nam_gic: entry
[20-12月-2011 19:49:40:640] nam_gic: Counting # of items in "sqlnet.authentication_services" parameter
[20-12月-2011 19:49:40:640] nam_gic: Parameter not found
[20-12月-2011 19:49:40:640] nam_gic: Found 0 items
[20-12月-2011 19:49:40:640] nam_gic: exit
[20-12月-2011 19:49:40:640] nau_gslf: Using default value "all available adapters"
[20-12月-2011 19:49:40:640] nauss_set_state: entry
[20-12月-2011 19:49:40:640] nauss_set_state: exit
[20-12月-2011 19:49:40:640] nau_gslf: exit
[20-12月-2011 19:49:40:640] nau_gparams: exit
上面片段說明監聽器程式在獲取sqlnet.ora引數中,沒有取到而去應用預設值的過程。
另外,Oracle也提供了工具對監聽器跟蹤檔案進行解析。Trcasst是Oracle提供的一個跟蹤檔案解析工具,可以幫我們分析跟蹤檔案內容。
D:\oracle\NETWORK\trace>trcasst
Trace Assistant 實用程式: 版本 10.2.0.1.0 正式版, 平臺: 2011年12月20日 21:14:45
版權所有 (c) 2001, 2005, Oracle。保留所有權利。
TNS-04302: Trace Assistant 用法錯誤: 檔名缺失。
用法: trcasst [options] <filename>
[options] 預設值為 -odt -e0 -s
<filename> 總是最後一個引數
-o[c|d][u|t][q] Net 服務和 TTC 資訊
[c] Net 服務資訊概要
[d] 詳細的 Net 服務資訊
[u] TTC 資訊概要
[t] 詳細的 TTC 資訊
[q] SQL 命令 (與 u 一起使用)
-s 統計資料
-e[0|1|2] 錯誤資訊, 預設為 0
[0] 轉換 NS 錯誤數
[1] 轉換錯誤
[2] 沒有轉換的錯誤數
-l[a|i <connection_id>] 連線資訊
[a] 列出跟蹤檔案中的所有連線
[i <connection_id>] 對指定的連線進行解碼
D:\oracle\NETWORK\trace>dir
驅動器 D 中的卷沒有標籤。
卷的序列號是 2294-1384
D:\oracle\NETWORK\trace 的目錄
2011-12-20 19:49 <DIR> .
2011-12-20 19:49 <DIR> ..
2011-12-20 19:50 315,912 listener.trc
1 個檔案 315,912 位元組
2 個目錄 48,617,730,048 可用位元組
--將分析結果輸出到res.txt檔案中。
D:\oracle\NETWORK\trace>trcasst listener.trc>res.txt
D:\oracle\NETWORK\trace>
生成檔案中:
Trace Assistant 實用程式: 版本 10.2.0.1.0 正式版, 平臺: 2011年12月20日 20:53:49
版權所有 (c) 2001, 2005, Oracle。保留所有權利。
*************************************************************************
* Trace Assistant *
*************************************************************************
3、Trace檔案處理報告解析
本節介紹trace分析報告內容。大體上,分析報告有四部分內容:
ü 傳送send資訊部分
---> Send 88 bytes - Redirect packet timestamp=20-12月-2011 19:49:16:250
Redirect data length: 78
Redirect Data: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\NTN_D9C_D5ECB31F.ORA)))
ü 接受receive資訊部分
<--- Received 207 bytes - Connect packet timestamp=20-12月-2011 19:50:31:171
Current NS version number is: 313.
Lowest NS version number can accommodate is: 300.
Global options for the connection:
Don't care
Maximum SDU size: 2048
Maximum TDU size: 32767
NT protocol characteristics:
Asynchronous mode
Callback mode
Test for more data
Full duplex I/O
Line turnaround value: 0
Connect data length: 149
Connect data offset: 58
Connect data maximum size: 2040
Disable NA services on this connection
No NA services are linked in
Disable NA services on this connection
No NA services are linked in
(DESCRIPTION=(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))
(COMMAND=trace)(TRACE=off)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169
869568)))
ü 錯誤資訊
對連線執行中出現的錯誤,也會給予顯示和解析。
///////////////////////////////////////////////////////////////
Error found. Error Stack follows:
id:4
Operation code:72
NS Error 1:12586
NS Error 2:0
NT Generic Error:0
Protocol Error:0
OS Error:0
NS & NT Errors Translation
TNS-04315: Trace Assistant 內部錯誤: Can't find resource for bundle oracle.net.trcasst.mesg.TnsError, key 12586
/
00000, 00000 "不是錯誤"
// *原因: 一切操作正常。
// *操作: 不必著急: 儘管放心。
/
00000, 00000 "不是錯誤"
// *原因: 一切操作正常。
// *操作: 不必著急: 儘管放心。
/
///////////////////////////////////////////////////////////////
ü 統計資訊
----------------------
跟蹤檔案統計資料:
----------------------
開始時間戳: 20-12月-2011 19:49:12:031
結束時間戳: 20-12月-2011 19:50:31:171
會話總數: 13
資料庫:
操作計數: 開啟次數 0, 語法分析次數 0, 執行次數 0, 提取次數 0
ORACLE NET SERVICES:
總呼叫數: 已傳送 18 個, 已接收 16 個, 0 oci
總位元組數: 已傳送 3205 位元組, 已接收 3583 位元組
平均位元組數: 每包傳送 178 位元組, 每包接收 223 位元組
最大位元組數: 已傳送 965 位元組, 已接收 714 位元組
總計包數: 已傳送 18 個, 已接收 16 個
如果存在問題,我們就可以從中發現這個跟蹤時間段系統的工作情況。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25097694/viewspace-2129632/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 跟蹤SESSION 與 trace 檔案解析Session
- 檔案-跟蹤檔案
- [zt] oracle跟蹤檔案與跟蹤事件Oracle事件
- oracle跟蹤檔案與跟蹤事件(zt)Oracle事件
- oracle跟蹤檔案和跟蹤事件(zt)Oracle事件
- Oracle跟蹤檔案Oracle
- Oracle跟蹤檔案trace檔案Oracle
- git 忽略跟蹤檔案Git
- 尋找跟蹤檔案
- 控制檔案的跟蹤檔案全文
- Git跟蹤與提交檔案Git
- 獲取跟蹤檔案位置
- 獲取跟蹤檔案_eygle
- 跟蹤 sql 的trace檔案SQL
- tkprof: 分析ORACLE跟蹤檔案Oracle
- 【10053 事件】10053事件的跟蹤檔案解析事件
- Oracle 跟蹤檔案和檔案轉儲(dump)Oracle
- ORACLE 10046 設定跟蹤事件後無跟蹤檔案Oracle事件
- .gitignore忽略跟蹤指定檔案Git
- git clean清除未跟蹤檔案Git
- git刪除未跟蹤檔案Git
- git列出跟蹤的檔案列表Git
- 使用TKPROF檢視跟蹤檔案
- 使用 Tkprof 分析 ORACLE 跟蹤檔案Oracle
- 跟蹤session 與 trace檔案分析Session
- oracle 跟蹤檔案理論整理Oracle
- 跟蹤一次trc檔案
- 轉:使用 Tkprof 分析 ORACLE 跟蹤檔案Oracle
- git列出所有已經跟蹤檔案Git
- ORACLE 跟蹤檔案詳細解釋Oracle
- 請教關於利用跟蹤檔案重建控制檔案
- 12c 程式跟蹤檔案異常
- 11G 怎麼得到跟蹤檔案
- 如何在 Git 中取消檔案的跟蹤Git
- 把資料庫控制檔案備份到跟蹤檔案資料庫
- oracle 跟蹤檔案和轉儲命令詳解Oracle
- truncate、recreate後臺程式跟蹤檔案(trace file)
- 轉載 oracle 跟蹤檔案 和轉儲命令Oracle