【问题标题】:Getting Error: Listener currently does not know given SID when using SQL Developer出现错误:使用 SQL Developer 时,侦听器当前不知道给定的 SID
【发布时间】:2015-04-17 01:51:38
【问题描述】:

请看截图:

我已使用 SQL*Plus 成功连接。

但是当我尝试使用 SQL Developer 使用同一用户连接同一数据库时,我收到错误消息。有人知道吗?我看到所有服务都运行良好。

tnsnames.ora

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

【问题讨论】:

  • 是本地数据库还是远程数据库?
  • 查找文件 Tnsnames.ora 并使用其内容编辑您的问题
  • 而不是orcl 尝试完整的连接字符串,即(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=orcl)))。但是,这只是一种解决方法,正确的解决方案是修复您的tnsnames.ora
  • 或者你可以简单地sqlplus scott/tiger@localhost:1521/orcl
  • 您的第一个 SQL*Plus 连接得到 ORA-12505,这可能是因为数据库在侦听器之后启动(注册 SID 可能需要一分钟),或者根本无法注册。第二个成功的连接没有 TNS 数据,因此它是本地的(直接连接到您的 ORACLE_SID 设置的任何内容)并绕过侦听器(或者远程到其他地方并且您设置了 TWO_TASK)。我的第一个猜测是你的听众不在 1521 上。您可以运行lsnrctl status 并将其文本(不是图像)添加到问题中吗?

标签: oracle oracle11g oracle-sqldeveloper sqlplus


【解决方案1】:

SID 中的

orcl,而不是服务名称。

我认为这是个好主意:)

【讨论】:

  • 如果这是唯一的问题,那么它仍然会报告 12505,但在消息中引用的是 SERVICE_NAME 而不是 SID。
  • 监听器服务是什么?从你的 CMD 窗口运行 lsnrctl -status 你也可以尝试使用 BEQUEATH 连接选项——它绕过监听器直接进入,就像 SQL*Plus 在与数据库相同的机器上时一样
猜你喜欢
  • 1970-01-01
  • 2019-03-27
  • 2014-11-21
  • 2021-08-03
  • 2018-11-12
  • 2014-04-21
  • 2015-08-31
  • 2014-01-07
  • 2020-03-02
相关资源
最近更新 更多