使用jdbc连接oracle时url有三种格式

格式一: Oracle JDBC Thin using an SID

url = "jdbc:oracle:thin:@ip:port:sid"

Example: jdbc:oracle:thin:@localhost:1521:orcl
这种格式是最简单也是用得最多的
你的oracle的sid可以通过一下指令获得:
sqlplus / as sysdba
select value from v$parameter where name=‘instance_name’;

格式二: Oracle JDBC Thin using a ServiceName

url = "jdbc:oracle:thin:@ip:port/servicename"

Example:jdbc:oracle:thin:@localhost:1521/orcl.city.com


注意这里的格式,port后面:换成了/,这种格式是Oracle 推荐的格式,因为对于集群来说,每个节点的SID 是不一样的,但是SERVICE_NAME 确可以包含所有节点。
你的oracle的service_name可以通过以下方式获得:
sqlplus / as sysdba
select value from v$parameter where name=‘service_names’;
 

格式三:Oracle JDBC Thin using a TNSName
 

jdbc:oracle:thin:@TNSName

Example: jdbc:oracle:thin:@TNS_ALIAS_NAME
 

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST=hostA)(PORT= 1522))(ADDRESS=(PROTOCOL=TCP)(HOST=your host)(PORT=1521)))(SOURCE_ROUTE=yes)(CONNECT_DATA=(SERVICE_NAME=your service_name)))
 

例如:

连接一个地址:

jdbc:oracle:thin:@(description=(address_list= (address=(host=192.168.60.132) (protocol=tcp)(port=1521)))(connect_data=(service_name= oratest)))

连接两个地址:

jdbc:oracle:thin:@(description=(address_list= (address=(host=192.168.60.132) (protocol=tcp)(port=1521))(address=(host=192.168.60.144)(protocol=tcp) (port=1521)) (load_balance=yes)(failover=yes))(connect_data=(service_name= oratest)))

注意:oracle做了负载均衡,不能直接通过ip去连接,需要用listener.ora的连接配置才能连接。

所以当连接oracle rac的虚拟IP时,因为要连接多个(连接多个oracle rac的VIP ip才会有HA的效果),所以格式1就无法满足条件,只能通过格式3来实现连接。

参考文章:

JDBC连接oracle RAC数据库配置 - ㄓㄤㄑㄧㄤ - 博客园

JDBC连接ORACLE的三种URL格式_我是李超人的博客-CSDN博客_jdbc url格式

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