etworkadmi nlistener.ora監(jiān)聽程序日志文件 C: ooloracleoracleproduct10.2.0db_1
etworkloglistener.log監(jiān)聽端點(diǎn)概要……

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=acca-119hs63yxc)(PORT=1521)))

服務(wù)摘要……

服務(wù)"OTSXDB"包含1個例程。

例程"ots",狀態(tài)READY,包含此服務(wù)的1個處理程序……

服務(wù)"OTS_XPT"包含1個例程。

例程"ots",狀態(tài)READY,包含此服務(wù)的1個處理程序……

服務(wù)"ots"包含1個例程。

例程"ots",狀態(tài)READY,包含此服務(wù)的1個處理程序……

命令執(zhí)行成功

命令status可以查看當(dāng)前監(jiān)聽器的所有信息。當(dāng)前監(jiān)聽器對應(yīng)的服務(wù)包括三個,分別為otsxdb、otx_xpt和ots.三個服務(wù)名是對外使用的,本質(zhì)上對應(yīng)的Oracle實(shí)例都是ots.

監(jiān)聽器進(jìn)程工作都有對應(yīng)的日志信息,在狀態(tài)顯示中,我們也可以看到日志文件位置(C: ooloracleoracleproduct10.2.0db_1
etworkloglistener.log)。下面我們從一個新的日志文件,看監(jiān)聽器工作。

3、Oracle監(jiān)聽器日志解析

下面是我們截取的監(jiān)聽器片段,篇幅原因,有省略。

以pid=2736開始監(jiān)聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=acca-119hs63yxc)(PORT=1521)))

Listener completed notification to CRS on start

TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE 29-6月-2011 10:51:27 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169869568)) * status * 0 29-6月-2011 10:51:39 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169869568)) * status * 0 29-6月-2011 10:52:00 * (CONNECT_DATA=(SID=OTS)(CID=(PROGRAM=C: ooloracleoracleproduct10.2.0db_1perl5.8.3inMSWin32-x86-multi-threadperl.exe)(HOST=ACCA-119HS63YXC)(USER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.39.93)(PORT=3126)) * establish * OTS * 12505 TNS-12505: TNS:監(jiān)聽程序當(dāng)前無法識別連接描述符中所給出的SID 29-6月-2011 10:52:00 * service_register * ots * 0 29-6月-2011 10:52:11 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169869568)) * status * 0 29-6月-2011 10:52:48 * service_update * ots * 0 29-6月-2011 10:53:00 * service_update * ots * 0

(有省略……)

29-6月-2011 10:53:17 * ping * 0 29-6月-2011 10:53:18 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=SYSTEM))(COMMAND=status)(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=acca-119hs63yxc)(PORT=1521)))(VERSION=169869568)) * status * 0 29-6月-2011 10:53:29 * (CONNECT_DATA=(SID=OTS)(CID=(PROGRAM=C: ooloracleoracleproduct10.2.0db_1perl5.8.3inMSWin32-x86-multi-threadperl.exe)(HOST=ACCA-119HS63YXC)(USER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.39.93)(PORT=3141)) * establish * OTS * 0 29-6月-2011 10:53:57 * (CONNECT_DATA=(SERVICE_NAME=ots)(CID=(PROGRAM=D:PLSQL Developerplsqldev.exe)(HOST=LIUZIYU-PC)(USER=Liuziyu))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.39.40)(PORT=1760)) * establish * ots * 0 29-6月-2011 10:54:00 * (CONNECT_DATA=(SERVICE_NAME=ots)(CID=(PROGRAM=D:PLSQL Developerplsqldev.exe)(HOST=LIUZIYU-PC)(USER=Liuziyu))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.39.40)(PORT=1761)) * establish * ots * 0 29-6月-2011 10:54:00 * (CONNECT_DATA=(SERVICE_NAME=ots)(CID=(PROGRAM=D:PLSQL Developerplsqldev.exe)(HOST=LIUZIYU-PC)(USER=Liuziyu))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.39.40)(PORT=1762)) * establish * ots * 0 29-6月-2011 10:54:03 * service_update * ots * 0 29-6月-2011 10:54:09 * service_update * ots * 0

日志內(nèi)容很多,我們分為重點(diǎn)的幾個部分。

在日志頭,Oracle告知了我們?nèi)罩靖袷剑褂?進(jìn)行內(nèi)容分割。

TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE

其中包括連接時間時間,請求數(shù)據(jù)Data和其他相關(guān)事件信息。這些可以幫助我們分析日志內(nèi)容。

ü 監(jiān)聽器無法找到指定服務(wù)

對應(yīng)片段:

29-6月-2011 10:52:00 * (CONNECT_DATA=(SID=OTS)(CID=(PROGRAM=C: ooloracleoracleproduct10.2.0db_1perl5.8.3inMSWin32-x86-multi-threadperl.exe)(HOST=ACCA-119HS63YXC)(USER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.39.93)(PORT=3126)) * establish * OTS * 12505 TNS-12505: TNS:監(jiān)聽程序當(dāng)前無法識別連接描述符中所給出的SID

分析日志格式后,可以發(fā)現(xiàn)在這個時間(10:52),Oracle監(jiān)聽器接受到程序的訪問,程序來自主機(jī)(ACCA-119HS63YXC),使用system用戶登錄,程序名稱是perl.exe.由于當(dāng)前系統(tǒng)沒有注冊Service信息,也沒有注冊SID信息,所以不能夠連接識別對SID=OTS請求。

報(bào)錯無法識別SID.

ü 實(shí)例主動進(jìn)行動態(tài)注冊

此時,數(shù)據(jù)庫服務(wù)器先于監(jiān)聽程序啟動,默認(rèn)要等待很長的時間才會發(fā)生動態(tài)注冊。我們使用alter system register;命令手動啟動動態(tài)注冊過程。監(jiān)聽程序上發(fā)現(xiàn)pmon進(jìn)程的注冊進(jìn)程,并且記錄在日志中。

29-6月-2011 10:52:00 * service_register * ots * 0

將數(shù)據(jù)庫sid=ots對應(yīng)的三個實(shí)例進(jìn)行注冊。

ü 用戶Client連接進(jìn)程

當(dāng)出現(xiàn)連接請求的時候,日志記錄。

29-6月-2011 10:55:19 * (CONNECT_DATA=(SERVICE_NAME=ots)(CID=(PROGRAM=D:PLSQL Developerplsqldev.exe)(HOST=LIUZIYU-PC)(USER=Liuziyu))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.1.39.40)(PORT=1782)) * establish * ots * 0

根據(jù)日志格式,可以理解為從遠(yuǎn)程(HOST=LIUZIYU-PC,IP=10.1.39.40)主機(jī)通過TCP協(xié)議訪問到監(jiān)聽程序,要求連接到ots服務(wù)上。使用的程序是pl/sql developer.

ü 周期性pmon注冊

動態(tài)注冊是一種經(jīng)常性的注冊行為,pmon每隔幾分鐘的時間就會向監(jiān)聽器進(jìn)行一次注冊動作。

29-6月-2011 10:55:33 * service_update * ots * 0

4、結(jié)論

監(jiān)聽器是我們經(jīng)常打交道的數(shù)據(jù)庫組件之一。同數(shù)據(jù)庫的alert_log一樣,監(jiān)聽器日志能夠幫助我們解決很多日常故障問題。

分享到

wangyao

相關(guān)推薦