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埠,測試成功。