溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

監(jiān)聽(tīng)器控制程序lsnrctl跟蹤trace file的示例分析

發(fā)布時(shí)間:2021-11-05 17:31:11 來(lái)源:億速云 閱讀:191 作者:柒染 欄目:建站服務(wù)器

監(jiān)聽(tīng)器控制程序lsnrctl跟蹤trace file的示例分析,針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。

 

Oracle監(jiān)聽(tīng)器是一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)組件,在整個(gè)體系中扮演非常重要的作用。即使在windows平臺(tái)上,監(jiān)聽(tīng)器listener也被實(shí)現(xiàn)成為一個(gè)獨(dú)立的進(jìn)程程序。

 

在一些與網(wǎng)絡(luò)相關(guān)的故障中,監(jiān)聽(tīng)器相關(guān)故障占了很大部分。了解監(jiān)聽(tīng)器的工作過(guò)程,分析每個(gè)環(huán)節(jié)出現(xiàn)問(wèn)題的幾率,是監(jiān)聽(tīng)器發(fā)生故障時(shí)我們常常需要做的事情。這個(gè)過(guò)程我們就需要使用監(jiān)聽(tīng)器trace功能。

 

這里主要介紹如何使用lsnrctl工具獲取到監(jiān)聽(tīng)器跟蹤文件(trace file),以及獲取的跟蹤級(jí)別。

 

1、環(huán)境介紹

 

本次我們選擇10g監(jiān)聽(tīng)器進(jìn)行試驗(yàn)。

 

 

Microsoft Windows XP [版本 5.1.2600]

(C) 版權(quán)所有 1985-2001 Microsoft Corp.

 

C:\Documents and Settings\Administrator>lsnrctl

 

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-12-2011 20:31:59

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

 

歡迎來(lái)到LSNRCTL, 請(qǐng)鍵入"help"以獲得信息。

 

 

注意,lsnrctl并不是監(jiān)聽(tīng)器程序本身,而是監(jiān)聽(tīng)器控制的一個(gè)小工具。借助這個(gè)工具,我們可以操縱監(jiān)聽(tīng)器行為、設(shè)置監(jiān)聽(tīng)器參數(shù)。Lsnrctl命令行使用的命令很簡(jiǎn)單。

 

 

LSNRCTL> help

以下操作可用

星號(hào) (*) 表示修改符或擴(kuò)展命令:

start               stop                status

services            version             reload

save_config         trace               change_password

quit                exit                set*

show*

 

 

此時(shí),數(shù)據(jù)庫(kù)尚未啟動(dòng)。監(jiān)聽(tīng)器處于運(yùn)行狀態(tài)。

 

 

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 - Production

啟動(dòng)日期                  19-12-2011 20:28:53

正常運(yùn)行時(shí)間              0 0 小時(shí) 3 32

跟蹤級(jí)別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監(jiān)聽(tīng)程序參數(shù)文件          D:\oracle\network\admin\listener.ora

監(jiān)聽(tīng)程序日志文件          D:\oracle\network\log\listener.log

(篇幅原因,有省略……

LSNRCTL>

 

 

此時(shí),沒(méi)有進(jìn)行跟蹤文件輸出。

 

2、簡(jiǎn)單跟蹤文件生成

 

我們先介紹如何使用一般監(jiān)聽(tīng)跟蹤方法。該配置從lsnrctl設(shè)置。在lsnrctl配置中,有一些與trace相關(guān)的內(nèi)容。

 

 

LSNRCTL> show

 show之后提供了以下操作

星號(hào) (*) 表示修改符或擴(kuò)展命令:

rawmode                     displaymode

rules                       trc_file

trc_directory               trc_level

log_file                    log_directory

(篇幅原因,有省略……

 

 

其中,以trc開(kāi)頭的幾個(gè)參數(shù)顯然是與trace文件操作生成有關(guān)。我們可以使用show命令加以顯示。

 

--跟蹤文件名稱(chēng)

LSNRCTL> show trc_file

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP) (HOST=www-0e6111dff74)(PORT=1521)))

LISTENER 參數(shù) "trc_file" 設(shè)為 listener.trc

命令執(zhí)行成功

 

--跟蹤文件目錄

LSNRCTL> show trc_directory

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)

))

LISTENER 參數(shù) "trc_directory" 設(shè)為 D:\oracle\network\trace

命令執(zhí)行成功

 

--跟蹤程度

LSNRCTL> show trc_level

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)

))

LISTENER 參數(shù) "trc_level" 設(shè)為 off

命令執(zhí)行成功

 

 

