ODI抽取中出现“ORA-12545: 因目标主机或对象不存在,连接失败。”

    之前ODI的运行一切正常,目标机器连接源数据库也都没问题。后来由于需要换存储,因此对源的数据库rac进行了重装,但是数据库实例名,服务名,IP地址什么的都没改。但是发现进行ODI抽取时遇到了错误,报错信息如下:

    “ORA-12545: 因目标主机或对象不存在,连接失败。”

    分析发现时在存储过程中调用远程表时遇到错误,在plsql中执行,发现也报错,但是再执行就不会有这个错误了,重新登录又出现,再试又不出现了,后来再试发现重复不了该问题。  因此考虑是数据库连接的问题,上网查询,发现遇到该问题的也很多,都说是监听的问题。

    于是打开进入到 D:\oracle\ora92\network\log\listener.log,查看监听日志,发现监听报错,采用了网上的方法

下面尝试连接远端RAC数据库:

$ exit

SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC
ERROR:
ORA-12545: 因目标主机或对象不存在, 连接失败

警告: 您不再连接到 ORACLE。
SQL> CONN NDMAIN/NDMAIN@TESTRAC
ERROR:
ORA-12545: 因目标主机或对象不存在, 连接失败

SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC
ERROR:
ORA-12545: 因目标主机或对象不存在, 连接失败

警告: 您不再连接到 ORACLE。
SQL> CONN NDMAIN/NDMAIN@TESTRAC
ERROR:
ORA-12545: 因目标主机或对象不存在, 连接失败


可以看到,连接失败的概率还是很高的。其实只有在本地hosts文件中加上RAC实例所在服务器的ip和主机名信息,就可以避免这个错误:

SQL> host
$ su -
Password:
Sun Microsystems Inc. SunOS 5.10 Generic January 2005
Sourcing //.profile-EIS.....
root@ahrac1 # vi /etc/hosts
#
# Internet host table
#
172.25.198.224 racnode1-vip
172.25.198.225 racnode2-vip

root@ahrac1 # exit
$ exit

SQL>

下面再次尝试连接RAC数据库:

SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。
SQL> CONN NDMAIN/NDMAIN@TESTRAC已连接。

问题已经解决。不过由于只修改当前客户端的配置,所以这种方法也只对当前客户端有效。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值