2017-09-24 86 views
-1

我與Oracle Express Edition有問題。我可以通過使用sqlplus打開並運行數據庫中的命令,但後來我嘗試使用SQL開發人員連接到數據庫,但它不起作用。這很奇怪,因爲我有很多其他遠程Oracle數據庫,我可以通過使用sql developer或其他工具如IDEA連接到它們。聽衆可能有問題嗎?無法連接到Oracle Express Edition

當我嘗試連接時,我得到超時連接到端口1521

Connection to @myhost.company.com failed. 

LSNRCTL狀態

LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Production on 22-╤┼═-2017 12:04:43 
Copyright (c) 1991, 2010, Oracle. All rights reserved. 
TNS-01106: Listener using listener name LISTENER has already been started 
C:\Users\luchser>lsnrctl status 
LSNRCTL for 32-bit Windows: Version 11.2.0.2.0 - Production on 22-╤┼═-2017 12:11:20 
Copyright (c) 1991, 2010, Oracle. All rights reserved. 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1))) 
STATUS of the LISTENER 
------------------------ 
Alias      LISTENER 
Version     TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Production 
Start Date    21-╤┼═-2017 14:21:26 
Uptime     0 days 21 hr. 49 min. 53 sec 
Trace Level    off 
Security     ON: Local OS Authentication 
SNMP      OFF 
Default Service   XE 

Listener Parameter File C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\listener.ora 
Listener Log File   C:\oraclexe\app\oracle\diag\tnslsnr\localhost\listener\alert\log.xml 

Listening Endpoints Summary... 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc))) 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost.company.com)(PORT=1521))) 
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhost.company.com)(PORT=8080))(Presentation=HTTP)(Session=RAW)) 

Services Summary... 
Service "CLRExtProc" has 1 instance(s). 
    Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service... 
Service "PLSExtProc" has 1 instance(s). 
    Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... 
Service "XEXDB" has 1 instance(s). 
    Instance "xe", status READY, has 1 handler(s) for this service... 
Service "xe" has 1 instance(s). 
    Instance "xe", status READY, has 1 handler(s) for this service... 
The command completed successfully 

的listener.ora

SID_LIST_LISTENER = 
    (SID_LIST = 
    (SID_DESC = 
     (SID_NAME = PLSExtProc) 
     (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server) 
     (PROGRAM = extproc) 
    ) 
    (SID_DESC = 
     (SID_NAME = CLRExtProc) 
     (ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server) 
     (PROGRAM = extproc) 
    ) 
) 

LISTENER = 
    (DESCRIPTION_LIST = 
    (DESCRIPTION = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
     (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.company.com)(PORT = 1521)(IP=V4_ONLY)) 
    ) 
) 

DEFAULT_SERVICE_LISTENER = (XE) 

的tnsnames.ora

XE = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.company.com)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XE) 
    ) 
) 

EXTPROC_CONNECTION_DATA = 
    (DESCRIPTION = 
    (ADDRESS_LIST = 
     (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
    ) 
    (CONNECT_DATA = 
     (SID = PLSExtProc) 
     (PRESENTATION = RO) 
    ) 
) 

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

用tnsping XE 10個

C:\Users\luchser>tnsping XE 10 

TNS Ping Utility for 32-bit Windows: Version 11.2.0.2.0 - Production on 26-╤┼═-2017 14:49:12 

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

Used parameter files: 
C:\oraclexe\app\oracle\product\11.2.0\server\network\admin\sqlnet.ora 

Used TNSNAMES adapter to resolve the alias 

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = myhost.company.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE))) 

OK (0 msec) 
OK (10 msec) 
OK (0 msec) 
OK (0 msec) 
OK (20 msec) 
OK (0 msec) 
OK (0 msec) 
OK (10 msec) 
OK (0 msec) 
OK (20 msec) 

sqlplus的用戶名/密碼@ XE

C:\Users\luchser>sqlplus my_user/[email protected] 
SQL*Plus: Release 11.2.0.2.0 Production on ┬Є ╤хэ 26 14:50:11 2017 
Copyright (c) 1982, 2010, Oracle. All rights reserved. 

最後只是女巫並沒有任何反應。

+0

您需要發佈錯誤。 – Ravi

+0

連接到端口1521(這是偵聽器的標準端口)超時。 –

+0

你能發佈錯誤的截圖嗎? – Ravi

回答

1

在此配置中,listener.ora和tnsnames.ora。 只能在本地數據庫上建立連接,不能建立到數據庫的遠程連接,因爲偵聽器只偵聽IP本地主機。 您必須將外部IP添加到偵聽器配置。的listener.ora

LISTENER = 
     (DESCRIPTION_LIST = 
     (DESCRIPTION = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)(IP=V4_ONLY)) 
      (ADDRESS = (PROTOCOL = TCP)(HOST = <IP DB server>)(PORT = 1521)(IP=V4_ONLY)) 

    ) 
) 

添加端口1521和數據庫服務器上的防火牆端口範圍(32768-65536)一個異常,這是必要的SQL * NET協議。 在客戶端機器上,您需要修復tnsnames.ora, 需要將localhost替換爲數據庫服務器的IP地址。

XE = 
    (DESCRIPTION = 
    (ADDRESS = (PROTOCOL = TCP)(HOST = <IP DB server>)(PORT = 1521)) 
    (CONNECT_DATA = 
     (SERVER = DEDICATED) 
     (SERVICE_NAME = XE) 
    ) 
) 
+0

謝謝。但這不是問題。查看更新的文件。 –

+0

診斷到數據庫的網絡連接。 1)'telnet myhost.company.com 1521' 2)'tnsping XE 10' 3)'sqlplus user/password @ XE' –

+0

我沒有telnet。我已經運行了最後兩條命令並添加了結果。 –