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

 

posted @ 2022-01-27 18:36  zhangdaopin  阅读(767)  评论(0编辑  收藏  举报