Oracle listener lsnrctl,listenerlsnrctl
lsnrctl(Listener Control)是一個SQL*Net工具,用於控制資料庫listener,這個工具提供了命令用於控制listener的啟動、停止,查看listener的狀態,改變listener的配置參數等。
lsnrctl介紹
在命令列中輸入lsnrctl,你將得到:
C:\Documents and Settings\Administrator>lsnrctlLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 26-9月 -2014 08:44:15Copyright (c) 1991, 2005, Oracle. All rights reserved.歡迎來到LSNRCTL, 請鍵入"help"以獲得資訊。LSNRCTL>
使用help命令,你將看到所有可用的命令:
LSNRCTL> help以下操作可用星號 (*) 表示修改符或擴充命令:start stop statusservices version reloadsave_config trace change_passwordquit exit set*show*
下面是對這些命令的簡單說明:
1)start:使用指定listener名啟動listener,否則將啟動LISTERNER。在Windows系統,listener也能沖控制中心的服務中啟動;
2)stop:停止listener。Windows系統也能從控制中心的服務中停止;
3)status:提供listener的狀態資訊,包括啟動時間、已耗用時間和trace層級;
4)services:列印所有可用的服務;
5)version:列印listener的版本資訊;
6)reload:不停止和啟動listener的情況下強行讀取設定檔擷取新配置;
7)save_config:為當前listener.ora檔案建立一個備份,並儲存改變到目前的版本;
8)trace:設定trace層級,可用值:OFF,USER,ADMIN和SUPPORT;
9)dbsnmp_start:啟動DBSNMP副代理;
10)dbsnmp_stop:停止DBSNMP副代理;
11)dbsnmp_status:列印DBSNMP副代理的狀態;
12)change_password:為listener設定一個新的密碼;
13)quit或exit:退出;
14)set:改變任何參數的值;
15)show:列印當前參數的設定。
lsnrctl應用執行個體
下面介紹幾個lsnrctl的使用執行個體。
啟動listener
當listener被停止後,串連資料庫執行個體將導致ORA-12541異常,查看listener狀態將得到:
LSNRCTL> status正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521))(CONNECT_DATA=(SID=lytest)(SERVER=DEDICATED)))TNS-12541: TNS: 無監聽程式 TNS-12560: TNS: 協議適配器錯誤 TNS-00511: 無監聽程式 32-bit Windows Error: 61: Unknown error
這時你可以啟動listener:
LSNRCTL> start啟動tnslsnr: 請稍候...TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production系統參數檔案為E:\oracle\product\10.2.0\db_1\network\admin\listener.ora寫入E:\oracle\product\10.2.0\db_1\network\log\listener.log的日誌資訊監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521)))監聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))正在串連到 (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 AuthenticationSNMP OFF監聽程式參數檔案 E:\oracle\product\10.2.0\db_1\network\admin\listener.ora監聽程式記錄檔 E:\oracle\product\10.2.0\db_1\network\log\listener.log監聽端點概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))服務摘要..服務 "PLSExtProc" 包含 1 個常式。 常式 "PLSExtProc", 狀態 UNKNOWN, 包含此服務的 1 個處理常式...命令執行成功
到這裡,listener啟動成功。
trace檔案
listener的trace檔案為我們提供了listener的工作過程資訊,協助我們定位listener的故障。下面是lsnrctl為trace提供的幫組資訊:
LSNRCTL> help tracetrace OFF | USER | ADMIN | SUPPORT [<listener_name>] : set tracing to the specified level
下面是對參數的解釋:
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:\oracle\product\10.2.0\db_1\network\trace\listener.trc命令執行成功
查看listener狀態:
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 AuthenticationSNMP OFF監聽程式參數檔案 E:\oracle\product\10.2.0\db_1\network\admin\listener.ora監聽程式記錄檔 E:\oracle\product\10.2.0\db_1\network\log\listener.log監聽程式追蹤檔案 E:\oracle\product\10.2.0\db_1\network\trace\listener.trc監聽端點概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))......
在“監聽程式追蹤檔案”中可以看到追蹤檔案路徑資訊:E:\oracle\product\10.2.0\db_1\network\trace\listener.trc。
可以通過下面的命令查詢追蹤檔案名:
LSNRCTL> show trc_file正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 參數 "trc_file" 設為 listener.trc命令執行成功
查看追蹤層級:
LSNRCTL> show trc_level正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 參數 "trc_level" 設為 support命令執行成功
修改追蹤檔案名:
LSNRCTL> set trc_file 'lylistener.trc'正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 參數 "trc_file" 設為 lylistener.trc命令執行成功
注意修改追蹤檔案名後跟蹤將被關閉,需要重新設定(這裡使用set設定,和使用trace一樣的效果):
LSNRCTL> set trc_level user正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER 參數 "trc_level" 設為 user命令執行成功
下面再次查看listener狀態:
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 AuthenticationSNMP OFF監聽程式參數檔案 E:\oracle\product\10.2.0\db_1\network\admin\listener.ora監聽程式記錄檔 E:\oracle\product\10.2.0\db_1\network\log\listener.log監聽程式追蹤檔案 E:\oracle\product\10.2.0\db_1\network\trace\lylistener.trc監聽端點概要... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.74.216.39)(PORT=1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc)))......命令執行成功
可以看到追蹤檔案名已經更改。
為listener設定密碼保護
Oracle 10g後,Oracle本機使用者關閉listener是不需要口令的,設定口令主要為了防止:
1)原生其他使用者關閉listener;
2)遠程關閉listener。
下面是具體的方法。
LSNRCTL> change_passwordOld password:<輸入原始密碼>New password:<輸入新密碼>Reenter new password:<新密碼確認>
執行成功後你看到:
正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))LISTENER的口令已更改命令執行成功
接下來,你需要儲存配置:
LSNRCTL> save_config正在串連到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=10.74.216.39)(PORT=1521)))儲存的LISTENER配置參數。監聽程式參數檔案 E:\oracle\product\10.2.0\db_1\network\admin\listener.ora舊的參數檔案E:\oracle\product\10.2.0\db_1\network\admin\listener.bak命令執行成功
這樣就為你的listener設定了密碼保護。
oracle lsnrctl 中lsnrctl是哪個英文的簡寫
listener control 監聽控制
因為你在鍵入 lsnrctl 斷行符號之後,就進入到監聽控制介面。
oracle 監聽重啟後 LSNRCTL> stat 監聽狀態查看 為如下:
你的listener.ora檔案中缺少SID_LIST_LISTENER,也就是說,你還沒有建立資料庫執行個體或者是你沒有在listener.ora檔案中添加要監聽的資料庫執行個體。