TNS-12505:TNS:listener当前不知道连接描述符中给出的SID
|
我正在尝试使用以下连接字符串从NetBeans连接到Oracle 10.2.0:
jdbc:oracle:thin:@localhost:1521:XE
最奇怪的部分是,一切正常,直到其中一次重新启动。我一直都在收到这个TNS-12505错误;看一下我的ѭ1中的最后条目:
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-APR-2011 13:46:48
Copyright (c) 1991, 2005, Oracle. All rights reserved.
System parameter file is D:\\oraclexe\\app\\oracle\\product\\10.2.0\\server\\network\\admin\\listener.ora
Log messages written to D:\\oraclexe\\app\\oracle\\product\\10.2.0\\server\\network\\log\\listener.log
Trace information written to D:\\oraclexe\\app\\oracle\\product\\10.2.0\\server\\network\\trace\\listener.trc
Trace level is currently 0
Started with pid=3460
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\\\.\\pipe\\EXTPROC_FOR_XEipc)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Brodyaga-PC)(PORT=1521)))
Listener completed notification to CRS on start
TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE
14-APR-2011 13:48:54 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=58458)) * establish * XE * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
14-APR-2011 13:49:00 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=58481)) * establish * XE * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
14-APR-2011 13:49:02 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=JDBC Thin Client)(HOST=__jdbc__)(USER=Brodyaga))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=58487)) * establish * XE * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
14-APR-2011 13:50:23 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Brodyaga))(COMMAND=services)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=169869568)) * services * 0
前三个条目是我尝试从NetBeans连接的尝试。第四,通过SQL * Plus的连接工作正常。
这是我的listener.ora
的内容:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\\oraclexe\\app\\oracle\\product\\10.2.0\\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = D:\\oraclexe\\app\\oracle\\product\\10.2.0\\server)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
(ADDRESS = (PROTOCOL = TCP)(HOST = Brodyaga-PC)(PORT = 1521))
)
)
DEFAULT_SERVICE_LISTENER = (XE)
和tnsnames.ora
:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = Brodyaga-PC)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
并从> lsnrctl服务输出
C:\\Users\\Brodyaga>lsnrctl services
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-APR-2011 13:59
:45
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
Services Summary...
Service \"CLRExtProc\" has 1 instance(s).
Instance \"CLRExtProc\", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
\"DEDICATED\" established:0 refused:0
LOCAL SERVER
Service \"PLSExtProc\" has 1 instance(s).
Instance \"PLSExtProc\", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
\"DEDICATED\" established:0 refused:0
LOCAL SERVER
The command completed successfully
两个Oracle服务都已启动,并且SQL * Plus可以正常连接。
有没有针对此错误的解决方法?
没有找到相关结果
已邀请:
17 个回复
凸晴
该实例将不会向侦听器注册。 因此,请像这样编辑您的listener.ora:
在Windows 7上安装Oracle XE时出现此问题。在Windows XP上没有遇到此问题。通常,该条目不是必需的,因为实例应自动向侦听器注册。在Linux(Fedora)上运行Oracle XE,无需将XE添加到sid-list。
捅瓶啡
至:
娜拐赐巫潭
可能是因为ik_zelf建议使用“更改系统寄存器”来完成此操作。我确实已经在listener.ora和tnsnames.ora的相关位置设置了IP。
雇砰
芦歉竭皑
请注意,您想要的侦听器(在我们的示例中为“ orcl”)没有显示。 步骤2 –通过sqlplus登录
Sqlplus给了我们这个错误信息:
步骤3 –进入Windows事件查看器(eventvwr.exe) 在“ Windows日志”下,右键单击“应用程序”,然后选择“清除日志”。对系统执行相同的操作。 右键单击“应用程序”并选择“属性”也是明智的。然后,在“日志大小”下,在“达到最大日志大小时”下选择以下选项:“根据需要覆盖事件”。这应防止日志用尽并导致数据库无法启动。 在Windows Vista和更高版本中,您可以执行以下命令来清除应用程序日志:
步骤4 –通过sqlplus登录
现在,您应该能够登录而没有任何错误消息。 步骤5-检查数据库侦听器状态
现在,您应该看到监听器正在运行。 步骤6 –启动UCM UCM现在应该启动。 有关此问题的更深入答案,请阅读我的完整博客文章。
骨乏唯瓜
茶鬼失形
并替换为斜线
。 我以前也有这个问题。
戊袱
寒健
加快速度。 如果数据库处于受限模式,则使用服务的连接将失败。您正在使用ORACLE_SID,所以这不是您的问题。 还要检查使用的名称。本地主机是否解析为与Brodyaga-PC相同的地址?在jdbc字符串中,使用localhost,并且侦听器侦听Brodyaga-PC。是localhost 127.0.0.1吗?
渴翅吮斡撤
茬贺努充尽
根据以上详细信息-我的端口号是-1522,我可以使用\“ orcl \”实例创建连接- 所以我用port作为1522,实例用\“ orcl \”-现在URL是-
它对我有用,因此请在命令提示符下检查LSNRCTL> stat并相应地配置您的连接URL。 希望对您有所帮助。
很缴
,
,
右键单击并按
/
完成过程后。检查它是否有效或有效;) 完成 祝一切顺利。
艰管垮淮
信藉乒
OK(30毫秒)
如您所见,解决它需要很长时间,因此我向主机文件添加了一个条目,如下所示:
完成后,再次运行相同的命令:
随着时间响应的减少,我在sqldeveloper上成功尝试了连接。
贸会
苦诫
室邢