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

来源:互联网 发布:福建广电网络工资多少 编辑:程序博客网 时间:2024/06/18 07:56

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=(SERVICE_NAME=busi_db)))

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


二、oci方式

 

windows系统下


1. 具体程序部署的本机需要安装oracle客户端:路径为ORALC_HOME;

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

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

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

5. oracle客户端里自带的jdbc驱动(ORACLE_HOME/jdbc/lib/ojdbc*.jar)到自己的工程项目。

 

unix or linux系统下:

 

1. 具体程序部署的本机需要安装oracle客户端:路径为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变量,其字符集与数据库及客户端一致如:

NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

export NLS_LANG

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

 

在此列举一个oracle客户端TNSNAMES.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 =
              (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 =
             (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 =
              (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即可。
 


 

1 0
原创粉丝点击