通過(guò)上面參數(shù),我們可以配置跟蹤文件的位置、名稱(chēng)和跟蹤級(jí)別。

 

開(kāi)啟跟蹤,我們可以使用trace命令。具體格式如下:

 

 

LSNRCTL> help trace

trace OFF | USER | ADMIN | SUPPORT [<listener_name>] : set tracing to the specif

ied level

 

 

注意,我們開(kāi)啟跟蹤是有三個(gè)級(jí)別的,分別為user、adminsupport級(jí)別。具體含義如下:

 

ü        Off或者數(shù)值0:表示對(duì)當(dāng)前的監(jiān)聽(tīng)器不開(kāi)啟跟蹤;

ü        User或者數(shù)值4user trace information;

ü        Admin或者數(shù)值10administration trace information

ü        Support或者數(shù)值16Oracle support Services trace information;

 

通常,我們使用support級(jí)別作為跟蹤。

 

 

LSNRCTL> trace 12

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)

))

打開(kāi)的跟蹤文件: D:\oracle\network\trace\listener.trc

 

LSNRCTL> show trc_level

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)

))

LISTENER 參數(shù) "trc_level" 設(shè)為 admin

命令執(zhí)行成功

 

 

從返回信息和status信息,都可以看出此時(shí)監(jiān)聽(tīng)器是被監(jiān)聽(tīng)狀態(tài)。

 

 

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 - Production

啟動(dòng)日期                  19-12-2011 20:28:53

正常運(yùn)行時(shí)間              0 0 小時(shí) 15 5

跟蹤級(jí)別                  admin

安全性                    ON: Local OS Authentication

SNMP                      OFF

監(jiān)聽(tīng)程序參數(shù)文件          D:\oracle\network\admin\listener.ora

監(jiān)聽(tīng)程序日志文件          D:\oracle\network\log\listener.log

監(jiān)聽(tīng)程序跟蹤文件          D:\oracle\network\trace\listener.trc

監(jiān)聽(tīng)端點(diǎn)概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))

(篇幅原因,有省略……

LSNRCTL>

 

 

我們可以在這個(gè)過(guò)程中,嘗試進(jìn)行動(dòng)態(tài)注冊(cè)或者新連接連入等操作。最后關(guān)閉監(jiān)聽(tīng)。

 

 

LSNRCTL> trace off

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)))

命令執(zhí)行成功

 

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 - Production

啟動(dòng)日期                  19-12-2011 20:28:53

正常運(yùn)行時(shí)間              0 0 小時(shí) 17 16

跟蹤級(jí)別                  off

安全性                    ON: Local OS Authentication

SNMP                      OFF

監(jiān)聽(tīng)程序參數(shù)文件          D:\oracle\network\admin\listener.ora

監(jiān)聽(tīng)程序日志文件          D:\oracle\network\log\listener.log

監(jiān)聽(tīng)端點(diǎn)概要...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))

 

 

此時(shí),我們到監(jiān)聽(tīng)目錄下,就可以找到監(jiān)聽(tīng)文件。下面是片段:

 

 

nsglrespond: entry

nsdo: cid=3, pcode=67, *bl=97, *what=1, uflgs=0x0, cflgs=0x3

nsdo: rank=64, nsctxrnk=0

nsdo: nsctx: state=8, flg=0x100400c, mvd=0

nsdo: gtn=206, gtc=206, ptn=10, ptc=2011

nsdo: 97 bytes to NS buffer

nsdo: nsctxrnk=0

nsglrespond: exit

nsgldissolve: entry

nstimarmed: no timer allocated

nsdo: cid=3, pcode=66, *bl=0, *what=0, uflgs=0x0, cflgs=0x2

nsdo: rank=64, nsctxrnk=0

nsdo: nsctx: state=8, flg=0x1004008, mvd=0

nsevunreg: cid=3, sgt=0, rdm=2

 

 

上面每一行記錄,都對(duì)應(yīng)監(jiān)聽(tīng)器程序的動(dòng)作信息。當(dāng)然,直觀上是不容易讀懂的。我們以后再討論如何讀懂監(jiān)聽(tīng)跟蹤文件內(nèi)容。

 

3、帶時(shí)間信息的監(jiān)聽(tīng)跟蹤文件

 

上面部分中,我們已經(jīng)獲得了簡(jiǎn)單的跟蹤文件。但是我們?cè)\斷問(wèn)題的時(shí)候,通常是希望得到每個(gè)階段操作執(zhí)行時(shí)間的長(zhǎng)短,從而發(fā)現(xiàn)問(wèn)題瓶頸。

 

