zoukankan      html  css  js  c++  java
  • 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=(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 =
                  (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就可以。


     


     

  • 相关阅读:
    CentOS 7部署KVM之三基本管理
    CentOS 7部署KVM之二安装配置
    CentOS 7部署KVM之一架构介绍
    DOM 事件流
    渐进增强与优雅降级
    (三)跟我一起玩Linux网络服务:DHCP服务配置之主服务器配置
    (二)跟我一起玩Linux网络服务:BIND的自动部署(附上完整的代码)
    责任链模式--行为模式
    装饰模式--- 结构型模式
    elastic-job+zookeeper实现分布式定时任务调度的使用(springboot版本)
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6693001.html
Copyright © 2011-2022 走看看