jdbc 连接Oracle RAC
jdbc连接oracle的连接串如下:
String url="jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db.domain)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))";
?
假定有以下 Oracle RAC 配置: Sid = slracSLRAC = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.231)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.230)(PORT = 1521)) (LOAD_BALANCE = yes) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = slrac.beta.com) (FAILOVER_MODE = (TYPE = SELECT) (METHOD = BASIC) ) ) ) SLRAC2 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.230)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = slrac.beta.com) (INSTANCE_NAME = slrac2) ) ) SLRAC1 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.231)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = slrac.beta.com) (INSTANCE_NAME = slrac1) ) )?
则JDBC URL 的配置如下:
jdbc:oracle:thin:@(description=(address_list= (address=(host=192.168.1.231) (protocol=tcp)(port=1521))(address=(host=192.168.1.230)(protocol=tcp) (port=1521)) (load_balance=yes)(failover=yes))(connect_data=(service_name= slrac.beta.com)))
?
?java测试程序如下:
?
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public class Test {public static void main(String arg[]) {try {Class.forName("oracle.jdbc.driver.OracleDriver");String url="jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = host1)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = host2)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db.domain)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))";Connection c = DriverManager.getConnection(url,"aa","aa");Statement s = c.createStatement();ResultSet r = s.executeQuery("select 1 from dual");while(r.next()) {System.out.println(r.getString(1));}}catch(Exception e) {System.out.println(e.toString());}}}