I have 2 DB instance hosted in AWS in the same VPC:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
PL/SQL Release 12.1.0.2.0 - Production
"CORE 12.1.0.2.0 Production"
TNS for Linux: Version 12.1.0.2.0 - Production
NLSRTL Version 12.1.0.2.0 - Production
I am using DBMS_FILE_TRANSFER to copy the dump file from the source database instance to the target DB instance.
BEGIN
DBMS_FILE_TRANSFER.PUT_FILE(
source_directory_object => 'DATA_PUMP_DIR',
source_file_name => 'hotels.dmp',
destination_directory_object => 'DATA_PUMP_DIR',
destination_file_name => 'hotels_copied.dmp',
destination_database => 'to_rds'
);
END;
/
where to_rds
is a database link I previously created running
create database link to_rds connect to OF_HOTEL identified by OFO
using '(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hotelsdbtestaws.cwob1oxhu1so.eu-central-1.rds.amazonaws.com)(PORT=1521))(CONNECT_DATA=(SID=ORCL)))';
but when I run the script I got this error:
Error report -
ORA-12170: TNS:Connect timeout occurred
ORA-06512: at "SYS.DBMS_FILE_TRANSFER", line 60
ORA-06512: at "SYS.DBMS_FILE_TRANSFER", line 168
ORA-06512: at line 2
12170. 00000 - "TNS:Connect timeout occurred"
*Cause: The server shut down because connection establishment or
communication with a client failed to complete within the allotted time
interval. This may be a result of network or system delays; or this may
indicate that a malicious client is trying to cause a Denial of Service
attack on the server.
*Action: If the error occurred because of a slow network or system,
reconfigure one or all of the parameters SQLNET.INBOUND_CONNECT_TIMEOUT,
SQLNET.SEND_TIMEOUT, SQLNET.RECV_TIMEOUT in sqlnet.ora to larger values.
If a malicious client is suspected, use the address in sqlnet.log to
identify the source and restrict access. Note that logged addresses may
not be reliable as they can be forged (e.g. in TCP/IP).
I tried to set the timeout:
SQLNET.INBOUND_CONNECT_TIMEOUT=600;
inbound_connect_timeout_listenername=600;
but I got an eror:
Error starting at line : 12 in command -
SQLNET.INBOUND_CONNECT_TIMEOUT=600
Error report -
Unknown Command
Error starting at line : 13 in command -
inbound_connect_timeout_listenername=0
Error report -
Unknown Command
You need to configure access on port 1521 SQL * NET between two instances of ORACLE. There are two ways to check access.
If there is no access, then you need to perform the procedure described on the amazon website Adjusting Database Links for Use with DB Instances in a VPC.