JDBC使用TNS连接多节点Oracle
为了使用tns方式连接,只需要写出tns连接的rul即可,tns连接的url写法如下:
-- 未加注释的TNS连接串
jdbc:oracle:thin:@
(description=
(ADDRESS_LIST =
(address=(protocol=tcp)(host=192.168.1.44)(port=1521))
(address=(protocol=tcp)(host=192.168.1.45)(port=1521))
(address=(protocol=tcp)(host=192.168.1.46)(port=1521))
(load_balance=yes)
)
(connect_data =
(service_name=ORACMS)
(failover_mode =
(type=session)
(method=basic)
(retries=5)
(delay=15)
)
)
)
-- 加上注释后的TNS连接串
jdbc:oracle:thin:@
(description=
(ADDRESS_LIST =
(address=(protocol=tcp)(host=192.168.1.44)(port=1521))
(address=(protocol=tcp)(host=192.168.1.45)(port=1521))
(address=(protocol=tcp)(host=192.168.1.46)(port=1521))
(load_balance=yes) //表示是否负载均衡
)
(connect_data =
//(server = dedicated)//该参数表示专用服务器模式
(service_name=ORACMS) //要操作数据库的服务名
(failover_mode = //连接失败后处理的方式
(type=session) //TYPE =SESSION表示当一个连接好的会话的实例发生故障,系统会自动将会话切换到其他可用的实例,前台应用无须再度发起连接,但会话正在执行的SQL 需要重新执行。
(method=basic) //表示初始连接就连接一个接点
(retries=5) //连接失败后重试连接的次数
(delay=15) //连接失败后重试的延迟时间(以秒为单位)
)
)
)
-- 要点说明
1、load_balance该参数值为yes就是采用负载均衡模式连接,为no就是采用非负载均衡模式
2、method该参数值为basic就是表示初始连接只有一个连接节点,为preconnect就是表示初始连接所有的rac接点
3、server 参数值 dedicated表示专用服务器模式,没什么实际用处,可以去掉