Kettle工具通过JNDI连接Oracle集群
迪丽瓦拉
2024-05-30 22:56:29
0

我们在用Kettle ETL工具的时候,可能会遇到数据库为Oracle集群的模式,或者有时候目标库为oracle,在持续的循环调度中,经常发现oracle的数据库连接中断的情况,此时,在Kettle中有一个JNDI的连接方式能很好的解决此模式的连接。

1、查看Oracle配置连接文件tnsnames.ora中的连接信息:

ORCL =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 服务IP地址1)(PORT = 1521))

      (ADDRESS = (PROTOCOL = TCP)(HOST = 服务IP地址2)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = orcl)

    )

  )

注:此文件在...product\11.2.0\dbhome_1\NETWORK\ADMIN下:

 

 2、在kettle工具中,打开jdbc.properties文件,在此文件中添加如下代码:

OracleJNDI/type=javax.sql.DataSource OracleJNDI/driver=oracle.jdbc.driver.OracleDriver OracleJNDI/url=jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (ADDRESS = (PROTOCOL = TCP)(HOST = 服务IP地址1)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 服务IP地址2)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) ( SERVICE_NAME = orcl)))
OracleJNDI/user=数据库用户名
OracleJNDI/password=数据库密码

注:修改此文件后,记得重启Kettle工具。

此文件的目录在kettle工具..\data-integration\simple-jndi:

 注:

OracleJNDI/type =数据库类型

OracleJNDI/driver:此数据库的驱动(不同的数据库,此驱动不同)

OracleJNDI/url=jdbc:oracle:thin:@ :此处填第1步中“ORCL = ” 等号后面的内容

OracleJNDI/user = 访问数据库的用户名

OracleJNDI/password= 此用户名的访问密码

3、在kettle连接中,选择JNDI的连接方式即可:

 注:JNDI名称为第二步中的自定义的名称:

5、另外,为了避免驱动的版本问题,建议把Oracle的驱动直接拷贝到kettle工具中:

 从此目录的驱动拷贝到kettle工具中的lib目录下:

 驱动拷贝完后,也需重启kettle工具。

相关内容