因为项目中使用了oracle v-ip作了oracle数据库集群,如今须要把项目中程序进行升级。数据库
原来的程序中直接使用的是JDBC而后配置的kettle.properties配置文件,以下图:oracle
根据项目须要,查看了相关资料oracle官网说明以下:spa
大致意思就是:blog
·设置为native(JDBC)连接方式ip
·将hostname跟port设置为空(port或设置为-1)集群
·而后将database name设置为如下三种方式中的一种配置
(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host1-vip)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = host2-vip)(PORT = 1521))(LOAD_BALANCE = yes)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = db-service)(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 5))))service
or程序
(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=xxxx)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=sid)))im
or
(DESCRIPTION=(FAILOVER=ON)(ADDRESS_LIST=(LOAD_BALANCE=ON)(ADDRESS=(PROTOCOL=TCP)(HOST=xxxxx)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=sid)))
看了资料,如今开始修改程序配置,刚开始,想直接修改kettle.properties配置文件,将hostname port database name修改,而后程序不用作修改,也就是以下的配置:
这样是改动最小的,可是,通过验证这种方式行不通,程序报错。。。
后来作了修改,以下:
配置文件中须要只修改database name,可是须要修改程序中的数据库链接。
验证结果:
注:若是修改配置后链接数据库失败,查看下kettle版本。
估计只有kettle4.x及以上版本才支持rac模式,我生产原来用的是kettle3.0,升级程序及配置文件后链接失败,升级kettle3.0到kettle4.2以后链接成功。