但行好事
莫论前程❤

Oracle连接字符串报错—-ORA-12505

ora-12505 tns listener does not know of sid given in connect descriptor
Casued by : java.sql.SQLException:Unable to open a test connection to the given database.JDBC url = jdbc:oracle:thin:@//10.232.57.168:1521/pdb_7175, username = pub_platform_db. Terminating connection pool (set lazyInit to true if you ex...your app).Original Exception:-------
java.sql.SQLExcption:Listener refused the connection with the following error:
ora-12505 tns listener does not know of sid given in connect descriptor

解决方案:

检查jdbc连接字符串的格式是使用的sid还是service_name

引入问题:连接Oracle数据库使用sid和service_name的格式区别

Java JDBC Thin Driver 连接 Oracle有三种方法,如下:

  • 格式一: Oracle JDBC Thin using a ServiceName:
jdbc:oracle:thin:@//<host>:<port>/<service_name> 
# 或者
jdbc:oracle:thin:@<host>:<port>/<service_name> 


# Example: 
jdbc:oracle:thin:@//192.168.2.1:1521/XE  
#或 
jdbc:oracle:thin:@192.168.2.1:1521/XE

注意这里的格式EX前面有/这是与使用SID的主要区别。 

这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID是不一样的,但是SERVICE_NAME确可以包含所有节点。

  • 格式二: Oracle JDBC Thin using an SID:
jdbc:oracle:thin:@<host>:<port>:<SID> 
# Example: 
jdbc:oracle:thin:@192.168.2.1:1521:X01A 

Note:  Support for SID is being phased out. Oracle recommends that users switch over to usingservice names.

  • 格式三:Oracle JDBC Thin using a TNSName:
jdbc:oracle:thin:@<TNSName> 
# Example: 
jdbc:oracle:thin:@GL 

Note:  Support for TNSNames was added in the driver release 10.2.0.1

linux下查询sid的方法:

在配置oracle环境变量的情况可以使用 echo $ORACLE_SID,如果没有可以使用ps -ef |grep oracle来查询:

oracle    2548     1  0 Aug17 ?        00:00:00 ora_pmon_xxxx 

后面的xxxx就是对应的sid。 

在windows环境下,oracle是以后台服务的方式被管理的,所以看”控制面板->管理工具->服务 里面的名称:”OracleServiceORCL”,则ORCL就是sid;

service_name 和sid的区别:

  • Service_name:该参数是由oracle8i引进的。在8i以前,使用SID来表示标识数据库的一个实例,但是在Oracle的并行环境中,一个数据库对应多个实例,这样就需要多个网络服务名,设置繁琐。为了方便并行环境中的设置,引进了Service_name参数,该参数对应一个数据库,而不是一个实例,而且该参数有许多其它的好处。该参数的缺省值为Db_name. Db_domain,即等于Global_name。一个数据库可以对应多个Service_name,以便实现更灵活的配置。该参数与SID没有直接关系,即不必Service name 必须与SID一样  sid是数据库实例的名字,每个实例各不相同。 
赞(2) 打赏
未经允许不得转载:刘鹏博客 » Oracle连接字符串报错—-ORA-12505
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