1. 程式人生 > >win2008r2 Oracle11.2 r2伺服器 客戶端TNS連線不上問題的解決

win2008r2 Oracle11.2 r2伺服器 客戶端TNS連線不上問題的解決

今天啟動工程,突然提示無法連線遠端Oracle。我試著telnet Oracle伺服器1521 埠,提示連線失敗。

D:\Documents and Settings\Administrator>telnet 10.201.70.68 1521

正在連線到192.168.1.20...不能開啟到主機的連線, 在埠 1521: 連線失敗

Oracle伺服器與本機都在區域網內,不存在網路不通問題,怎麼會無法連線。

檢查192.168.1.20的防火牆,在win2008r2防火牆新增埠入站和出站規則:1521

但發現Oracle伺服器上可以正常連線但是在客戶端還是不能正常連線。

telnet Oracle伺服器的1521埠,依然連線失敗


檢視Oracle監聽,已經啟動了

用命令檢視當前埠情況netstat -a –n

C:\Documents and Settings\Administrator>netstat -a -n

1521埠處於監聽狀態,但是從我本機還是無法Telnet伺服器埠。

我試著telnet  1080埠,發現卻可以,唯一的區別就在於一個埠前是“0.0.0.0”,一個是“127.0.0.1”。為了驗證,我又telnet 1035/1026都可以通。

但是為什麼呢,是不是就因為這個IP的原因呢,怎麼才可以把這個“127.0.0.1”改為“0.0.0.0”。

1521是Oracle監聽埠,問題估計還是出在監聽本身。

我開啟另一臺也裝有Oracle且1521可以連線的機器,檢視NETWORK\ADMIN\listener.ora檔案,仔細對比兩個Oracle該檔案的區別,發現正常的Oracle伺服器上,listener.ora檔案,如下這段HOST顯示的是機器名,而不能連線的是“localhost”。

LISTENER =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = my_pc)(PORT = 1521))

  )

我備份該檔案後,將localhost 也改為本機名,重啟監聽。檢查資料庫從資料庫伺服器本機連線正常。

然後再執行命令netstat -a –n檢視,此時1521前面的IP已變為“0.0.0.0”。

然後 telnet Oracle伺服器1521埠,測試成功。