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

摘要:
javaoraclethin和oci连接方式实现多数据库的故障切换一、thin方式该种方式简便易用非经常见。当中URL为jdbc:oracle:thin:@当中LOAD_BALANCE=on表示负载开启,java以随机的方式创建会话连接;LOAD_BANLANCE=off表示负载关闭,java以顺序的方式创建会话连接,仅仅有当第一个数据库出现问题无法连接时才会选择第二个数据库进行会话连接。

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 连接方式实现多数据库的故障切换》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇java-线程安全性问题MySQL的锁(1)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

全网最通俗易懂理清mybatis中SqlSession、SqlSessionTemplate、SessionFactory和SqlSessionFactoryBean之间的关系

摘自:https://www.cnblogs.com/xiaoming0601/p/12166160.html 我潇洒的灰大狼又回来啦。今天送大家的一句话是: 保持耐心,永远年轻,永远热泪盈眶。 前言 先容我哭一会儿,呜呜呜~昨晚写了一半的文章,还没保存就盖上盖子准备回家,拔下电源准备把电脑塞进书包带回家完成时,懒惰阻止了我,最终还是没带回家,于是,遭报...

PG数据库常用命令

查看帮助命令DB=# help --总的帮助DB=# h --SQL commands级的帮助DB=# ? --psql commands级的帮助按列显示,类似MySQL的GDB=# xExpanded display is on.查看DB安装目录(最好root用户执行)find / -name initdb查看有多少DB实例在运行(最好root用户执行)...

informix数据迁移工具使用介绍

一.dbschema  USAGE:     dbschema [-q] [-t tabname] [-s user] [-p user] [-r rolename] [-f procname]              [-hd tabname] -d dbname [-w passwd] [-seq sequence] [-l [num]]      ...

PHP中文乱码的常见解决方法总结

PHP中文乱码是PHP开发中的常见问题之一。PHP中文乱码有时发生在网页本身,有些产生在于MySQL交互的过程中,有时与操作系统有关。下面进行一番总结。   一.首先是PHP网页的编码   1. php文件本身的编码与网页的编码应匹配   a. 如果欲使用gb2312编码,那么php要输出头:header(“Content-Type: text/html;...

超过4000长度的字符串如何添加到oracle数据库中

string conn = "Data Source=客户端指定连接字符串;User ID=user;Password=mima"; OracleConnection Con = new System.Data.OracleClient.OracleConnection(conn); Con.Open(); string cmdText = "INS...

Java:将数据库数据导出到Excel (一眼就看会)

所用Jar包 1. sqljdbc4.jar 连接数据库的Jar包(根据数据库的不同进行选择,我用的SqlServer2008) 2.Jxl.jar 访问Excel的Jar包 注意:支持以.xls结尾的Excel文件,可能不支持.xlsx结尾的 实现效果: 数据库数据: 导出的Excel: 完整代码: 导出的核心代码就四五行 类里需要import的包也...