ORA-12541: TNS:no listener報錯解決辦法
1、在計算機 開始--->管理-->服務中沒有看到 OracleOraHome92TNSListener 服務,但服務已經啟動
2、C:\>lsnrctl start 執行完后報open service error。然后在計算機 開始--->管理-->服務中看到 了 OracleOraHome92TNSListener 服務
3、運行regedit.exe啟動注冊表編輯器,在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/下的 Services和CurrentControlSet/Services下找到OracleOraHome92TNSListener項,在右邊窗口按右鍵,新建/字符串,取名ImagePath。
雙擊新見的建,在“數值數據”項輸入D:\oracle\ora92\bin\TNSLSNR.EXE(根據你自己的實際情況進行修改),確定完成。
再次在服務中雙擊打開OracleOraHome92TNSListener的服務看到其“可執行文件的路徑”一欄已經顯示了其正確的值。這時你可以啟動監聽了。
4、C:>tnsping 數據庫SID。看看tns服務沒有起來。如果沒有起來,用下面的命令
c:\>lsnrctl
lsnrctl>start把這個服務起動起來。
c:\>lsnrctl start 后open service error錯誤消失,但例程中有一個狀態為UNKNOWN,另一個為READY.命令執行成功。
解決方法:
1.打開 <OracleHome>/network/admin/listener.ora文件,找到:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)
2.添加:
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
3.最后變成:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = ORACLE)
)
)
4.保存文件,重啟服務中的TNSListener,OK!