Oracle

Windows機器的遠端連接問題

  • September 9, 2015

我已經在機器 A (Windows) 上安裝了數據庫 11g。現在我需要從放置我的應用程序的機器 B (Windows) 訪問該數據庫。我可以 ping B –> A 但 telnet 不工作。有人可以幫我解決這個問題。一些幫助將不勝感激。以下是一些文件供參考。

以下是我已經嘗試過的幾件事:

  1. 禁用防火牆。
  2. 使用入站和出站規則打開的埠。
  3. 啟動了服務。

監聽器.ora

# listener.ora Network Configuration File: C:\app\rajhegde\product\11.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
 (SID_LIST =
   (SID_DESC =
     (SID_NAME = CLRExtProc)
     (ORACLE_HOME = C:\app\rajhegde\product\11.2.0\dbhome_1)
     (PROGRAM = extproc)
     (ENVS = "EXTPROC_DLLS=ONLY:C:\app\rajhegde\product\11.2.0\dbhome_1\bin\oraclr11.dll")
   )
 )

LISTENER =
 (DESCRIPTION_LIST =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
     (ADDRESS = (PROTOCOL = TCP)(HOST = rajhegde-lap2)(PORT = 1522))
   )
 )

ADR_BASE_LISTENER = C:\app\rajhegde

tnsnames.ora

# tnsnames.ora Network Configuration File: C:\app\rajhegde\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

LISTENER_ORCL =
 (ADDRESS = (PROTOCOL = TCP)(HOST = rajhegde-lap2)(PORT = 1522))


ORACLR_CONNECTION_DATA =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
   )
   (CONNECT_DATA =
     (SID = CLRExtProc)
     (PRESENTATION = RO)
   )
 )

ORCL =
 (DESCRIPTION =
   (ADDRESS = (PROTOCOL = TCP)(HOST = rajhegde-lap2)(PORT = 1522))
   (CONNECT_DATA =
     (SERVER = DEDICATED)
     (SERVICE_NAME = orcl)
   )
 )

lsnrctl 狀態的輸出

C:\Users\rajhegde>lsnrctl status

LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 09-SEP-2015 18:56
:36

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1522)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
Start Date                09-SEP-2015 17:40:03
Uptime                    0 days 1 hr. 16 min. 36 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   C:\app\rajhegde\product\11.2.0\dbhome_1\network\admin\
listener.ora
Listener Log File         c:\app\rajhegde\diag\tnslsnr\RAJHEGDE-LAP2\listener\al
ert\log.xml
Listening Endpoints Summary...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1522ipc)))
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=RAJHEGDE-LAP2.oradev.oraclecorp.com)
(PORT=1522)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
 Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

您的LOCAL_LISTENER參數設置為listener_orcl,在您中定義tnsnames.ora為在localhost埠 1522 上。但是您的偵聽器在RAJHEGDE-LAP2.oradev.oraclecorp.com埠 1522 上,因此數據庫無法自行註冊。您可以更改tnsnames.ora條目以匹配listener.ora定義。重新啟動數據庫後,或者您這樣做alter system registerlsnrctl status輸出將顯示您的服務名稱也已註冊。

但是您的 SQL Developer 連接並沒有那麼遠。您無法遠端登錄到偵聽器埠,這意味著存在防火牆(您向我們保證不是這種情況),或者您正在執行一個您沒有告訴我們的虛擬機(我很懷疑關於.oradev.oraclecorp.com偵聽器報告的域),或者您連接到錯誤的 IP 地址。

檢查RAJHEGDE-LAP2機器 A 以及RAJHEGDE-LAP2.oradev.oraclecorp.com機器 A 和機器 B 上的任何主機名,以及用於 telnet 測試和連接的任何主機名,都解析為相同的 IP 地址。您還可以netstat在機器 A 上使用來檢查哪個 IP 地址在埠 1522 上偵聽。您可能有多個介面,而偵聽器不在您期望的介面上 - 可能是因為主機文件中的靜態地址不匹配例如,由 DHCP 和/或 DNS 分配的內容。

引用自:https://dba.stackexchange.com/questions/114576