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就可以。

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

  1. JDBC-ODBC桥连接方式操纵SQL数据库

    /**  * 功能:演示使用JDBC-ODBC桥连接方式操纵SQL数据库  * 作者:徐守威  * 操作步骤:  * 1.配置数据源  * 2.在程序中连接数据源  * 3.操作数据  */ pack ...

  2. oracle连接方式、创建数据库用户、忘记数据库密码、用户锁定

    一.oracle六种连接方式 ①myEclipse中 打开myEclipse,window----show view----Other---输入DB点击DB browser 选中右键New.出现如下页 ...

  3. Oracle 表三种连接方式(sql优化)

    在查看sql执行计划时,我们会发现表的连接方式有多种,本文对表的连接方式进行介绍以便更好看懂执行计划和理解sql执行原理. 一.连接方式: 嵌套循环(Nested Loops (NL)) (散列)哈希 ...

  4. [Database]各数据库连接配置:Oracle:thin 数据库连接/MySQL 连接配置

    MySQL:          String Driver="com.mysql.jdbc.Driver";    //驱动程序      String URL="jdb ...

  5. Oracle的四种连接方式【转载】

    我们以Oracle自带的表来做例子 主要两张表:dept.emp 一个是部门,一个是员工表结构如下: emp name null? Type Empno not null number(4) enam ...

  6. oracle三种表连接方式

    1. 排序合并连接(Sort Merge Join) 排序合并连接的执行过程如下所示: * 将每个行源的行按连接谓词列排序 * 然后合并两个已排序的行源,并返回生成的行源 例如: select * f ...

  7. oracle的三种连接方式

    1.通过sid jdbc:oracle:thin:@host:port:SID Example: jdbc:oracle:thin:@localhost:1521:sid_test 2.通过servi ...

  8. oracle学习----特殊的连接方式

    1.笛卡儿积 merge join cartesion SQL> select ename,dname from emp,dept; 已选择56行. 执行计划------------------ ...

  9. 转:ORACLE的JDBC连接方式:OCI和THIN

    oracle的jdbc连接方式:oci和thin oci和thin是Oracle提供的两套Java访问Oracle数据库方式. thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracl ...

随机推荐

  1. voith项目配置服务程序

    项目需求: 1.程序可以最小化到任务栏 2.tpms标签和限速标签同时只能选择一个,并且要通过button确定修改 3.在程序中需要显示SequenceScanner1.0服务的运行状态 4.能够打开 ...

  2. mac os 切换网络优先级

    升级到新系统OS X Yesemite 系统后有WIFI时会默认使用WIFI而不是有线. 但是公司的WIFI基本没法用,每次到公司之后就得把WIFI关掉,回家又打开,烦死了. 今天研究了下原来网络优先 ...

  3. mac下递归创建ctags报错: "illegal option -- R"

    在mac系统下不论是使用vim还是sublime text2的ctags插件都会碰到“illegal option -- R”这个错误,原因是mac使用的是自己的ctags,而我们通常在linux或w ...

  4. UVALive 5971

    Problem J Permutation Counting Dexter considers a permutation of first N natural numbers good if it ...

  5. BZOJ 1008 [HNOI2008]越狱 排列组合

    1008: [HNOI2008]越狱 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 4788  Solved: 2060[Submit][Status] ...

  6. MVC的Action上下文:ActionExecutingContext

    就上图来看,大家注意了吗,ActionExecutingContext对象一共有3处引用.下面我来一一解析: 调用base.OnActionExecuting(filterContext)这个后,才会 ...

  7. spring---aop(1)---AOP概念

    写在前面 由于spring的事务系列,可以带出spring的aop.spring的事务只是spring的一个具体实现 名词解释 通知.增强处理(Advice) 就是你想要的功能,也就是上说的安全.事物 ...

  8. 小程序获取当前页面路径url

    getCurrentPages()[0].route

  9. RPM 打包技术与典型 SPEC 文件分析

    一 .rpm 介绍 1. 概述 RPM全称是 Red Hat Package Manager(Red Hat包管理器).几乎所有的 Linux 发行版本都使用这种形式的软件包管理安装.更新和卸载软件. ...

  10. C#程序集系列10,强名称程序集

    当一个程序集的名称,版本,文化,Public Key都做了设置,就可以把这个程序集叫做"强名称程序集".强名称程序集可以防止被仿冒或篡改.本篇首先创建一个强名称程序集,接着模拟篡改 ...