Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过SQL Developer连接时发生ora-12505错误_Sql_Oracle_Oracle Sqldeveloper - Fatal编程技术网

通过SQL Developer连接时发生ora-12505错误

通过SQL Developer连接时发生ora-12505错误,sql,oracle,oracle-sqldeveloper,Sql,Oracle,Oracle Sqldeveloper,我正在尝试使用SQL Developer远程连接到Oracle 12c数据库。为了从另一台计算机远程连接,我在运行Oracle的计算机上打开了Windows 7防火墙中的一个端口。这一部分起作用了,但是现在由于这个错误ORA-12505,听众不让我进来。它说它无法识别我在远程计算机中尝试与SQL Developer连接时提供的SID。我甚至尝试将服务名称设置为“editor”,但仍然没有 以下是远程计算机上SQL Developer的设置: 在服务器端,这是listener.ora: SID_

我正在尝试使用SQL Developer远程连接到Oracle 12c数据库。为了从另一台计算机远程连接,我在运行Oracle的计算机上打开了Windows 7防火墙中的一个端口。这一部分起作用了,但是现在由于这个错误ORA-12505,听众不让我进来。它说它无法识别我在远程计算机中尝试与SQL Developer连接时提供的SID。我甚至尝试将服务名称设置为“editor”,但仍然没有

以下是远程计算机上SQL Developer的设置:

在服务器端,这是listener.ora:

SID_LIST_LISTENER =
(SID_LIST =
  (SID_DESC =
    (SID_NAME = CLRExtProc)
    (ORACLE_HOME = C:\app\Owner\product\12.1.0\dbhome_1)
    (PROGRAM = extproc)
    (ENVS = "EXTPROC_DLLS=ONLY:C:\app\Owner\product\12.1.0\dbhome_1\bin\oraclr12.dll")
  )
)

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (SERVICE_NAME = editor)
    )
 )

 REMOTE_LISTENER =
   (DESCRIPTION_LIST =
     (DESCRIPTION =
       (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.19)(PORT = 1531))
       (SERVICE_NAME = editor)
     )
   )
和tnsnames.ora:

EDITOR =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.19)(PORT = 1531))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = editor)
    )
  )

  LISTENER_EDITOR =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = editor)
    )
  )


  ORACLR_CONNECTION_DATA =
    (DESCRIPTION =
      (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
您会注意到默认侦听器在端口1521上设置为localhost。只要这样,我就可以在服务器上与SQL Developer连接。因此,为了远程连接,我为端口1531设置了第二个侦听器集,并输入了服务器的IP地址。防火墙也已设置为允许通过端口1531进行连接。如您所见,我确实编辑了tnsnames.ora文件,以允许连接到编辑器数据库,但我的编辑似乎没有修复任何问题。我仍然无法在客户端与SQL Developer连接。在服务器上,我尝试使用Oracle Net Configuration Assistant测试编辑器条目,结果显示错误消息:

ORA-12514侦听器当前不知道连接描述符中请求的服务

2014年9月9日更新:

我被要求从命令提示符下运行lsnrctlstatus。以下是该命令的输出:

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))(SERVICE_NAM
E=editor))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 64-bit Windows: Version 12.1.0.1.0 - Produ
ction
Start Date                09-SEP-2014 14:33:06
Uptime                    0 days 4 hr. 14 min. 38 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   C:\app\Owner\product\12.1.0\dbhome_1\network\admin\lis
tener.ora
Listener Log File         C:\app\Owner\diag\tnslsnr\Shiers-PC\listener\alert\log
.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc))(SERVIC
E_NAME=editor))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521))(SERVICE_NAME=
editor))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=Shiers-PC)(PORT=5500))(Security=(my
_wallet_directory=C:\APP\OWNER\admin\editor\xdb_wallet))(Presentation=HTTP)(Sess
ion=RAW))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "editor" has 1 instance(s).
  Instance "editor", status READY, has 1 handler(s) for this service...
Service "editorXDB" has 1 instance(s).
  Instance "editor", status READY, has 1 handler(s) for this service...
Service "pdborcl" has 1 instance(s).
  Instance "editor", status READY, has 1 handler(s) for this service...
The command completed successfully

好的……那么我该怎么办呢?

不要使用SID,使用服务-从您的示例中可以看出,“编辑器”

在12c上,如果您连接到可插拔设备,则始终需要使用该服务。SID将解析为容器数据库(CDB)


t确认是否正确,在服务器上运行'lsnrctl status'命令,检查侦听器正在侦听的实际服务。

如果我没有正确理解问题,请原谅。涉及3台机器吗。客户端、侦听器和数据库?如果您只是尝试在端口1531上公布数据库,请修改LISTENER.ora文件中的LISTENER部分,以包含其他端口

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1531))
(SERVICE_NAME = editor)
)
)

我正在远程计算机上使用SQL Developer。上图是 我用来尝试连接的对话框。我去找文件了 在名为tnsnames.ora的远程计算机上,没有找到任何艾伦 9月7日13:58


您需要在远程客户端计算机上使用与服务器上相同的tnsnames.ora文件的Oracle客户端。

我运行了lsnrctl,它只列出了一个实例。它说:服务“CLRExtProc”有1个实例。这就是它列出的全部内容。除了“编辑”之外,这就是我应该用的吗?该死的,我在服务名字段中输入了它,并尝试测试连接。我遇到了一些其他错误:网络适配器无法建立连接。您是否在远程计算机上使用SQL Developer进行连接?您的tnsnames.ora与本地主机上的相同吗?我正在远程计算机上使用SQL Developer。上图是我尝试连接的对话框。我在远程计算机上查找名为tnsnames.ora的文件,但没有找到任何文件。停止Oracle服务,停止侦听器,启动侦听器,启动Oracle服务。。。看看会发生什么。这将使Oracle DB在侦听器中自动注册。如果它不起作用,请通过SQLPlus as
/as sysdba
连接到Oracle服务,然后运行
alter system register,退出SQLPlus,然后根据请求尝试连接到Oracle服务。如果仍然不起作用,请将
service\u name
子项添加到您的
listener.ora
,重新启动侦听器,然后查看发生了什么。如果它仍然不起作用,那么。。。好吧,就这么说吧,我们看看接下来能想出什么好主意。我想这个问题(从那里得到的答案)可能会有帮助:我知道我需要使用服务,而不是SID。我已经尝试使用“编辑器”作为服务有相当一段时间了。我运行了您建议的命令:lsnrctlstatus。你可以在我原来的帖子中看到上面的读数作为更新。有趣的是,我看到5500端口显示。这不是来自tnsnames.ora文件。我不知道那是从哪里来的。那么这一切意味着什么呢?我应该在防火墙中为5500打开一个端口吗?然后再次尝试连接?您数据库的服务是pdborcl。因此,请将连接属性中的服务名称更改为该名称。此外,您不需要编辑listener.ora文件——数据库会自动向侦听器注册。端口5500看起来是为通过TCP进行安全连接而设置的…我按照您的建议做了,并将服务名称更改为pdborcl。这不允许连接。我仍然会遇到错误ORA-12514。请澄清,我不需要在客户端运行SQL Developer以外的任何其他东西来实现这一点,是吗?假设您有一个数据库要连接,那么您只需要SQL Developer来连接。我在这里写了一些关于诊断连接问题的文章