因爲項目中使用了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以後鏈接成功。