問題描述:
干凈的windows2008 64位服務器上安裝 oracle 11g R2 64bit服務端,安裝完后,NetManager中默認的主機名為localhost,可以測試通過。但是無法在別的機器上使用客戶端通過該服務器的IP地址去連接oracle服務端,報錯提示:ora-12541
ORA-12541: TNS無監聽程序錯誤
12541解決方法如下:
1、在oracle安裝目錄(D:\BI\oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN)下查找listener.ora,用記事本打開;
2、如圖將紅色部分的host改為該服務器所在的網路IP地址或者服務器機器名(使網路內的其它機器可以通過IP或機器名來識別該服務器),如下圖:
更改完畢后,Ctrl+S保存。
3、cmd執行命令:lsnrctl stop,再執行lsnrctl start。
然后使用NetManager繼續測試服務,這次報出另外一個錯誤提示:Ora-12514
ora-12514解決方法:
同樣的,還是打開listener.ora文件
添加如下一段語句,紅色粗體部分:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\BI\oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:\BI\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = fxyy)
(ORACLE_HOME = D:\BI\oracle\product\11.2.0\dbhome_1)
(SID_NAME = fxyy)
)
)
Ctrl+S保存
cmd執行命令:lsnrctl stop,再執行lsnrctl start。
即可解決ora-12514問題。
如果新增實例,那么就復制紅色部分內容,再增加一段,將其中的GLOBAL_DBNAME和SID_NAME改為對應的實例名(如果是使用實例名,那么要確保服務端和客戶端在同一個域內),保存,重啟oracle實例服務即可。
