SQL 开发者未连接 tnsnames.ora 中定义的 SID

SQL Developer does not connect with SID as defined in tnsnames.ora

我的 tnsnames.ora 看起来像这样:

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )**

但是当我尝试使用 SQL Developer 进行连接时,我收到错误消息:没有更多数据可从套接字读取。

角色:SYSDBA 连接类型:基本

主机名:localhost 端口:1521 SID:CLRExtProc

你能告诉我我做错了什么吗?我可以使用 service_name 连接,或者在 SID 中使用服务名称时,但为什么当我使用 tnsnames.ora.

中定义的 SID 时它不起作用

据我了解,SID 对应于数据库的实例名称。是不是连接不上了?

此致, 刺耳

tnsnames.ora 中的 CLRExtProc 条目用于 external processes。那不是您用于普通客户端连接的数据库 SID。

ORCL 条目定义为使用服务名称orcl。服务名称和 SID 可能相同也可能不同。数据库实例有一个 SID,而它可以有多个服务名称,其中可能包括一个域。

您的情况似乎没有域,SID 和服务名称相同。如果您想使用 SID 从 SQL 开发人员连接,请使用 orcl。我不确定您为什么要使用它而不是服务名称。 Read more about accessing the database.

您还以 SYSDBA 身份连接,可能以 SYS 身份连接,这不是您应该经常做的事情。希望您不是在内置模式下创建对象;创建您自己的 user/schema 并在其下执行所有操作。