ORA-12505,TNS:监听器当前不知道connect des中给出的SID

Jem*_*mru 3 database oracle sqlplus oracle11g oracle-sqldeveloper

请帮助我,因为我刚刚安装了Oracle 11g但无法使用SQL Devloper使用以下设置连接:

用户名:system

密码:mypassword

主机名:localhost

港口:1521

SID:XE

错误信息:

状态:失败 - 测试失败:侦听器拒绝连接并出现以下错误:

ORA-12505,TNS:监听器当前不知道连接描述符中给出的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:版本11.2.0.2.0生产于2014年4月22日星期二11:22:31版权所有(c)1982,2010,Oracle.版权所有.

错误:ORA-12170:TNS:发生连接超时

输入用户名:

测试2:结果成功

C:\ oraclexe\app\oracle\product\11.2.0\server\bin> sqlplus.exe system/mypassword

SQL*Plus:版本11.2.0.2.0生产于2014年4月22日星期二11:33:22版权所有(c)1982,2010,Oracle.版权所有.

连接到:Oracle Database 11g Express Edition版本11.2.0.2.0 - 生产

SQL>

测试3:结果成功

C:\ oraclexe\app\oracle\product\11.2.0\server\bin> sqlplus.exe/as sysdba

SQL*Plus:版本11.2.0.2.0生产于2014年4月22日星期二11:34:29版权所有(c)1982,2010,Oracle.版权所有.

连接到:Oracle Database 11g Express Edition版本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
Run Code Online (Sandbox Code Playgroud)

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) 
    ) 
  ) 
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

请帮助我.

小智 8

我有同样的问题,但我在oracle linux上运行.在搜索和测试之后,我可以将sqldeveloper连接到我的oracle11g而无需设置我的listener.ora或者其他

这是我在终端sql上运行的语法

alter system set LOCAL_LISTENER='(DESCRIPTION_LIST =  (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))))';
Run Code Online (Sandbox Code Playgroud)

然后

alter system register;
Run Code Online (Sandbox Code Playgroud)

我在这里得到了教程


小智 6

  1. 打开网络管理器.在Oracle Net Configuration中,打开Local,然后打开Listeners.
  2. 选择你的听众.
  3. 在右上角的ComboBox中,选择" 数据库服务".
  4. Clic 添加数据库.
  5. 填写3个字段:全局数据库名称(即ORCL.NET.在SQL Plus中键入SELECT*FROM GLOBAL_NAME),Oracle主目录(即C:\ app\User\product\11.2.0\dbhome_1)和SID(即orcl)
  6. 文件>保存网络配置.
  7. 重新启动OracleOraDb11g_home1TNSListener服务.