首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ORA-12505,TNS:侦听器目前不知道连接中给出的SID。

ORA-12505,TNS:侦听器目前不知道连接中给出的SID。
EN

Stack Overflow用户
提问于 2018-02-20 15:02:08
回答 2查看 889关注 0票数 3

当我试图与hr/hr用户创建数据库连接时,我使用的是JDeveloper,我得到以下消息:

代码语言:javascript
复制
Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
The Connection descriptor used by the client was:
localhost:1521:ORCL

然后,我转到命令行,将tnsping

代码语言:javascript
复制
C:\Users\Administrator>tnsping ORCL

TNS Ping Utility for 64-bit Windows: Version 12.2.0.1.0 - Production on 20-FEB-2
018 15:55:23

Copyright (c) 1997, 2016, Oracle.  All rights reserved.

Used parameter files:
C:\app\oracle\virtual\product\12.2.0\dbhome_1\network\admin\sqlnet.ora

Used EZCONNECT adapter to resolve the alias
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTO
COL=TCP)(HOST=213.130.77.281)(PORT=1521)))
OK (90 msec)

C:\Users\Administrator>é2@

并检查Oracle侦听器是否正在运行:

代码语言:javascript
复制
C:\Users\Administrator>lsnrctl status

LSNRCTL for 64-bit Windows: Version 12.2.0.1.0 - Production on 22-FEB-2018 12:34
:05

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=TESTINFRA)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 12.2.0.1.0 - Produ
ction
Start Date                20-FEB-2018 15:02:35
Uptime                    1 days 21 hr. 31 min. 34 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   C:\app\oracle\virtual\product\12.2.0\dbhome_1\network\
admin\listener.ora
Listener Log File         C:\app\oracle\virtual\diag\tnslsnr\TESTINFRA\listener\
alert\log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=TESTINFRA)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-25 23:31:38

您的侦听器服务没有明确声明它在此主机上有任何ORCL数据库SID。当您使用TNSPING命令检查连接时,您可以使用Oracle EZCONNECT适配器来检查连接性,该适配器本身解决了所有所需的连接信息,但是JDBC驱动程序需要在侦听器中明确声明SID,或者使用clear命令使用EZCONNECT适配器。

解决这一问题的两种方法是:

  1. 打开listener.ora并找到以下行: ( C:\app\oracle\virtual\product\12.2.0\dbhome_1) = "EXTPROC_DLLS=ONLY:C:\app\oracle\virtual\product\12.2.0\dbhome_1\bin\oraclr11.dll") ) (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) 代之以下列各项: ( C:\app\oracle\virtual\product\12.2.0\dbhome_1) =SID_LIST= (SID_DESC = (SID_NAME = CLRExtProc) ) (ORACLE_HOME =SID_NAME= extproc) (ENVS = "EXTPROC_DLLS=ONLY:C:\app\oracle\virtual\product\12.2.0\dbhome_1\bin\oraclr11.dll") ) (SID_DESC = (SID_NAME = ORCL) (ORACLE_HOME = C:\app\ )( oracle\virtual\product\12.2.0\dbhome_1) (GLOBAL_DBNAME = ORCL) ) 然后使用"lsnrctl stop“和"lsnrctl start”重新启动侦听器。此更改将在侦听器中使用数据库SID的描述注册新的SID_DESC块。
  2. 将JDBC字符串更改为通过EZCONNECT适配器连接,而不是通过SID连接。如果您想要确切的答案,请张贴JDBC连接字符串,但总的来说,您不应该使用: jdbc:oracle:thin:@213.130.77.281:1521:orcl 代之以: jdbc:oracle:thin:@//213.130.77.281:1521/orcl 此更改将告诉JDBC使用EZCONNECT适配器。
票数 1
EN

Stack Overflow用户

发布于 2018-02-20 19:07:09

在您的jdbc错误中,您正在使用: localhost:1521:ORCL

在TNSPING,是213.130.77.281

还可以使用jdev中的ip地址。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48888153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档