当前位置: 首页 > 知识库问答 >
问题:

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

殷宇
2023-03-14

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

以下是远程计算机上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网络配置助手来测试编辑器条目,结果出现错误消息

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

2014年9月9日更新:

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

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

好吧…那我该怎么办???

共有3个答案

臧增
2023-03-14

我在远程计算机上使用SQL Developer。上图是我尝试连接的对话框。我在远程计算机上寻找一个名为tnsnames的文件。奥拉,但没有找到任何艾伦:9月7日13:58

您需要远程客户端计算机上的Oracle客户端具有相同的TNSName。ora文件,正如您在服务器上拥有的。

盖和泰
2023-03-14

如果我没有正确理解这个问题,请原谅我。是否涉及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)
)
)
劳高爽
2023-03-14

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

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

吨确认这是正确的,在您的服务器上运行“lsnrctl status”命令,并检查监听器正在监听的实际服务。

 类似资料:
  • 问题内容: 我正在尝试当前连接到当前计算机上的数据库。 我不断收到此错误,但我不知道为什么… 在我的服务器中,我使用了命令(以sys登录)SQL>从v $ thread选择实例;(它返回)实例-> xe 我可能做错了什么? 谢谢! PS我也尝试了127.0.0.1而不是localhost 问题答案: 检查目录下的listener.ora文件是否具有以下值:

  • 我试图用下面的连接字符串连接到SQL服务器,但它给出了这个"错误连接超时过期" 我已尝试telnet,并且它已成功连接。但是,根据代码,即使我尝试指定默认端口,也无法连接。 我有做错什么吗?提前谢谢你。 Telnet结果

  • 我有一个错误,超出了我在TNS看到的-12505: TNS:侦听器目前不知道连接描述符中给出的SID 我使用的是Windows 8、Oracle 11.2 XE、java 1.7.15和Eclipse Juno SR2。 我收到的错误是: JAVAsql。SQLException:Listener拒绝了连接,出现以下错误:ORA-12505,TNS:Listener当前不知道连接描述符中给出的SI

  • 问题内容: 在Windows上安装了Docker,并额外安装了2个Oracle VM VirualBox和Kitematic。我在Windows 10 PC中禁用了Hyper-V。现在的问题是我无法从DockerHub下载任何Docker映像,甚至我都无法以如下方式运行命令 两端都显示以下错误。 尝试连接时发生错误:获取 http:// localhost:2375 / v1.21 / info

  • 我只是在我的电脑上安装了Oracle 12c datadase,安装过程正常,没有任何问题。完成安装后,我试图建立一个新的连接(IPlocalhost:1521,service_nameorcl): 但我得到了: ORA-01017,用户名/密码无效;登录被拒绝 tnsnames.ora是: 搞什么?tnsnames.ora刚刚显示IPlocalhost,post是1521,service_nam

  • 我已经安装了oracle Enterprice 11g数据库(桌面模式)。当我使用sqlplus作为sysdba连接的sqlplus停止我的数据库并使用shutdown立即启动它时,它没有连接到SID下面是屏幕快照 甚至我在企业管理器上使用了启动按钮 当我尝试使用sqlplus/as SYSDBA连接时,它会说ORA-01031-权限不足