Oracle SQL Developer:失败 - 测试失败:网络适配器无法建立连接?

时间:2014-06-09 19:48:47

标签: oracle oracle11g database-connection oracle-sqldeveloper

问题

请注意,我出于安全目的更改了详细信息。但问题仍然存在。

我在位置上的服务器上安装了Oracle 11g数据库,例如herp-devDV.derp.edu。 现在我在位置的服务器上有另一个Oracle 11g数据库,比如derp-db.derp.edu。

我在Oracle SQL开发人员中为herp-devDV.derp.edu和derp-db.derp.edu输入了连接名称,用户名,密码,主机名和服务名称。我可以连接到derp-db.derp.edu中的模式,但不能连接到herp-devDV.derp.edu。它给了我这样的信息:

Failure - Test failed: The Network Adapter could not establish the connection

详细

我有以下信息:

  • 当我telnet
  • 时,任何一台服务器都没有打开端口1521
  • 我的听众已经开始运行了。
  • 我可以在Oracle SQL Developer上访问derp-db.derp.edu。
  • Oracle客户端在我的本地计算机上+ Oracle SQL Developer
  • 我可以远程桌面到两台服务器

我做了什么

  • 一派
  • #1
  • 跑步并启动lnrctl命令
  • 在herp-devDB.derp.edu上,我运行了lsnrctl status

我收到了以下输出

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date                03-JUN-2014 13:37:22
Uptime                    6 days 0 hr. 53 min. 4 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   D:\oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File         d:\oracle\diag\tnslsnr\HERP-DEVDB\listener\alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=HERP-DEVDB.derp.edu)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "HERPDEVDBXDB" has 1 instance(s).
  Instance "herpdevdb", status READY, has 1 handler(s) for this service...
Service "herpdevdb" has 1 instance(s).
  Instance "herpdevdb", status READY, has 1 handler(s) for this service...
The command completed successfully

然后我查看我的listener.ora并找到

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

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = HERP-DEVDB.derp.edu)(PORT = 1521))
    )
  )

在这一点上,我承认我正在挠头,因为我没有看到任何突出的东西,并告诉我为什么这不应该起作用。

唯一的线索就是当我检查derp-db.derp.edu并运行命令lsnrctl status时。请 见下面的摘录:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=DERP-DB.edu)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 11.2.0.3.0 - Production
Start Date                18-MAY-2014 02:19:01
Uptime                    22 days 12 hr. 23 min. 18 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
---etc----

所以我仍在挠头。为什么derp-db会连接到DERP-DB.edu但是herp-devDB连接到EXTPROC1521?我该如何解决?除了实例的名称之外,这两个服务器之间的listener.ora和其他文件几乎相同。 嗯。

  • EDIT1:我在herp中更改了listener.ora。这没有解决它。

  • EDIT2:我无法在端口1521上telnet到derp-db.derp.edu但是我仍然可以使用SQL Developer连接到它?相机连

  • EDIT3 我也无法通过端口1521远程登录到herp-devdb.derp.edu。
  • EDIT4 我无法ping通任一服务器的IP地址。

无论如何,非常感谢协助。感谢

此致 令人讨厌

11 个答案:

答案 0 :(得分:13)

为了未来的社区用户的利益,我正在回答这个问题。有很多问题。如果您遇到此问题,我建议您查找以下内容:

  • 确保您的tnsnames.ora已完成且包含您要连接的数据库
  • 确保您可以调整要连接的服务器
  • 在服务器上,确保使用您正在使用的特定应用程序在所需的端口上打开它。

一旦我做了这三件事,我解决了我的问题。

答案 1 :(得分:9)

我有一个类似的问题,我也不断得到同样的错误。我尝试了很多东西,如更改侦听器端口号,关闭防火墙等。最后我通过更改listener.ora文件来解决问题。我更改了以下行:

(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))

(ADDRESS = (PROTOCOL = TCP)(HOST = hostname)(PORT = 1521)) 

我还在/etc/hosts文件中添加了一个条目。

您可以使用Oracle网络管理器更改listener.ora文件中的上述行。有关如何使用网络管理器执行此操作的详细信息,请参阅“Oracle网络服务管理员指南”。

此外,您可以在连接时使用服务名称(database_name.domain_name)而不是SID。

我希望它有所帮助。

答案 2 :(得分:3)

当我安装oracle 11g然后创建数据库时,我遇到了同样的问题。

我甚至不知道听众必须手动创建。 因此,我打开Net Configuration Assistant并手动创建监听器。

我可以通过sql developer连接我在本地创建的数据库。

答案 3 :(得分:2)

我解决了:给出正确的主机和端口 这样:

  1. 打开oracle网络管理员
  2. 本地
  3. 听众
  4. 在地址2的Listener中

    然后将主机复制到Oracle Developer

    最后连接到oracle

答案 4 :(得分:1)

奇怪的是,通过对svc进行完全相反的举动,我能够解决同样的问题!我必须:

1)用 localhost 替换tnsnames.ora / listener.ora文件中的FQDN主机名,然后重新启动监听器服务,

2)两个,我不得不使用" SYS作为SYSDBA"作为SQL Developer输入文本框中的用户名

最终能够让SQL Developer挂钩到我的本地实例。

答案 5 :(得分:1)

只启动列表器然后你可以连接数据库。 命令在编辑器上运行:

  

lsnrctl start

工作正常。

答案 6 :(得分:1)

您可以在安装文件夹listener.ora下找到名为oraclexe\app\oracle\product\11.2.0\server\network\ADMIN的文件 它包含以下条目

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 = Codemaker-PC)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)

您应验证主机(此处为Codemaker-PC)应为计算机名称。如果不正确,请将其更改为计算机名称。

然后在以管理员身份运行的命令提示符下尝试以下命令,

lsnrctl start

答案 7 :(得分:0)

我遇到了同样的问题。 我不得不关掉我的防火墙,然后就可以了。

你也可以打开端口: http://windows.microsoft.com/en-in/windows/open-port-windows-firewall#1TC=windows-7

答案 8 :(得分:0)

这对我有用。可能会帮助一些人。关闭防火墙。在RHEL 7上

systemctl stop  firewalld

答案 9 :(得分:0)

对我来说,在tnsnames.ora和listener.ora中设置HOST的方式不同。 一个设置为计算机的全名,另一个设置为IP地址。 我将它们与计算机的全名同步并且有效。别忘了重启oracle服务。

我仍然不明白为什么这会引起问题,因为我认为IP地址和计算机名称在我的理解中最终是相同的。

答案 10 :(得分:0)

我通过将在Listener.ora文件中定义的显式IP地址作为主机名来解决此问题。

enter image description here

因此,我在SQL Developer字段中将“ 192.168.1.2”作为“主机名”而不是“ localhost”。

在下面的图片中,我突出显示了已修改的输入框: enter image description here