kettle 连接 oracle_19C,报12505错。

在尝试使用Kettle连接Oracle 19C时遇到12505错误,提示监听器不知道SID。问题解决方法包括确认SID未改变,使用ojdbc8.jar和orai18n.jar驱动,确保JDK版本匹配,并将ojdbc14.jar重命名为.bak。完成这些步骤后重启Kettle,问题得到解决。

直接步入正题:

 

参数配置
软件版本value
oracleOracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
驱动ojdbc8.jar ,orai18n.jar
JDK1.8
ETLSpoon 7.1

这事是发生在昨天,因之前连接oracle的时候,可以进行连接,但是真正用它的时候连接不上了,后期就问运维的大哥,他说从12C 已经升级到了19C, sid都没改变。

咱们先讲连接问题,这个sid 也是个坑!

因上边提了一下需求,需要从oracle(之前12C版本,现19C版本),将数据进行增量迁移到 click house中。

在使用kettle连接数据库时,提示一下报错:

错误连接数据库 [MarColor] : org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database

Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

org.pentaho.di.core.exception.KettleDatabaseException:
Error occurred while trying to connect to the database

Error connecting to database: (using class oracle.jdbc.driver.OracleDriver)
Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

因问题解决了,就不给你们还原现场了。

咱们分析一下:提示12505   listener does not currently know of SID given in connect descriptor    侦听器不知道连接描述符中给定的SID

咱们肯定去找这个原因对吧?

sid 报错, 就去急忙找运维大哥,大哥说好像版本升级了,但是sid 肯定没改。

当时真想以德服人!

19C 驱动需要     ojdbc8.jar ,orai18n.jar   

我的JDK是1.8版本 ,各位童鞋注意一下! 不同JDK下载的也是不同的!  

oracle 链接地址 :https://www.oracle.com/database/technologies/appdev/jdbc-ucp-19-7-c-downloads.html 

我们需要将 orai18n.jar 包下载下来,ojdbc8.jar(之前已经下载过了)。

链接:https://pan.baidu.com/s/1Tx5n60T2UA6WW9GBr_cODA 
提取码:zxcv 
 

将下载后的jar包放入到 kettle 的 lib 下,

 

 

重点! ojdbc14.jar 改成.bak 文件! 不然还会连接错误!

 

扩展名这个如何找不用问了吧?

算了还是说一下得了,因为我的是工作虚拟机用的是windows Server 2012 其实都差不多哈

找到文件 -》查看-》文件扩展名√勾 !  其实都是并在一排的

 

改完之后 重启,再去连接! 

如果再有问题,可以及时联系,如果有时间的话,肯定能够帮助解答。

### 配置 Kettle 连接 Oracle 19c PDB 当配置 Kettle连接 Oracle 19c 的可插拔数据库(PDB),确保使用正确的 JDBC URL 和驱动程序设置。对于 Oracle 19c,JDBC URL 应该采用特定的形式来指定服务名和服务实例。 #### 正确的 JDBC URL 形式 为了成功建立与 Oracle 19c 中 PDB 数据库的连接,应构建如下所示的 JDBC URL: ```plaintext jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<主机地址>)(PORT=<端口号>))(CONNECT_DATA=(SERVICE_NAME=<服务名称>))) ``` 其中 `<主机地址>` 是运行 Oracle 数据库服务器的机器 IP 地址或主机名;`<端口号>` 默认情况下为 `1521`; 而 `<服务名称>` 则对应于目标 PDB 实例的服务名称[^3]。 #### 设置 Kettle 数据源参数 在 Pentaho Data Integration(Kettle) 工具中定义新的数据库连接时,请按照以下指南操作: - **Connection Type**: Select "Generic database" - **Access**: Choose "Native(JDBC)" - **Custom connection method**: Pick "Use custom connection method" and enter the complete JDBC URL as described above. - **Username & Password**: Provide valid credentials that have access rights within your target schema inside the PDB. 另外,在高级选项里可能还需要调整一些属性比如字符集编码等以匹配实际环境需求。 #### 下载合适的 JDBC Driver 确认已经下载并安装了适用于 Oracle 19c 版本的官方 JDBC driver 文件(ojdbc8.jar), 并将其放置到 Kettle 安装目录下的 lib 文件夹内以便加载必要的类库支持。 ```bash wget https://www.oracle.com/database/technologies/appdev/jdbc-downloads.html -O ojdbc8.jar cp ojdbc8.jar /path/to/kettle/lib/ ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值