部署容器数据库连接失败:TNS:listener does not currently know of SID given in connect descriptor

ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

在这里插入图片描述

之前用PL/SQL DEVELOPER和SQLPLUS
登录数据库都没有问题,就是应用程序通过JDBC连接Oracle时无法成功连接,出现ORA-12505错误listener does not
currently know of SID given in connect descriptor…。

经过查找,

发现Oracle的service_name 和sid_name不一致,而PL/SQL DEVELOPER和SQLPLUS
采用service_name进行连接,而应用程序是按照sid_name进行连接,所以出现PL/SQL DEVELOPER和SQLPLUS
能够连接而应用程序却无法连接的问题。

解决问题很简单,

原来是自己将sid_name搞错了;首先查找当前实例的sid_name:SELECT INSTANCE_NAME FROM
V$INSTANCE,然后把得到的sid_name填入应用程序的连接串中。

说明给到的sid有误,很有可能就是服务名和sid混淆使用。

ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID

测试环境-配置数据库:,生产也按此格式配置,

//监听sid服务,表示sid为orcl
database.url=jdbc:oracle:thin:@171.xxx.96.xx:xxxx:orcl

生产启动报错,识别不到数据库监听服务名。

//监听服务名,表示服务名为orcl
database.url=jdbc:oracle:thin:@171.xxx.96.xx:xxxx/orcl

第一种是监听sid服务,第二种则是监听服务名

所以发现是自己的sid写错导致出现这个错误,把服务名当做了sid

把orcl的 “ : ” 改为 “ / ” 访问正常

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值