专业编程教程与实战项目分享平台

网站首页 > 技术文章 正文

Kettle如何通过TLS连接Oracle数据库

ins518 2025-09-08 22:27:11 技术文章 2 ℃ 0 评论

1. 准备工作

Oracle JDBC驱动

下载ojdbc8.jar(或与Oracle版本匹配的驱动),放置到Kettle的/data-integration/lib/目录下。

Oracle服务端配置

确保Oracle已启用TLS,并配置了以下文件:

sqlnet.ora:设置SSL_CLIENT_AUTHENTICATION和WALLET_LOCATION。

listener.ora:监听端口配置为TCPS协议(如2484)。

2. Kettle连接配置

方法1:使用JDBC Thin连接(推荐)

在Spoon中创建新的数据库连接,选择Oracle类型。

填写连接信息:

text

Copy Code

Hostname: <Oracle服务器IP>

Port: 2484(默认TCPS端口)

Database Name: <Service_Name>

Username/Password: <认证信息>

关键参数(在“Options”标签页添加):

text

Copy Code

javax.net.ssl.trustStore=<信任库路径>


javax.net.ssl.trustStorePassword=<密码>

oracle.net.ssl_version=1.2

oracle.net.ssl_server_dn_match=true

JDBC URL格式(可选手动填写):

text

Copy Code

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCPS)(HOST=<host>)(PORT=2484))(CONNECT_DATA=(SERVICE_NAME=<service>)))

方法2:使用OCI连接(需Oracle客户端)

确保ORACLE_HOME环境变量指向已配置TLS的Oracle客户端。

在tnsnames.ora中配置TLS条目:

text

Copy Code

ALIAS =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCPS)(HOST = <host>)(PORT = 2484))

(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = <service>))

)

在Kettle中选择连接类型为OCI,填写TNS别名。

3. 测试连接

点击“Test”按钮验证连接,确保无ORA-28860(TLS握手失败)等错误。

检查Kettle日志(/data-integration/logs/)确认TLS协商成功。

4. 常见问题解决

证书问题:确保信任库(.jks或.p12)包含Oracle服务器的CA证书。

协议版本:若Oracle版本较旧,尝试将oracle.net.ssl_version改为1.0或1.1。

驱动兼容性:使用ojdbc10.jar或更高版本支持TLS 1.3。

注意事项

端口冲突:TCPS默认端口为2484,非标准端口需与DBA确认。

性能影响:TLS加密会增加少量开销,建议对敏感数据使用。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表