在项目遇到一个问题,在用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
分享到:
相关推荐
用oracle数据库新建连接时遇到ora-12505,此问题解决后又出现ora-12519错误,郁闷的半天,经过一番折腾问题解决,下面小编把我的两种解决方案分享给大家,仅供参考。 解决方案一: 今天工作时在新建连接的时候遇到...
### Oracle 错误 ORA-00132 和 ORA-00214 解析及处理 #### 一、错误概述 在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行...
### 离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法 #### 概述 在Oracle数据库管理过程中,偶尔会遇到因误操作导致的数据文件出现问题的情况,例如误删除数据文件或者数据文件损坏等。这些问题可能会...
这篇文章主要讲述了在Oracle 11g R2客户端尝试连接Oracle 19c服务端时,遇到了两个特定的错误:ORA-28040和ORA-01017,以及如何解决这些问题。 ORA-28040错误是因为客户端和数据库服务器在版本兼容性上存在不匹配。...
ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法
ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法 摘要:本文主要解决ORACLE 8I数据库应用EXP工具时ORA-06553报错的问题,分析出现问题的原因,并提供了正确的解决方法和措施。 知识点1:Oracle 8I数据库EXP...
### 解决Drop Goldengate 用户时报ORA-00604 ORA-20782 ORA-06512问题 #### 一、问题背景与现象 在进行Oracle数据库管理过程中,经常会遇到需要删除用户的场景。当尝试执行`drop user goldengate cascade;`命令时,...
总结来说,解决ORA-00702错误需要对数据库的状态进行详细检查,包括服务、文件状态、权限等。在修复问题后,务必测试数据库的正常运行,以防遗漏其他潜在问题。同时,良好的数据库管理和维护习惯是预防此类问题的...
### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...
ORACLE的ora-12505报错以及连接问题的解决
ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案
在使用Oracle Data Pump工具IMPDP(Import Data Pump)进行数据导入的过程中,可能会遇到ORA-39002和ORA-39070等错误。本文将针对这些错误的排查方法进行详细介绍,帮助用户理解问题的原因及解决策略。 ### 错误...
ORA-01461 错误解决办法 ORA-01461 错误是 Oracle 数据库中的一种常见错误,错误信息为“仅可以为插入 LONG 列的 LONG 值赋值”。该错误通常是由于 Oracle 的 jar 包版本与 Oracle 数据库实际版本不匹配造成的。 ...
本文旨在详细介绍ORA-12518错误的成因、常见表现形式以及具体的故障排查方法,以帮助读者在实际工作中能够更高效地解决这一问题。 #### 目的 本文旨在探讨如何接近并解决ORA-12518/TNS-12518错误,并提供详细的...
下面将详细解析“ORA-27101: shared memory realm does not exist”这一错误及其解决办法,同时提及可能伴随的“ORA-01034: ORACLE not available”和“ORA-01033: ORACLE initialization or shutdown in progress”...
Oracle数据库发生ORA-04031错误原因浅析及处理 Oracle数据库是甲骨文公司提供的一种分布式数据库管理系统,以分布式数据库为核心的软件产品。它具有完整的数据管理功能,作为一个关系数据库,它是一个非常实用的...
### ORA-12514错误解决办法 #### 错误概述 ORA-12514是Oracle数据库中常见的一个错误,全称为“TNS:listener does not currently know of service requested in connect descriptor”。该错误表明客户端尝试连接到...
navicat连接oracle报错:“ORA-12514:TNS:监听程序无法识别连接描述符中请求的服务”;问题解决:资源包中只包含一些 dll 文件,无需安装解压即可,并附有详细的操作步骤。
关于WIN10系统使用oracle instant client 时候提示ORA-01019错误的解决方案,本方案是配置好环境变量后依然提示ORA-01019错误的解决方案,内附本人制作测试的全过程说明