例如:我們發(fā)現(xiàn)通過(guò)監(jiān)聽(tīng)器連接速度很慢,但是繞過(guò)監(jiān)聽(tīng)器直接連接的速度很快。說(shuō)明連接操作中,一個(gè)或者幾個(gè)環(huán)節(jié)存在性能問(wèn)題。具體是哪個(gè)?還是需要進(jìn)一步時(shí)間間隔判斷。

 

我們想要獲得時(shí)間信息,需要配置兩個(gè)參數(shù)在listener.ora文件中。

 

 

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =     

      (ADDRESS = (PROTOCOL = TCP)(HOST = www-0e6111dff74)(PORT = 1521))

    )

  )

 

TRACE_TIMESTAMP_LISTENER=true

TRACE_LEVEL_LISTENER=16

 

 

首先,需要在參數(shù)文件listener.ora中,加入兩個(gè)參數(shù)取值。其中trace_timestamp_<listener_name>表示是否開(kāi)啟跟蹤時(shí)間功能。如果設(shè)置為true/on,表示記錄跟蹤事件的時(shí)候,同時(shí)會(huì)記錄上具體的時(shí)間。

 

另一個(gè)參數(shù)trace_level_<listener_name>表示啟動(dòng)監(jiān)聽(tīng)程序時(shí)的跟蹤級(jí)別。要讓這兩個(gè)參數(shù)生效,需要reload或者重新啟動(dòng)監(jiān)聽(tīng)器。

 

 

LSNRCTL> start

啟動(dòng)tnslsnr: 請(qǐng)稍候...

 

TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production

系統(tǒng)參數(shù)文件為D:\oracle\network\admin\listener.ora

寫(xiě)入D:\oracle\network\log\listener.log的日志信息

寫(xiě)入D:\oracle\network\trace\listener.trc的跟蹤信息

監(jiān)聽(tīng): (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=www-0e6111dff74)(PORT=1521)))

 

正在連接到 (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

啟動(dòng)日期                  19-12-2011 21:47:12

正常運(yùn)行時(shí)間              0 0 小時(shí) 0 1

跟蹤級(jí)別                  support

安全性                    ON: Local OS Authentication

SNMP                      OFF

監(jiān)聽(tīng)程序參數(shù)文件          D:\oracle\network\admin\listener.ora

監(jiān)聽(tīng)程序日志文件          D:\oracle\network\log\listener.log

監(jiān)聽(tīng)程序跟蹤文件          D:\oracle\network\trace\listener.trc

(篇幅原因,省略部分……

 

LSNRCTL> trace 0

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)

))

命令執(zhí)行成功

LSNRCTL> trace 16

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=www-0e6111dff74)(PORT=1521)

))

打開(kāi)的跟蹤文件: D:\oracle\network\trace\listener.trc

命令執(zhí)行成功

 

 

此時(shí)生成的trace文件中,有如下內(nèi)容:

 

 

[19-12-2011 21:53:40:281] nsglrespond: entry

[19-12-2011 21:53:40:281] nsdo: entry

[19-12-2011 21:53:40:281] nsdo: cid=5, pcode=67, *bl=97, *what=1, uflgs=0x0, cflgs=0x3

[19-12-2011 21:53:40:281] nsdo: rank=64, nsctxrnk=0

[19-12-2011 21:53:40:281] nsdo: nsctx: state=8, flg=0x100400c, mvd=0

[19-12-2011 21:53:40:281] nsdo: gtn=206, gtc=206, ptn=10, ptc=2011

[19-12-2011 21:53:40:281] nsdo: 97 bytes to NS buffer

[19-12-2011 21:53:40:281] nsdo: nsctxrnk=0

[19-12-2011 21:53:40:281] nsiooverflow: entry

[19-12-2011 21:53:40:281] nsdo: normal exit

[19-12-2011 21:53:40:281] nsglrespond: exit

[19-12-2011 21:53:40:281] nsgldissolve: entry

[19-12-2011 21:53:40:281] nsdisc: entry

[19-12-2011 21:53:40:281] nsclose: entry

記錄在毫秒級(jí)別的跟蹤信息。

 

監(jiān)聽(tīng)器是一個(gè)涉及網(wǎng)絡(luò)、Oracle實(shí)例、連接、客戶(hù)端和Oracle Net復(fù)雜組件。我們遇到的很多問(wèn)題,根源其實(shí)都與監(jiān)聽(tīng)器有或多或少的關(guān)系。掌握跟蹤文件,對(duì)于監(jiān)聽(tīng)器診斷至關(guān)重要。

關(guān)于監(jiān)聽(tīng)器控制程序lsnrctl跟蹤trace file的示例分析問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI