2014-04-06 102 views
3

我一直在嘗試使用Oracle SQL開發人員遠程連接到Oracle 12c。它顯示連接到服務器時,提示以下錯誤:使用Oracle Sql開發人員連接到oracle 12c(遠程)

Status : Failure -Test failed: IO Error: The Network Adapter could not establish the connection 

我可以連接到服務器上的Oracle數據庫,但問題是關於連接到該服務器(數據庫)遠程

的內容我的listener.ora是:

SID_LIST_LISTENER = 
(SID_LIST = 
(SID_DESC = 
    (SID_NAME = CLRExtProc) 
    (ORACLE_HOME = D:\app\ORCLNEWUSER\product\12.1.0\dbhome_1) 
    (PROGRAM = extproc) 
    (ENVS = "EXTPROC_DLLS=ONLY:d:\app\ORCLNEWUSER\product\12.1.0\dbhome_1\bin\oraclr12.dll") 
) 
) 

LISTENER = 
(DESCRIPTION_LIST = 
(DESCRIPTION =  
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))  
) 
) 
+0

偵聽器是否正在運行?或阻止訪問的防火牆? –

+0

監聽器正在運行,並且防火牆關閉 – Ali

+0

感謝Alex,我是oracle中的新成員。 你能告訴我如何配置這個文件,因爲我有一個有效的IP地址的服務器,我試圖連接到這 – Ali

回答

5

listener.ora說,只監聽localhost(127.0.0.1),所以沒有將能夠從不同的服務器的任何地方連接;服務器的外部IP地址上的端口1521上沒有監聽。您可以使用lsnrctl statusnetstat -ano | find "1521"進行驗證。

您需要修改listener.ora以偵聽服務器的主機名,或者如果無法解析爲正確的IP,則外部IP地址本身 - 您嘗試從SQL連接到的「有效IP地址」開發人員:

LISTENER = 
(DESCRIPTION_LIST = 
(DESCRIPTION =  
    (ADDRESS = (PROTOCOL = TCP)(HOST = my_hostname_or_ip)(PORT = 1521))  
) 
) 

您可能還需要檢查您的數據庫是否能夠成功註冊。我會驗證它是否包含在lsnctrl services之前和之後進行更改並重新啓動偵聽器。如果在重新啓動後沒有出現,並且alter system register未使其顯示,那麼您可能需要更改local_listener數據庫參數,以告知它應該註冊的地址和端口。這是一個單獨的問題,但可以從這個變化中繼續; there's an example here如果有的話可能會有所幫助。

+0

當我更改(listener.ora文件)中的服務器的IP主機的HOST,聆聽者的服務無法啓動 – Ali

+0

@Ali - 你在命令行中遇到錯誤還是在日誌中有幫助? –

+0

我忘了提及我正在使用Windows服務器2008 和現有的主機(本地主機)工作正常,因爲你提到它只在本地主機上偵聽,但是當我將其更改爲服務器的IP,並嘗試重新啓動聽衆的服務,它給了我這個錯誤:「本地計算機上的監聽器服務啓動,然後停止。如果其他服務或程序未使用某些服務會自動停止」 – Ali