Oracle
Windows機器的遠端連接問題
我已經在機器 A (Windows) 上安裝了數據庫 11g。現在我需要從放置我的應用程序的機器 B (Windows) 訪問該數據庫。我可以 ping B –> A 但 telnet 不工作。有人可以幫我解決這個問題。一些幫助將不勝感激。以下是一些文件供參考。
以下是我已經嘗試過的幾件事:
- 禁用防火牆。
- 使用入站和出站規則打開的埠。
- 啟動了服務。
監聽器.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 register
,lsnrctl 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 分配的內容。