kettle连接oracle19c的3种方式
kettle如何连接oracle19c软件配置参数软件版本值数据库版本Oracle19c数据库驱动ojdbc8.jar,orai18n.jarJDK版本JDK1.8.0_162etl工具Spoon5.4数据库配置数据库类型容器数据库可插拔数据库数据库类型编码CDBPDB数据库名称orcld1用户名systemu1密码123456123456需求描述最近在做数据库迁移,需要将数据库版本从O
kettle如何连接oracle19c
软件配置参数
软件版本 | 值 |
---|---|
数据库版本 | Oracle19c |
数据库驱动 | ojdbc8.jar,orai18n.jar |
JDK版本 | JDK1.8.0_162 |
etl工具 | Spoon5.4 |
数据库配置
数据库类型 | 容器数据库 | 可插拔数据库 |
---|---|---|
数据库类型编码 | CDB | PDB |
数据库名称 | orcl | d1 |
用户名 | system | u1 |
密码 | 123456 | 123456 |
需求描述
最近在做数据库迁移,需要将数据库版本从Oracle11g升级到Oracle19c。
使用kettle连接数据库时,提示以下错误:
错误连接数据库 [d1] : 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
问题分析:
根据测试,数据库升级到oracle19c后,应用服务需要进行以下修改:
- 1、升级数据库驱动
新增jar包:ojdbc8.jar,orai18n.jar
取消jar包:ojdbc14.jar 修改为 ojdbc14.jar.bak - 2、修改数据库连接参数,变更方式如下:
原连接方式:
config.jdbcUrl=jdbc:oracle:thin:@192.168.5.129:1521:d1
新连接方式:
config.jdbcUrl=jdbc:oracle:thin:@192.168.5.129:1521/d1
默认情况下,在kettle数据库连接中配置连接后,查看特征列表,发现实际的URL地址如下:
jdbc:oracle:thin:@192.168.5.129:1521:d1
此方式,仅限于连接CDB数据库,测试将PDB替换为CDB,测试连接成功:
如果需要正确连接PDB,需要使用以下3种方法:
解决办法:
方式1、数据库名称添加反斜线
在原有的数据库名称前面添加反斜线/,测试连接:成功
方式2、数据库名称填写全地址
主机名称、端口号留空;
数据库名称:填写数据库访问地址和数据库名称,如下:
192.168.5.129/d1
192.168.5.129:1521/d1
测试连接:成功
方式3、JNDI方式
打开Keetle配置文件文件:
%KETTLE_HOME%\simple-jndi\jdbc.properties
新增以下内容:
192.168.5.129@d1/type=javax.sql.DataSource
192.168.5.129@d1/driver=oracle.jdbc.driver.OracleDriver
192.168.5.129@d1/url=jdbc:oracle:thin:@192.168.5.129:1521/d1
192.168.5.129@d1/user=u1
192.168.5.129@d1/password=123456
由于使用JNDI方式,数据库密码以明文方式存储,存在安全隐患,且不便于分布式部署实施。建议采用方案1或方案2;
更多推荐
所有评论(0)