首页 > 代码库 > java oracle thin 和 oci 连接方式实现多数据库的故障切换

java oracle thin 和 oci 连接方式实现多数据库的故障切换

java oracle thin 和 oci 连接方式实现多数据库的故障切换

一、thin方式

该种方式简便易用非经常见。

当中URL为
jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=on)
      (ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))
      (ADDRESS=(PROTOCOL=TCP)(HOST=10.132.111.14)(PORT=1521))
      (CONNECT_DATA=http://www.mamicode.com/(SERVICE_NAME=busi_db)))

当中LOAD_BALANCE=on表示负载开启,java以随机的方式创建会话连接;
LOAD_BANLANCE=off表示负载关闭,java以顺序的方式创建会话连接,仅仅有
当第一个数据库出现问题无法连接时才会选择第二个数据库进行会话连接。


二、oci方式

 

windows系统下


1. 详细程序部署的本机须要安装oracleclient:路径为ORALC_HOME;

2. 在系统环境变量PATH追加 ;%ORACLE_HOME%/bin

3. 在系统环境变量中加入NLS_LANG系统环境变量,其字符集与数据库及client一致如:NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

4. 若系统环境变量中配置了CLASSPATH,则在该变量后追加;%ORACLE_HOME%/lib

5. oracleclient里自带的jdbc驱动(ORACLE_HOME/jdbc/lib/ojdbc*.jar)到自己的project项目。

 

unix or linux系统下:

 

1. 详细程序部署的本机须要安装oracleclient:路径为ORALC_HOME;

2. 系统环境变量PATH设置例如以下:

 PATH=$ORACLE_HOME/bin:$PATH

export PATH

3. 系统环境变量LD_LIBRARY_PATH设置例如以下:

LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH

4. 在系统环境变量中设置NLS_LANG变量,其字符集与数据库及client一致如:

NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

export NLS_LANG

5. oracleclient里自带的jdbc驱动(ORACLE_HOME/jdbc/lib/ojdbc*.jar)考到自己的项目中从而保持与数据库的一致。否则easy出现无法连接本地方法的异常。

 

在此列举一个oracleclientTNSNAMES.ORA文件的配置例如以下:
HA_DB =
  (DESCRIPTION_LIST =
     (LOAD_BALANCE = on)
     (FAILOVER = on)    
       (DESCRIPTION =
           (ADDRESS_LIST =
              (LOAD_BALANCE=OFF)
              (FAILOVER=ON)
              (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
           )
           (CONNECT_DATA =http://www.mamicode.com/
              (SERVICE_NAME = db1)
              (INSTANCE_NAME = db1)
              (FAILOVER_MODE=(TYPE=session)(METHOD=basic)(RETRIES=4)(DELAY=1))
           )
        )
        (DESCRIPTION =
           (ADDRESS_LIST =
              (LOAD_BALANCE=OFF)
              (FAILOVER=ON)
              (ADDRESS = (PROTOCOL = TCP)(HOST = 10.132.111.14)(PORT = 1521))
           )
           (CONNECT_DATA =http://www.mamicode.com/
             (SERVICE_NAME = db2)
             (INSTANCE_NAME = db2)
             (FAILOVER_MODE=(TYPE=session)(METHOD=basic)(RETRIES=4)(DELAY=1))
           )
        )
        (DESCRIPTION =
           (ADDRESS_LIST =
              (LOAD_BALANCE=OFF)
              (FAILOVER=ON)
              (ADDRESS = (PROTOCOL = TCP)(HOST = 10.112.11.161)(PORT = 1521))
           )
           (CONNECT_DATA =http://www.mamicode.com/
              (SERVICE_NAME = db3)
              (INSTANCE_NAME = db3)
              (FAILOVER_MODE=(TYPE=session)(METHOD=basic)(RETRIES=4)(DELAY=1))
           )
        )
       
  )
 
关于当中的配置參数作用请查相关资料

然后Java程序jdbc oci连接时,url写成java:oracle:oci:@ha_db就可以。


 


 

java oracle thin 和 oci 连接方式实现多数据库的故障切换