use*_*356 6 database linux oracle oracle11g
我正在尝试通过sql developer连接到远程服务器上的oracle db.我将连接细节复制到tnsnames,我可以连接到db.
但是,我有另一个db应用程序,它与sqldeveloper相同,当我尝试建立连接时,我不断收到此错误.此应用程序使用oracle jdbc瘦客户端,它需要主机名和SID.
我收到以下错误:
值java.sql.SQLException:监听拒绝与以下错误的连接:ORA-12505,TNS:监听器目前不知道的SID连接描述符中给出
在排除故障时,我更改了sqldeveloper中的tns选项,我选择了基本选项来找出问题所在,我意识到由于服务名称正确而无法通过SID连接到数据库,我能够连接到它甚至通过sqldeveloper命名.
我已经使用了一些数据库查询来查找SID名称,但我仍然遇到同样的错误.请帮我排除故障.
谢谢你的时间..
A B*_*A B 11
ORA-12505表示您的客户端传递了服务器端的侦听器根本无法识别的SID.
在10G及以上您可以使用EZ connect而无需像这样配置服务器端:
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
Run Code Online (Sandbox Code Playgroud)
(要么)
如果您仍想使用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');
看到这个网址: