今天啟動工程,突然提示無法連接遠程Oracle。我試着telnet Oracle服務器1521 端口,提示連接失敗。
D:\Documents and Settings\Administrator>telnet 10.201.70.68 1521
正在連接到10.201.70.68...不能打開到主機的連接, 在端口 1521: 連接失敗
Oracle服務器與本機都在局域網內,不存在網絡不通問題,怎么會無法連接。
檢查10.201.70.68並未啟動防火牆,可以ping通。
但發現直接在Oracle服務器上連接oracle也不能正常連接。
后發現為listener.ora導致,經過修改 \product\10.2.0\db_1\NETWORK\ADMIN\listener.ora 數據庫恢復正常。
再次telnet Oracle服務器的1521端口,依然連接失敗。
D:\Documents and Settings\Administrator>telnet 10.201.70.68 1521 正在連接到10.201.70.68...不能打開到主機的連接, 在端口 1521: 連接失敗 |
用命令查看當前端口情況netstat -a –n
C:\Documents and Settings\Administrator>netstat -a -n
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:23 0.0.0.0:0 LISTENING
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1035 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1080 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1139 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1801 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2103 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2105 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2107 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING
TCP 10.201.70.68:139 0.0.0.0:0 LISTENING
TCP 10.201.70.68:3389 10.201.70.75:53370 ESTABLISHED
TCP 127.0.0.1:1142 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1521 0.0.0.0:0 LISTENING
TCP 127.0.0.1:42424 0.0.0.0:0 LISTENING
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1034 *:*
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 = lggsuper_pc)(PORT = 1521)) ) |
我備份該文件后,將localhost 也改為本機名,重啟監聽。檢查數據庫從數據庫服務器本機連接正常。
然后再執行命令netstat -a –n查看,此時1521前面的IP已變為“0.0.0.0”。
C:\Documents and Settings\Administrator>netstat -a -n
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:23 0.0.0.0:0 LISTENING
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1035 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1080 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1317 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1521 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1801 0.0.0.0:0 LISTENING
TCP 0.0.0.0:2103 0.0.0.0:0 LISTENING
TCP 10.201.70.68:139 0.0.0.0:0 LISTENING
TCP 127.0.0.1:1324 127.0.0.1:1521 TIME_WAIT
TCP 127.0.0.1:42424 0.0.0.0:0 LISTENING
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1034 *:*
UDP 0.0.0.0:1044 *:*
看來成功的概率很高,然后我通過我電腦telnet Oracle服務器1521端口,果然成功。
問題解決。