Oracle AWS RDS数据库链接ORA-12545

时间:2015-08-17 18:57:13

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

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

1 个答案:

答案 0 :(得分:0)

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

相关问题