Oracle AWS RDS 数据库 link ORA-12545

Oracle AWS RDS database link ORA-12545

我正在尝试创建一个数据库 link 从我的 Oracle AWS RDS 实例到我的 VPC 之外的另一个 Oracle 数据库。我这样创建了数据库 link: 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)))';

然而,当我 运行 对该数据库 link 的查询时,我得到以下信息: 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 进行了一些谷歌搜索,人们对此错误遇到的大多数问题要么是间歇性连接失败(我的不是,每次都失败),要么是拼写错误 hostname/incorrect 端口。我的问题也不是不正确的 hostname/port,因为我能够使用相同的连接字符串从 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

我(有点)找到了我需要的答案。 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,但那是不可修改的。