客戶端連線伺服器,配置出錯“連線超時”或者“無監聽程式”解決方法
這兩天在進行Oracle的客戶端配置,伺服器OS為Windows XP 64,客戶端OS為Win7 64,oracle版本為11.2。
先說下伺服器端自己的疑惑,由於自己是新手,很多都不明白是怎麼個回事。
1)關於服務端監聽程式配置時候的SID設定
我在建立資料庫的時候,設定的資料庫的SID名字為“ahgridgis”,全域性資料庫名字也為ahgridgis,但是通過Net Manager進行監聽程式配置的時候,在新增“資料庫服務”到監聽程式時候,我輸入SID為“ahgridgis”,會提示說“要求有效的SID”,這是為什麼呢?
最後我只能把這的SID設定為預設的ORCL,才可以通過。然後我通過更改監聽檔案listener.ora的
(SID_DESC =
(GLOBAL_DBNAME = ahgridgis)
(SID_NAME = ahgridgis)
SID_Name為ahgridgis,才完成自己所需要的監聽程式。
這個原因是什麼呢?誰能告訴我呢?
2)在服務端進行完監聽程式配置後,重新啟動下監聽程式,有以下方法:
A:控制面板—》管理工具—》元件服務
找到OracleOraDb11g_home1TNSListener,重新啟動
B:在sqlplus中執行以下命令
SQL>host lsnrctl start;
3)進行客戶端的配置工作。
在客戶端通過Oracle Net Configuration Assistant進行配置,採用“本地網路服務名配置”。
輸入服務名為ahgridgis,選擇TCP協議,主機名為伺服器端的IP地址,最後進行連線測試。
發現提示“連線超時”,更換使用者登入,還是提示連線超時,最後在確認服務端監聽程式開啟以及ping連通後,結果解決方法是“關閉服務端的防火牆”,再次進行連線測試,連線成功。
4)解決“無監聽程式”
在進行客戶端網路服務名配置時候,我第一次輸入的主機名為伺服器端的主機名稱,而不是IP地址,這個時候進行連線測試的時候,會提示“無監聽程式”。我查看了伺服器端的監聽程式檔案,發現Address引數的HOST為伺服器的主機IP地址。
所以我就試著把客戶端的輸入主機名該為IP地址,再次進行連線,就成功了。
是不是說在進行客戶端網路服務名配置的時候,“主機名”設定要和伺服器端的監聽位置“主機”引數一致才可以呢?
所以又進行了以下測試,把伺服器端的監聽位置該為主機的名字,如Student-pc,客戶端的仍為主機的IP地址,再次在客戶端進行連線測試,也可以連線成功。
看來以後要儘量用IP地址來進行客戶端的網路服務名配置了。
總結這次連線配置的錯誤
1)連線超時
解決方法:關閉伺服器端防火牆
前提是要保證伺服器端監聽程式正常
2)無監聽程式
解決方法:客戶端進行網路服務名配置的時候,”主機“採用伺服器端的IP地址,而不是伺服器端的主機名