Spring Java连接多IP Oracle RAC的配置有效性咨询
Oracle RAC多IP连接配置可行性分析
你的配置存在一处语法错误,修正后即可正常用于连接Oracle RAC集群,具体说明如下:
问题点
当前URL里的ADDRESS_LIST节点前缺少一个左括号,正确结构需要把ADDRESS_LIST作为DESCRIPTION的子节点之一,也就是在(FAILOVER=ON)后补充(。
修正后的完整配置
spring.datasource.url=jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=ON)(FAILOVER=ON)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=aaa.bbb.ccc.dd1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=aaa.bbb.ccc.dd2)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=aaa.bbb.ccc.dd3)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=aaa.bbb.ccc.dd4)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=your_service_name))) spring.datasource.username=your_username spring.datasource.password=your_password ...
关键参数说明
- LOAD_BALANCE=ON:开启负载均衡,驱动会随机从地址列表中选节点建立连接,分散集群压力
- FAILOVER=ON:开启故障转移,若当前连接的节点宕机,驱动会自动尝试连接其他可用节点,提升服务可用性
- SERVICE_NAME:指定RAC集群对外提供的服务名而非单个实例SID,这和你单实例配置的用法一致,是正确的
额外注意事项
- 确保应用服务器能访问所有指定的RAC节点IP和端口
- 建议使用ojdbc8及以上版本的Oracle官方JDBC驱动,对RAC的支持更完善
内容的提问来源于stack exchange,提问作者Falco
相关产品推荐
相关产品推荐

