解析listener跟蹤檔案

forrest_itpub發表於2016-12-04

 

在上篇《監聽器控制程式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

 

2Trace檔案處理和解析

 

我們使用的是帶時間戳的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也提供了工具對監聽器跟蹤檔案進行解析。TrcasstOracle提供的一個跟蹤檔案解析工具,可以幫我們分析跟蹤檔案內容。

 

 

D:\oracle\NETWORK\trace>trcasst

 

Trace Assistant 實用程式: 版本 10.2.0.1.0 正式版, 平臺: 20111220 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                                *

*************************************************************************

 

 

 

3Trace檔案處理報告解析

 

本節介紹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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章