在Oracle SQL Developer中创建新连接时出现ORA-12505错误

3

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

enter image description here

主密码正确且监听正在运行(在@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:

“this error” 是哪个错误? - Littlefoot
我附上了图片并插入了链接。我没有足够的声望直接添加到帖子中。如果你看第三行,有一个“我收到错误提示的截图”的链接。 - Gabrysse
谢谢 @Sujitmohanty30 - Gabrysse
好的,现在它可见了 :) 关于错误:你使用了SID = XE; 你应该使用CLRExtProc吗? - Littlefoot
1
对于18c,您不能再使用SID,而需要使用服务。此外,您的侦听器配置应该更像https://docs.oracle.com/en/database/oracle/oracle-database/18/xeinl/connecting-oracle-database-xe.html。 - thatjeffsmith
显示剩余2条评论
1个回答

1
首先,错误“listener does not know of sid”是绝对正确的。从“lsnrctl status”中我们可以看到没有任何数据库注册到监听器上。因此,在您启动并将数据库实际注册到监听器之前,其他任何事情都不重要。
其次,一旦您运行数据库,SQL Dev的“连接类型”为“basic”,这意味着您直接提供所有必要的连接信息,而不使用tnsnames.ora文件。没有任何问题,但如果您想要使用tnsnames,则将连接类型更改为“tns”。相应的输入字段将随之更改。
第三,如上所述,无论您使用tns还是基本连接,您都需要指定服务名称,而不是sid。

谢谢。我已经找到了一种将数据库添加到监听器的方法。我在帖子中更新了监听器状态。但是现在我遇到了这个错误:状态: 失败-测试失败:监听器拒绝连接,出现以下错误:ORA-12518,TNS:监听器无法交付客户端连接。已尝试将本地主机名从127.0.0.1更改为localhost。还在listener.ora文件中添加了此行,该文件在其他问题中找到:DIAG_ADR_ENABLED_LISTENER = OFF DIRECT_HANDOFF_TTC_LISTENER=OFF - Gabrysse
我只有与Oracle相关的两个服务:OracleOraDB18Home1TNSListenerOracleOraDB18Home1MTSRecoveryService - Gabrysse
1
那么你根本没有数据库。由于这是一道作业问题,我强烈建议你与你的教师合作。 - EdStevens
好的非常感谢!与此同时,我尝试在虚拟机上安装它在Ubuntu上,并且在那里它能够正常工作。 - Gabrysse
1
Ubuntu是Linux家族树上完全不同的一个分支,与Oracle设计的那个分支不同。在Ubuntu上尝试让它工作总是需要一些技巧,即使最初成功了,你也永远不知道是否会出现新的问题。如果你要为此创建一个带有Linux的虚拟机,那么你应该使用Oracle自己的“Oracle Linux”。 - EdStevens
显示剩余5条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接