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 = slrac
SLRAC =
(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());
}
}
}