【问题标题】:Oracle AWS RDS database link ORA-12545Oracle AWS RDS 数据库链接 ORA-12545
【发布时间】:2015-08-19 02:36:41
【问题描述】:

我正在尝试创建从我的 Oracle AWS RDS 实例到我的 VPC 之外的另一个 Oracle 数据库的数据库链接。我创建了这个数据库链接: create database link test connect to myusername identified by "mypassword" using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=my.db.com)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=servicenameame)))';

但是,当我对该数据库链接运行查询时,我得到以下信息: SQL> select sysdate from dual@test; select sysdate from dual@test * ERROR at line 1: ORA-12545: Connect failed because target host or object does not exist

我对 ORA-12545 进行了一些谷歌搜索,人们遇到此错误的大多数问题要么是间歇性连接故障(我的不是,它每次都失败),要么是主机名拼写错误/端口不正确。我的问题也不是不正确的主机名/端口,因为我可以使用相同的连接字符串 CONNECT 到 my.db.com 并以这种方式查询数据库。

有人有什么建议吗?

源 Oracle 数据库是: Oracle Database 11g Release 11.2.0.4.0 - 64bit Production 我尝试连接的目标 Oracle 数据库是: Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

【问题讨论】:

    标签: database oracle amazon-web-services oracle11g database-link


    【解决方案1】:

    我(有点)找到了我需要的答案。 TLDR 版本是,经过多次谷歌搜索和桌面敲击,我在我连接到的数据库的主机名上做了一个nslookup(TNSNames 的 my.db.com 部分)。我修改了 TNSNames 以连接到 nslookup 返回的 IP。我的最终 TNSNames 如下所示:

    (DESCRIPTION=
    (ADDRESS_LIST= (LOAD_BALANCE=on)(FAILOVER=ON)
    (ADDRESS=(PROTOCOL=tcp)(HOST=w.x.y.z1)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=w.x.y.z2)(PORT=1521))
    (ADDRESS=(PROTOCOL=tcp)(HOST=w.x.y.z3)(PORT=1521)))
    (CONNECT_DATA=(SERVICE_NAME= servicenameame)))
    

    长版本是我连接到的 Oracle 主机配置了单一客户端访问名称 (SCAN)。在查看了this post 上的讨论后,我只查找了主机名。我最初尝试修改 AWS RDS 参数组中的 REMOTE_LISTENER,但无法修改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-21
      • 2017-04-04
      • 2020-02-20
      • 2016-07-08
      相关资源
      最近更新 更多