當前位置:首頁 > IT技術 > 數(shù)據(jù)庫 > 正文

Oracle——listener數(shù)據(jù)庫監(jiān)聽 lsnrctl
2021-11-01 14:25:50

lsnrctl(Listener Control)是一個SQL*Net工具,用于控制數(shù)據(jù)庫listener,這個工具提供了命令用于控制listener的啟動、停止,查看listener的狀態(tài),改變listener的配置參數(shù)等。

?

lsnrctl介紹
在命令行中輸入lsnrctl,你將得到:

  • C:Documents and SettingsAdministrator>lsnrctl
  • LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 26-9月 -2014 08:44:15
  • Copyright (c) 1991, 2005, Oracle. All rights reserved.
  • 歡迎來到LSNRCTL, 請鍵入"help"以獲得信息。
  • LSNRCTL>

使用help命令,你將看到所有可用的命令:

  • LSNRCTL> help
  • 以下操作可用
  • 星號 (*) 表示修改符或擴展命令:
  • start stop status
  • services version reload
  • save_config trace change_password
  • quit exit set*
  • show*

?

下面是對這些命令的簡單說明:

1)start:使用指定listener名啟動listener,否則將啟動LISTERNER。在Windows系統(tǒng),listener也能沖控制中心的服務中啟動;
2)stop:停止listener。Windows系統(tǒng)也能從控制中心的服務中停止;
3)status:提供listener的狀態(tài)信息,包括啟動時間、運行時間和trace級別;
4)services:打印所有可用的服務;
5)version:打印listener的版本信息;
6)reload:不停止和啟動listener的情況下強行讀取配置文件獲取新配置;
7)save_config:為當前l(fā)istener.ora文件創(chuàng)建一個備份,并保存改變到當前版本;
8)trace:設置trace級別,可用值:OFF,USER,ADMIN和SUPPORT;
9)dbsnmp_start:啟動DBSNMP副代理;
10)dbsnmp_stop:停止DBSNMP副代理;
11)dbsnmp_status:打印DBSNMP副代理的狀態(tài);
12)change_password:為listener設置一個新的密碼;
13)quit或exit:退出;
14)set:改變任何參數(shù)的值;
15)show:打印當前參數(shù)的設置。

?

lsnrctl應用實例
下面介紹幾個lsnrctl的使用實例。

啟動listener
當listener被停止后,連接數(shù)據(jù)庫實例將導致ORA-12541異常,查看listener狀態(tài)將得到:

  • LSNRCTL> status
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521))(CONNECT_DATA=(SID=lytest)(SERVER=DEDICATED)))
  • TNS-12541: TNS: 無監(jiān)聽程序
  • TNS-12560: TNS: 協(xié)議適配器錯誤
  • TNS-00511: 無監(jiān)聽程序
  • 32-bit Windows Error: 61: Unknown error

這時你可以啟動listener:

  • LSNRCTL> start
  • 啟動tnslsnr: 請稍候...
  • TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
  • 系統(tǒng)參數(shù)文件為E:oracleproduct10.2.0db_1 etworkadminlistener.ora
  • 寫入E:oracleproduct10.2.0db_1 etworkloglistener.log的日志信息
  • 監(jiān)聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))
  • 監(jiān)聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC0ipc)))
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • LISTENER 的 STATUS
  • ------------------------
  • 別名 LISTENER
  • 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
  • 啟動日期 26-9月 -2014 09:33:40
  • 正常運行時間 0 天 0 小時 0 分 4 秒
  • 跟蹤級別 off
  • 安全性 ON: Local OS Authentication
  • SNMP OFF
  • 監(jiān)聽程序參數(shù)文件 E:oracleproduct10.2.0db_1 etworkadminlistener.ora
  • 監(jiān)聽程序日志文件 E:oracleproduct10.2.0db_1 etworkloglistener.log
  • 監(jiān)聽端點概要...
  • (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))
  • (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC0ipc)))
  • 服務摘要..
  • 服務 "PLSExtProc" 包含 1 個例程。
  • 例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務的 1 個處理程序...
  • 命令執(zhí)行成功

到這里,listener啟動成功。

?

trace文件
listener的trace文件為我們提供了listener的工作過程信息,幫助我們定位listener的故障。

