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

我试图通过SQL开发人员连接到远程服务器上的Oracle数据库。 我将连接的详细信息复制到tnsnames,我可以连接到数据库。

不过,我有另一个数据库应用程序是相同的sqldeveloper,当我尝试进行连接,我不断收到此错误。 此应用程序使用需要主机名和SID的oracle jdbc瘦客户机。

我得到了以下错误:

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

在进行故障排除时,我更改了sqldeveloper中的tns选项,并且select了基本选项来找出错误,并且我意识到我能够连接到它,因为服务名称正确,不能通过SID连接到数据库甚至通过sqldeveloper的名字。

我已经使用了一些数据库查询来找出SID名称,但仍然收到相同的错误。 请帮我解决。

谢谢你的时间..

ORA-12505意味着你的客户端通过了一个SID,服务器端的监听器完全不能识别。

在10G及以上您可以使用EZ连接,而无需像这样配置服务器端:

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 / network / admin中配置tnsnames.ora


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

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

看到这个网址:

检查oracle sid和数据库名称

我也面临这个问题。 Linux与oracle 11.2.0.1.

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

 sqlplus hr@liverpool:1521:DEMO 

并不是

 sqlplus hr@liverpool:1521/DEMO