0

我正在尝试创建从我的 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

4

1 回答 1

0

我(有点)找到了我需要的答案。TLDR 版本是经过多次谷歌搜索和桌面敲击后,我nslookup对要连接的数据库的主机名(TNSNames 的 my.db.com 部分)进行了操作。我修改了 TNSNames 以连接到nslookup. 我的最终 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)。在查看了这篇文章的讨论之后,我只查找了主机名。我最初尝试修改 AWS RDS 参数组中的 REMOTE_LISTENER,但这是不可修改的。

于 2015-08-18T18:36:41.510 回答