【问题标题】:How do I create a new Connection in Oracle SQL Developer?如何在 Oracle SQL Developer 中创建新连接?
【发布时间】:2015-06-02 16:26:01
【问题描述】:

我刚刚在 Windows 7 上安装了 Oracle Database 11g 第 2 版。

我在 Oracle SQL Developer 中,我正在尝试创建一个新连接,但是当我单击 “连接” 时,我收到消息:“状态:失败 -测试失败:网络适配器无法建立连接”

在连接窗口中,我尝试将角色更改为 SYSDBA、操作系统身份验证、端口和 SID,但即使更改了这些值,我也会收到相同的消息。

tnsnames.ora 内容:

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

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

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.104)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.168.0.104)
    )
  )

listener.ora:

# listener.ora Network Configuration File: F:\Oracle\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 = F:\Oracle\product\11.2.0\dbhome_1)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.104)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = F:\Oracle

警报日志:

<msg time='2015-06-02T19:28:12.428-05:00' org_id='oracle' comp_id='tnslsnr'
 type='UNKNOWN' level='16' host_id='KK-PC'
 host_addr='fe80::986b:9a38:5c9f:fc06%10' version='1'>
 <txt>02-JUN-2015 19:28:12 * (CONNECT_DATA=(SID=CLRExtProc)(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=KK))) * (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.104)(PORT=51332)) * establish * CLRExtProc * 0
 </txt>
</msg>

lsnrctl 状态:

Services Summary...
Service "orcl.168.0.104" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.168.0.104" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

我该如何解决这个问题?

谢谢。

【问题讨论】:

  • 您是否设置了主机和端口以匹配您数据库的侦听器?侦听器是否实际运行,并且在您认为的地址/端口上(lsnrctl status 会告诉您)。如果不是同一个盒子,数据库和您的 PC 之间是否有防火墙?
  • 不确定;这听起来仍然像防火墙问题。但是检查警报日志以查看数据库端是否有问题 - 不太可能,但您永远不知道。您是否正在测试/创建连接,或者它是否已建立并且您现在正在尝试运行语句?
  • 为什么在 tnsnames.ora 中 ORCL 别名的 SID 设置为 CLRExtProc?那几乎肯定也应该是 ORCL - 以匹配您的实际数据库 SID。您是否使用 SQL Developer 的 TNS 连接?使用基本连接并直接提供该信息可能更容易;并使用服务名称(如果你知道的话 - tnsnames.ora 中的值看起来也很奇怪)。
  • tnsnames.ora 与基本连接无关,但可能有助于检查您正在使用的连接设置。我不清楚您如何从与 ORCL 的基本连接中获取警报日志条目。不过那是一个非常旧的版本 - 不知道他们为什么仍然发货! - 无论如何升级到当前版本 4.1 可能是值得的。
  • 如果使用服务名称成功,为什么使用 SID? SID 必须在 listener.ora 中明确引用才能使用。

标签: oracle11g


【解决方案1】:

所以我会回答我自己的问题嘿嘿。

我所做的是停止侦听器服务,然后从 ADMIN 文件夹中删除 listener.ora,然后再次启动该服务。

然后我在命令提示符下执行了 lsnrctl status,得到了服务名称和 SID。所以现在我可以连接 orcl SID 和 orcl.168.0.104 服务名称,一切正常。非常感谢。

【讨论】:

    猜你喜欢
    • 2013-09-11
    • 2014-03-29
    • 1970-01-01
    • 2021-02-04
    • 2020-04-23
    • 2017-06-20
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多