ORA-12505 connection refuse 解决办法及总结

       在项目遇到一个问题,在用java中用jdbc连接oracle时出错,log中记录“connectin refuse(DESCRIPTION=(TMP=)(VSNNUM=168354658)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))”,采用的连接url是“jdbc:oracle:thin:@hostname:1521:ovsDB”, 由于连接的配置是在一个开发工具中进行的,于是写了一个简单的测试程序在eclipse中测试,结果是提示出错“ORA-12505 :listener does not currently know of SID given in connect descriptor”, oracle服务器的监听器不能识别这个SID, 本地的tnsnames.ora中是这样写的 
ovsDB =  (网络服务名)
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = remotehostname)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ovsDB)
    )
  )
SID和tnsnames.ora配置都是维护服务器的人给的,在使用"oracle SQL developer" 和sqlplus连接时都可以正常连接上,百思不得其解.
         在查阅了资料后,罪魁祸首指向SID,在此灰常感谢参考URL中的blog主人, 原因是工具在连接时只需给其指定service_name,而使用jdbc连接是则必须要SID, 使用oracle SQL developer连接上后执行select instance_name from v$instance后得出的instance_name是ovsDatabase,这个才是oracle服务器上的SID, 于是在url中使用这个SID连接,终于正常了!问题解决!
         在解决这个问题过程中,总结出的东东有:
           1. 工具在连接时只需给其指定service_name,而使用jdbc连接是则必须要在url中提供SID;
        2.客户端的tnsnames.ora中的网络服务名并不是SID,而是一个可任意命名的代号,oracle客户端或者其他连接工具在连接服务器是使用这个代号来解析其中的service_name.
参考URL:  http://www.blogjava.net/itspy/archive/2007/12/20/169072.html
http://www.hinn.cn/2009/04/oracle_sqlnetora_tnsnamesora_listenerora.html

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据库连接报错"Listener refused the connection with the following error: ORA-12505"是由于TNS Listener无法识别连接描述符中给定的SID所引起的。这个错误通常表示数据库实例的SID无法被正确识别或连接。 解决这个问题的方法有以下几种: 1. 确认数据库实例的SID: 确保数据库实例的SID在连接描述符中正确配置。可以通过运行命令`lsnrctl services`来查看监听器中注册的数据库服务和SID。 2. 检查监听器配置: 确保监听器的配置文件(tnsnames.ora)中包含正确的数据库服务和SID。确保SID和服务与连接描述符中的信息匹配。 3. 检查监听器状态: 使用命令`lsnrctl status`来检查监听器的状态。如果监听器已停止或未运行,请启动监听器并重新测试数据库连接。 4. 检查网络连接: 确保数据库服务器和客户端之间的网络连接正常。可以使用ping命令测试网络的连通性。 5. 检查防火墙设置: 如果有防火墙存在,请确保允许数据库服务器和客户端之间的通信。 6. 使用正确的连接字符串: 确保在连接描述符中使用正确的连接字符串,包括主机名、端口号、SID和服务名等。 综上所述,解决数据库连接报错"Listener refused the connection with the following error: ORA-12505"的方法包括确认数据库实例的SID、检查监听器配置、检查监听器状态、检查网络连接、检查防火墙设置以及使用正确的连接字符串。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [解决数据库连接报错Listener refused the connection with the following error: ORA-12505](https://blog.csdn.net/rhyy1230/article/details/103558587)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *3* [【数据源】连接Oracle失败 Listener refused the connection with the following error: ORA-12505](https://blog.csdn.net/weixin_40142258/article/details/131169923)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值