Oracle - java连接oracle集群的连接字符串
示例1:
url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=test-db-1)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=test-db-2)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MSMPDB)))
示例2:
url: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST =127.0.0)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST =127.0.0)(PORT=1521))(LOAD_BALANCE=no)(FAILOVER=YES))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=CLDB)))
ps: LOAD_BALANCE --->负载均衡 FAILOVER--->故障转移
示例3:
url= jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(HOST=10.0.2.162)(PROTOCOL=TCP)(PORT=1521))(ADDRESS=(HOST=10.0.2.172)(PROTOCOL=TCP)(PORT=1521))(LOAD_BALANCE=YES)(FAILOVER=YES))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=EHOME)(FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETIRES=20)(DELAY=15))))
/**
* RAC为应用提供了高性能和高可用的服务,对用户来讲,核心的功能便是failover与load banance.
*
* FAILOVER Failover控制开关(on/off),如果为off,不提供故障切换功能,但连接时会对address列表进行依次尝试,直到找到可用为止
*
* TYPE 两种类型:session /select
*
* Session: 提供session级别的故障切换。
*
* Select:提供select级别的故障切换,切换过程对查询语句透明,但事物类处理需要回滚操作
*
* METHOD 两种类型:basic/preconnect
*
* Basic:client同时只连接一个节点,故障切换时跳转到另外节点
*
* Preconnect:需要与backup同时使用,client同时连接到主节点和backup节点
*
* @param args
*/
public static void main(String[] args) {
StringBuffer url = new StringBuffer();
url.append("jdbc:oracle:thin:@(description= (address_list =");
url.append("(address=(protocol=tcp)(host=192.168.31.9)(port=1521))");// 根据自己情况继续追加集群信息,格式如下
url.append("(address=(protocol=tcp)(host=10.37.27.112)(port=1521))");
url.append("(load_balance=yes)"); // load_balance=yes;表示是否负载均衡
url.append(")"); // address_list 结束
url.append("(connect_data =");
url.append("(server = dedicated)"); // server = dedicated;表示专用服务器模式,可以去掉
url.append("(service_name=wangjj)"); // 数据库服务名称
url.append("(failover_mode =");
url.append("(type=session)"); // TYPE = SESSION表示当一个连接好的会话的实例发生故障,系统会自动将会话切换到其他可用的实例,前台应用无须再度发起连接,但会话正在执行的SQL
// 需要重新执行
url.append("(method=basic)"); // METHOD = BASIC表示初始连接就连接一个接点,彵还有个选项是preconnect,表示初始连接所有的接点
url.append("(retries=5)"); // RETRIES 重试次数
url.append("(delay=15)"); // DELAY 重试延迟 单位为秒
url.append(")"); // failover_mode 结束
url.append(")"); // connect_data 结束
url.append(")"); // description 结束
}
可参考:http://www.itkeyword.com/doc/2244084435287856x605/oracle-java