1. 程式人生 > >客戶端連線伺服器,配置出錯“連線超時”或者“無監聽程式”解決方法

客戶端連線伺服器,配置出錯“連線超時”或者“無監聽程式”解決方法

這兩天在進行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地址,而不是伺服器端的主機名