I'm trying to create a database link from my Oracle AWS RDS instance to another Oracle database outside my VPC. I created the database link this:
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)))';
However when I run a query against that database link I get the following:
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
I did some googling of ORA-12545 and the majority of the issues people are having with this error is either an intermittent connectivity failure (of which mine is not, it fails every time), or a misspelled hostname/incorrect port. My issue is also not an incorrect hostname/port because I am able to CONNECT
to my.db.com using the same connection string and query the database that way.
Does anyone have any suggestions?
Source Oracle database is:
Oracle Database 11g Release 11.2.0.4.0 - 64bit Production
Destination Oracle database I am trying to connect to is:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
I (somewhat) found the answer I needed. The TLDR version is that after much googling and desk pounding I did an nslookup
on the hostname of the database I am connecting to (the my.db.com portion of TNSNames). I modified the TNSNames to connect to the IPs returned by the nslookup
. My final TNSNames looks something like the following:
(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)))
The long version is that the Oracle host I am connecting to is configured with a Single Client Access Name (SCAN). After looking at the discussion on this post I went with just looking up the host name. I initially tried to modify the REMOTE_LISTENER in the AWS RDS Parameter Group, but that was not modifiable.