Kettle连接ORACLE失败,报错IO异常:
2016-06-30 13:38
302 查看
之前用kettle从测试环境抽数据,连接的是oracle数据库,没有任何问题。今天,经理让我从生产环境抽数,于是我把之前连接的主机名称改成生产环境的地址,换一下用户名密码,其它不变(如:数据库名称)。连接时报错如下图:
感到很纳闷,用户名和密码都是正确的,测试环境可以连,怎么换个IP就失败了。
通过检查,觉得应该是错在连接ORACLE的SID上。我觉得kettle连接ORALCE应该是通过SID而不是SERVICE_NAME。通过测试发现,测试环境的SID和SERVICE_NAME 应该是一样的,所以在连接测试库时,数据库名称那里我填SERVICE_NAME的名称,kettle通过SID一样可以连接上,因为他们是一样的。但是换成生产库,生产库的SID和SERVICE_NAME是不一样的,但连接时,数据库名称仍然用的是SERVICE_NAME的值,那么kettle就连接报错了,因为此时SID不是正确的生产库的SID。
那么解决办法就是查询生产环境的SID是什么,然后再连接就应该好了。
可是,由于我没有权限去查它的SID,只能等明天去向客户们要SID,但是此刻我就要去在服务器上部署kettle让他明天就能跑起来呀。终于在网上找到了一个方法,大家可以通过这个方法,即便不知道SID也可以连接上,亲测是有效,这应该算是kettle的一个小BUG。
kettle设计器连接oracle RAC时的连接字符串
感到很纳闷,用户名和密码都是正确的,测试环境可以连,怎么换个IP就失败了。
通过检查,觉得应该是错在连接ORACLE的SID上。我觉得kettle连接ORALCE应该是通过SID而不是SERVICE_NAME。通过测试发现,测试环境的SID和SERVICE_NAME 应该是一样的,所以在连接测试库时,数据库名称那里我填SERVICE_NAME的名称,kettle通过SID一样可以连接上,因为他们是一样的。但是换成生产库,生产库的SID和SERVICE_NAME是不一样的,但连接时,数据库名称仍然用的是SERVICE_NAME的值,那么kettle就连接报错了,因为此时SID不是正确的生产库的SID。
那么解决办法就是查询生产环境的SID是什么,然后再连接就应该好了。
可是,由于我没有权限去查它的SID,只能等明天去向客户们要SID,但是此刻我就要去在服务器上部署kettle让他明天就能跑起来呀。终于在网上找到了一个方法,大家可以通过这个方法,即便不知道SID也可以连接上,亲测是有效,这应该算是kettle的一个小BUG。
kettle设计器连接oracle RAC时的连接字符串
相关文章推荐
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- Oracle Containers for J2EE远程安全漏洞(CVE-2014-0413)
- Oracle 10g R2不能使用EM的问题
- 表空间操作
- PreparedStatement中in子句的处理
- VMware下RedHat4.8_64位安装Oracle 10g RAC--简略脚本
- oracle sql日期比较
- 基于 Red Hat 的发行版 Oracle Linux 正式发布Oracle Linux 7.1
- OS block size和Oracle block size,查找OS Blocksize的方法
- oracle中创建数据库和表空间的几点总结
- 数据库自动备份脚本
- oracle的nvl函数的使用介绍
- 解决oracle用户连接失败的解决方法
- oracle的一些tips技巧
- Oracle 下的开发日积月累
- Oracle存储过程之数据库中获取数据实例
- Windows下ORACLE 10g完全卸载的方法分析
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ORACLE LATERAL-SQL-INJECTION 个人见解