Oracle SQL Developer未与tnsnames.ora中定义的SID连接
我的tnsnames.ora如下所示:Oracle SQL Developer未与tnsnames.ora中定义的SID连接,oracle,oracle-sqldeveloper,Oracle,Oracle Sqldeveloper,我的tnsnames.ora如下所示: ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION =
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)
)
)**
但当我尝试使用SQLDeveloper进行如下连接时,我得到了一个错误:没有更多的数据可以从套接字读取
角色:SYSDBA
连接类型:基本
主机名:localhost
港口:1521
SID:CLRExtProc
你能告诉我我做错了什么吗?我可以使用service_名称进行连接,或者在SID中使用service name时进行连接,但是为什么在使用tnsnames.ora中定义的SID时连接不起作用呢
根据我的理解,SID对应于数据库的实例名。无法使用它进行连接吗
致以最良好的祝愿,
Harshittnsnames.ora中的CLRExtProc条目用于。这不是用于正常客户端连接的数据库SID ORCL条目定义为使用servicename
ORCL
。服务名称和SID可能相同,也可能不同。数据库实例有一个SID,但它可以有多个服务名称,其中可能包括一个域
在您的情况下,似乎没有域,SID和服务名称是相同的。如果您想使用SID从SQL Developer进行连接,请使用orcl
。我不知道你为什么要用它来代替服务名
您还可以作为SYSDBA连接,可能是作为SYS连接,这不是您应该经常做的事情。希望您不是在内置模式下创建对象;创建您自己的用户/模式,并在该模式下执行所有操作。您应该提供
orcl
作为SID;为什么要使用CLRExtProc
?是的,当我提供orcl作为SID时,我可以连接。但那不是服务名称吗?如果是这样,SID和服务名称是否相同?另外,由于tnsnames.ora将SID显示为CLRExtProc,这意味着什么?感谢您的回答和建议。我是Oracle的新手,只是在本地数据库上试用而已。这很有帮助!