來源: http://oracle.chinaitlab.com/induction/881334.html
ORA-12541: TNS:無監聽器
登錄ORCALE時錯誤提示:ORA-12541: TNS:no listener不能正常連接到數據庫
錯誤原因是:清理註冊表信息或修改配置數據庫機器名稱造成。
一、連接主機字符串,報告沒有監聽器
C:\Documents and Settings\Administrator> sqlplus username/password;
ORA-12541: TNS:no listener
二、運行監聽器
C:\Documents and Settings\Administrator>lsnrctl
LSNRCTL for 32-bit Windows: Version 9.2.0.1.0 - Production on 07-7月 -2009 10:08
:08
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.
歡迎來到LSNRCTL,請鍵入"help"以獲得信息。
三、通過查看監聽器狀態給出解決辦法
情況一,只報告無監聽器
LSNRCTL> status
正在連接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
ORA-12541: TNS:無監聽器
TNS-12560: TNS: 協議適配器錯誤
TNS-00511: 無監聽器
32-bit Windows Error: 61: Unknown error
LSNRCTL> start
啓動tnslsnr:請稍候…
Failed to open service <OracleOraHome92TNSListener>, error 1060.
TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Production
寫入D:\oracle\ora92\network\log\listener.log的日誌信息
監聽:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.c
orp)(PORT=1521)))
正在連接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc
tion
啓動日期 07-7月 -2009 10:08:49
正常運行時間 0 天 0 小時 0 分 4 秒
跟蹤級別 off
安全性 OFF
SNMP OFF
監聽器日誌文件 D:\oracle\ora92\network\log\listener.log
監聽端點概要…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.corp)
(PORT=1521)))
監聽器不支持服務
命令執行成功
情況二,除了報告無監聽器還報告地址的協議專用組件指定不正確
LSNRCTL> status
連接至(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(PORT=1521)))
TNS-01103: 地址的協議專用組件指定不正確
TNS-12541: TNS:無監聽器
TNS-12560: TNS:協議適配器出現錯誤
TNS-00511: 無監聽器
32-bit Windows Error: 61: Unknown error
LSNRCTL> start
啓動tnslsnr:請稍候…
Failed to start service, error 3.
TNS-12536: TNS:可能會阻礙*作
TNS-12560: TNS:協議適配器出現錯誤
TNS-00506: *作可能阻塞
32-bit Windows Error: 997: Unknown error
LSNRCTL>
這種情況的解決方案如下:
1、在控制面板中啓動服務,出現以下錯誤
服務:在本地計算機 無法啓動 OracleOraHome92TNSListener服務。
錯誤3:系統找不到指定的路徑
而且OracleOraHome92TNSListener服務的可執行文件的路徑是空的。
2、進入註冊表中修改ImagePath
在運行處執行REGEDIT進入註冊表到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener
發現ImagePath關鍵值沒有了,增加他,選擇可擴充字符串值,編輯字符串的數值數據爲:D:\oracle\ora92\BIN\TNSLSNR 退出註冊表。
3、再次啓動監聽器
LSNRCTL> start
TNS-01106: 使用名稱LISTENER的監聽器已經啓動
四、這時查看監聽器的狀態,監聽器已經恢復正常
LSNRCTL> status
正在連接到 (ADDRESS=(PROTOCOL=tcp)(PORT=1521))
LISTENER 的 STATUS
------------------------
別名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 9.2.0.1.0 - Produc
tion
啓動日期 07-7月 -2009 10:08:49
正常運行時間 0 天 0 小時 2 分 18 秒
跟蹤級別 off
安全性 OFF
SNMP OFF
監聽器日誌文件 D:\oracle\ora92\network\log\listener.log
監聽端點概要…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.corp)
(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.corp)
(PORT=8080))(Presentation=HTTP)(Session=RAW))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=sha120594n02.clients.apac.cpwr.corp)
(PORT=2100))(Presentation=FTP)(Session=RAW))
服務摘要
服務 "Covisint" 包含 1 個例程。
例程 "Covisint", 狀態 READY, 包含此服務的 1 個處理程序…
服務 "CovisintXDB" 包含 1 個例程。
例程 "Covisint", 狀態 READY, 包含此服務的 1 個處理程序…
命令執行成功
五、再去連接,成功
C:\Documents and Settings\Administrator> sqlplus username/password;
連接成功。
C:\Documents and Settings\Administrator>