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. 【SPFA判断负环】BZOJ1715- [Usaco2006 Dec]Wormholes 虫洞

    [题目大意] 判断一张图中是否存在负环. [思路] dfs版SPFA. #include<bits/stdc++.h> using namespace std; struct edge { ...

  2. SQL SERVER 2008 多边形问题的解决

    报错内容: 在执行用户定义例程或聚合 "geometry" 期间出现 .NET Framework 错误: System.ArgumentException: 24144: 由于该 ...

  3. 【openjudge】 CDQZ challenge 4

    改了三天,提交17次,一定要纪念一下! 1004:Challenge 4 总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  262144kB 描述 给一个长为N的数列 ...

  4. BZOJ 1059: [ZJOI2007]矩阵游戏 匈牙利算法

    1059: [ZJOI2007]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2351  Solved: 1156 题目连接 http:// ...

  5. OpenCV 机器学习之 支持向量机的使用方法实例

    用支持向量机进行文理科生的分类,根据的特征主要是 数学成绩与语文成绩,这两个特征都服从高斯分布 程序代码例如以下: 分类结果:

  6. Fast dev didn't succeed, trying another location

    Android 调试时,出现快盘加载失败问题.调试输出如下: Fast dev didn't succeed, trying another location 解决办法: 将项目属性->Andr ...

  7. .NET的堆和栈03,引用类型对象拷贝以及内存分配

    在" .NET的堆和栈01,基本概念.值类型内存分配"中,了解了"堆"和"栈"的基本概念,以及值类型的内存分配.我们知道:当执行一个方法的时 ...

  8. 转 iOS开发debug跟release版本log屏蔽方法

    简单介绍以下几个宏: ) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持).宏前面加上##的作用在于,当可变参数 ...

  9. Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!

    执行Maven Install打包的时候,提示以下警告信息: [WARNING] Using platform encoding (GBK actually) to copy filtered res ...

  10. 一直困扰设计师多年的Android 单位 dp

    轻松理解Android开发单位DP ,让设计与开发高度匹配,整合了网上各大资料汇总一个通俗易懂的. 一直困扰设计师多年的Android 单位 dp 设计这么多年了,相信很多设计师,一直被DP搞得晕头转 ...