【问题标题】:ORA-12505 while creating new connection in Oracle SQL Developer在 Oracle SQL Developer 中创建新连接时出现 ORA-12505
【发布时间】:2021-02-04 17:44:23
【问题描述】:

稍后我安装了 Oracle 数据库 XE 18.4.0.0.0 (18c)。 接下来,我下载了 Oracle SQL Developer 工具并尝试创建一个新连接,但出现此错误:

主密码正确,listerner 正在运行,(@EdStevens 回复后更新):

C:\WINDOWS\system32> lsnrctl start

LSNRCTL for 64-bit Windows: Version 18.0.0.0.0 - Production on 22-OTT-2020 09:04:27

Copyright (c) 1991, 2018, Oracle.  All rights reserved.

Avvio di tnslsnr: attendere...

TNSLSNR for 64-bit Windows: Version 18.0.0.0.0 - Production
Il file dei parametri di sistema Þ C:\app\gabri\product\18.0.0\dbhomeXE\network\admin\listener.ora
Ascolto su: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))

Connessione a (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
STATO del LISTENER
------------------------
Alias                     LISTENER
Versione                  TNSLSNR for 64-bit Windows: Version 18.0.0.0.0 - Production
Data di inizio            22-OTT-2020 09:04:34
Tempo di attivitÓ           0 giorni 0 ore 0 min. 12 sec.
Livello trace             off
Sicurezza                 ON: Local OS Authentication
SNMP                      OFF
File di parametri listenerC:\app\gabri\product\18.0.0\dbhomeXE\network\admin\listener.ora
Summary table degli endpoint di ascolto...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Summary table dei servizi...
Il servizio "CLRExtProc" ha 1 istanze.
  L'istanza "CLRExtProc", stato UNKNOWN, ha 1 handler per questo servizio...
Il servizio "database" ha 1 istanze.
  L'istanza "XE", stato UNKNOWN, ha 1 handler per questo servizio...
Il comando Þ stato eseguito

这里是我的listener.ora

# listener.ora Network Configuration File: C:\app\gabri\product\18.0.0\dbhomeXE\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.

DEFAULT_SERVICE_LISTENER = XE

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\app\gabri\product\18.0.0\dbhomeXE)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:C:\app\gabri\product\18.0.0\dbhomeXE\bin\oraclr18.dll")
    )
  )

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

还有tnsnames.ora:

# tnsnames.ora Network Configuration File: C:\app\gabri\product\18.0.0\dbhomeXE\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)
    )
  )

希望有人能帮帮我!

提前致谢

编辑:

C:\WINDOWS\system32>echo %ORACLE_HOMEd%
%ORACLE_HOMEd%

C:\WINDOWS\system32>echo %ORACLE_SID%
%ORACLE_SID%

C:\WINDOWS\system32>sqlplus / as sysdba'

SQL*Plus: Release 18.0.0.0.0 - Production on Gio Ott 22 14:27:19 2020
Version 18.4.0.0.0

Copyright (c) 1982, 2018, Oracle.  All rights reserved.

ERROR:
ORA-12560: TNS: errore dell'adattatore del protocollo


Immettere il nome utente: SYSTEM
Immettere la password:
ERROR:
ORA-12560: TNS: errore dell'adattatore del protocollo


Immettere il nome utente:

【问题讨论】:

  • 哪个错误是“这个错误”?
  • 我附上了图片并插入了链接。我没有足够的声誉直接在帖子中添加。如果您查看第 3 行,则有一个链接“我得到的错误截图”
  • 谢谢@Sujitmohanty30
  • 对,它现在是可见的 :) 截至错误:你使用 SID = XE;你不应该改用 CLRExtProc 吗?
  • 对于 18c,你不能再使用 SID,你需要使用服务,你的监听器配置应该看起来更像 docs.oracle.com/en/database/oracle/oracle-database/18/xeinl/…

标签: oracle connection oracle-sqldeveloper


【解决方案1】:

首先,错误“侦听器不知道 sid”是绝对正确的。我们从 'lsnrctl status' 看到没有向侦听器注册 database。因此,在您真正启动数据库并在侦听器中注册之前,其他都无关紧要。

其次,一旦你运行了一个数据库,你的 SQL Dev '连接类型' 'basic' 意味着你正在直接提供所有必要的连接信息,并且 tnsnames.ora 不会被调用。这没有什么问题,但是如果您确实想使用 tnsnames,那么将您的连接类型更改为“tns”。必要的输入字段会相应更改。

第三,如前所述,无论你使用 tns 还是基本连接,你要指定服务名称,而不是 sid。

【讨论】:

  • 谢谢。我找到了一种将数据库添加到侦听器的方法。我在帖子中更新了监听器状态。现在我收到此错误:Status : Failure -Test failed: Listener refused the connection with the following error: ORA-12518, TNS:listener could not hand off client connection。已经尝试将两者都从 127.0.0.1 更改为 localhost。在listener.ora 中也添加了这一行,我在其他问题中找到了这一行:DIAG_ADR_ENABLED_LISTENER = OFF DIRECT_HANDOFF_TTC_LISTENER=OFF
  • 什么,确切地,你做了什么来“添加一个数据库到监听器”?根据您更新的 lsnrctl 输出,我猜您在 listener.ora 中添加了一个 SID_LIST 条目。但这并不能解决未启动的数据库。乱搞 HOST 不是问题。这会影响从客户端到侦听器的网络路由,并且我们通过错误的性质知道请求到达侦听器。
  • 打开命令提示符并输入以下内容:'echo %ORACLE_HOMEd%'、'echo %ORACLE_SID%'、'sqlplus / as sysdba'。复制整个会话的文本并粘贴到您的开篇文章中。没有屏幕截图,复制文本并粘贴。如果您不知道如何从命令窗口复制文本,请查阅。
  • 那你根本就没有数据库。由于这是一个家庭作业问题,我强烈建议你与你的导师一起工作。
  • Ubuntu 是 linux 家族树的一个完全不同的分支,与设计 oracle 的分支完全不同。让它在 ubuntu 上运行的尝试总是黑客攻击,即使取得了初步成功,你也永远不会知道新问题是否是在那里运行的结果。如果你要为此创建一个带有 linux 的 vm,那么你应该使用 oracle 自己的“oracle linux”。
猜你喜欢
  • 2014-10-31
  • 2017-12-14
  • 2022-01-02
  • 2013-05-16
  • 1970-01-01
  • 2013-09-11
  • 2014-03-29
  • 1970-01-01
  • 2015-07-15
相关资源
最近更新 更多