【发布时间】:2014-06-06 06:13:34
【问题描述】:
请帮助我,因为我刚刚安装了 Oracle 11g,但无法使用 SQL Devloper 使用以下设置进行连接:
用户名:系统
密码:我的密码
主机名:本地主机
端口:1521
SID:XE
错误信息:
状态:失败 - 测试失败:侦听器拒绝连接并出现以下错误:
ORA-12505,TNS:listener 目前不知道连接描述符中给出的 SID
我检查了 Windows 服务:
OracleServiceXE:已启动
OracleXETNSListener:已启动
我也无法连接到管理页面:**http://localhost:8080/apex/f?p=4950**
显示“此页面无法显示”
我还测试了使用 SqlPlus 进行连接:
测试 1:结果为 ORA-12170:TNS:发生连接超时
C:\oraclexe\app\oracle\product\11.2.0\server\bin>sqlplus.exe system/mypassword@XE
SQL*Plus:2014 年 4 月 22 日星期二 11:22:31 发布 11.2.0.2.0 生产版 版权所有 (c) 1982, 2010, Oracle。保留所有权利。
错误: ORA-12170: TNS: 发生连接超时
输入用户名:
测试 2:结果成功
C:\oraclexe\app\oracle\product\11.2.0\server\bin>sqlplus.exe system/mypassword
SQL*Plus:2014 年 4 月 22 日星期二 11:33:22 发布 11.2.0.2.0 生产版 版权所有 (c) 1982, 2010, Oracle。保留所有权利。
连接到: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 生产
SQL>
测试 3:结果成功
C:\oraclexe\app\oracle\product\11.2.0\server\bin>sqlplus.exe / as sysdba
SQL*Plus:2014 年 4 月 22 日星期二 11:34:29 发布 11.2.0.2.0 生产版 版权所有 (c) 1982, 2010, Oracle。保留所有权利。
连接到: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 生产
SQL>
Listener.log
22-APR-2014 11:53:51 * (CONNECT_DATA=(SID=XE)(CID=(PROGRAM=SQL Developer)(HOST=__jdbc__)(USER=admin))) * (ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=50010)) * establish * XE * 12505
TNS-12505: TNS:listener does not currently know of SID given in connect descriptor
tnsnames.ora:
XE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = NASAYAO2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)
LSNRCTL> 状态
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for 32-bit Windows: Version 11.2.0.2.0 - Produ
ction
Start Date 22-APR-2014 14:29:22
Uptime 0 days 0 hr. 56 min. 43 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File C:\oraclexe\app\oracle\product\11.2.0\server\network\a
dmin\listener.ora
Listener Log File C:\oraclexe\app\oracle\diag\tnslsnr\NASAYAO2\listener\
alert\log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=NASAYAO2)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
请帮帮我。
【问题讨论】:
-
对于“测试 1”,您的
tnsnames.ora中如何定义 XE?如果它超时,那么听起来它指向不同的 IP 地址。对于 SQL Developer,数据库是否已向侦听器注册?lsnrctl status显示什么?默认情况下,它通常希望在服务器的外部 IP 地址上注册一个 istener,而不是 localhost。 -
嗨,Alex Poole,我在我的问题中添加了您对我的建议。请看我上面的更新。谢谢。
-
这一切都在一台机器(PC)上,还是客户端和服务器在不同的机器上?这一切似乎都是一个;但是主机名
NASAYA02解析到什么IP 地址? 似乎解析为 127.0.0.1 但这有点奇怪,而且行为也很奇怪。基本上看起来像this,但有额外的 IP 混淆。如果这解析为不同的 IP,您是否运行了防火墙?您希望人们能够从其他地方的其他客户联系吗? -
嗨@AlexPoole。感谢您的回复。是的,这是同一台机器。 NASAYAO2 实际上是我的本地计算机,因此它解析为 127.0.0.1。我的意图是只在我的本地计算机上设置一个开发数据库。谢谢。
-
那么,如果您将所有内容(尤其是
listener.ora和tnsnames.ora)设置为使用localhost而不是您的机器名称,那么您可能需要强制DB 通过local_listener参数注册。但是超时和 APEX 问题听起来仍然像是有时正在使用另一个 IP。也许 DNS 将其解析为其他内容,与您的hosts文件中的内容不同?
标签: database oracle oracle11g oracle-sqldeveloper sqlplus