下面是lsnrctl為trace提供的幫助信息:

  • LSNRCTL> help trace
  • trace OFF | USER | ADMIN | SUPPORT [<listener_name>] : set tracing to the specified level
  • 下面是對參數(shù)的解釋:
  • 1)OFF:no trace output;
  • 2)USER:user trace information;
  • 3)ADMIN:administration trace information;
  • 4)SUPPORT:Oracle Support Services trace information

下面開啟跟蹤:

  • LSNRCTL> trace support
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • 打開的跟蹤文件: E:oracleproduct10.2.0db_1 etwork racelistener.trc
  • 命令執(zhí)行成功

查看listener狀態(tài):

  • LSNRCTL> status
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • LISTENER 的 STATUS
  • ------------------------
  • 別名 LISTENER
  • 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
  • 啟動日期 26-9月 -2014 10:35:06
  • 正常運行時間 0 天 0 小時 31 分 26 秒
  • 跟蹤級別 support
  • 安全性 ON: Password or Local OS Authentication
  • SNMP OFF
  • 監(jiān)聽程序參數(shù)文件 E:oracleproduct10.2.0db_1 etworkadminlistener.ora
  • 監(jiān)聽程序日志文件 E:oracleproduct10.2.0db_1 etworkloglistener.log
  • 監(jiān)聽程序跟蹤文件 E:oracleproduct10.2.0db_1 etwork racelistener.trc
  • 監(jiān)聽端點概要...
  • (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))
  • (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC0ipc)))
  • ......
  • 在“監(jiān)聽程序跟蹤文件”中可以看到跟蹤文件路徑信息:E:oracleproduct10.2.0db_1 etwork racelistener.trc。
  • 可以通過下面的命令查詢跟蹤文件名:
  • LSNRCTL> show trc_file
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • LISTENER 參數(shù) "trc_file" 設為 listener.trc
  • 命令執(zhí)行成功

?

查看跟蹤級別:

  • LSNRCTL> show trc_level
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • LISTENER 參數(shù) "trc_level" 設為 support
  • 命令執(zhí)行成功

?

修改跟蹤文件名:

  • LSNRCTL> set trc_file 'lylistener.trc'
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • LISTENER 參數(shù) "trc_file" 設為 lylistener.trc
  • 命令執(zhí)行成功

?

注意修改跟蹤文件名后跟蹤將被關閉,需要重新設置(這里使用set設置,和使用trace一樣的效果):

  • LSNRCTL> set trc_level user
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • LISTENER 參數(shù) "trc_level" 設為 user
  • 命令執(zhí)行成功

?

下面再次查看listener狀態(tài):

  • LSNRCTL> status
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • LISTENER 的 STATUS
  • ------------------------
  • 別名 LISTENER
  • 版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
  • 啟動日期 26-9月 -2014 10:35:06
  • 正常運行時間 2 天 0 小時 8 分 3 秒
  • 跟蹤級別 user
  • 安全性 ON: Password or Local OS Authentication
  • SNMP OFF
  • 監(jiān)聽程序參數(shù)文件 E:oracleproduct10.2.0db_1 etworkadminlistener.ora
  • 監(jiān)聽程序日志文件 E:oracleproduct10.2.0db_1 etworkloglistener.log
  • 監(jiān)聽程序跟蹤文件 E:oracleproduct10.2.0db_1 etwork racelylistener.trc
  • 監(jiān)聽端點概要...
  • (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))
  • (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC0ipc)))
  • ......
  • 命令執(zhí)行成功

可以看到跟蹤文件名已經更改。

?

為listener設置密碼保護
Oracle 10g后,Oracle本地用戶關閉listener是不需要口令的,設置口令主要為了防止:
1)本機的其他用戶關閉listener;
2)遠程關閉listener。
下面是具體的方法。

  • LSNRCTL> change_password
  • Old password:<輸入原始密碼>
  • New password:<輸入新密碼>
  • Reenter new password:<新密碼確認>
  • 執(zhí)行成功后你看到:
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • LISTENER的口令已更改
  • 命令執(zhí)行成功

接下來,你需要保存配置:

  • LSNRCTL> save_config
  • 正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))
  • 保存的LISTENER配置參數(shù)。
  • 監(jiān)聽程序參數(shù)文件 E:oracleproduct10.2.0db_1 etworkadminlistener.ora
  • 舊的參數(shù)文件E:oracleproduct10.2.0db_1 etworkadminlistener.bak
  • 命令執(zhí)行成功

這樣就為你的listener設置了密碼保護。


參考:https://blog.csdn.net/tomato__/article/details/39638383

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務立即開通 >