首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle SID和服务名称;连接问题

Oracle SID和服务名称;连接问题
EN

Stack Overflow用户
提问于 2012-12-04 05:01:27
回答 2查看 78.6K关注 0票数 7

我正在尝试通过sql developer连接到远程服务器上的oracle db。我将连接详细信息复制到tnsname,然后我就可以连接到数据库了。

然而,我有另一个与sqldeveloper相同的数据库应用程序,当我试图建立一个连接时,我总是得到这个错误。这个应用程序使用oracle jdbc瘦客户端,它需要主机名和SID。

我得到了下面的错误:

java.sql.SQLException:侦听器拒绝连接,错误如下: ORA-12505,TNS:侦听器当前不知道连接描述符中给定的SID

在排除故障时,我更改了sqldeveloper中的tns选项,并选择了基本选项来找出问题所在。我意识到,由于正确的服务名称,我能够连接到它,并且即使是通过sqldeveloper,也无法通过SID名称连接到数据库。

我使用了一些db查询来查找SID名称,但仍然得到相同的错误。请帮我排查故障。

谢谢你抽出时间来..

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-04 05:10:04

ORA-12505表示您的客户端传递了一个服务器端的侦听器根本无法识别的SID。

在10G及以上版本中,无需配置服务器端即可使用EZ connect,如下所示:

代码语言:javascript
复制
sqlplus hr@liverpool:1521/DEMO

hr is the user name
liverpool is the server name
1521 is the port the listener for the DB is listening on
DEMO is the database SID

(或)

如果您仍然想使用tnsnames.ora,请尝试从您的客户端运行tnsping SID。

在LINUX上,您还可以让ORACLE从本地路径读取tnsnames.ora文件-只需将TNS_ADMIN设置为您的tnsnames.ora文件所在的目录。

否则,您需要在客户端上的$ORACLE_HOME/ tnsnames.ora /admin中配置网络

如果您需要知道数据库SID,请使用以下命令:

从dual中选择sys_context('userenv','db_name');

请参阅以下URL:

Checking oracle sid and database name

票数 11
EN

Stack Overflow用户

发布于 2014-01-08 20:32:37

我也面临着这个问题。带有oracle 11.2.0.1.的Linux

我发现连接字符串必须是:

代码语言:javascript
复制
sqlplus hr@liverpool:1521:DEMO

而不是

代码语言:javascript
复制
sqlplus hr@liverpool:1521/DEMO
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13691628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档