I always thought that db_link uses the connect descriptor 'some_db' ( from the USING clause) and not the db_link names itself.
Here is how the db_link has been defined:
CREATE DATABASE LINK my_link
CONNECT TO some_user
IDENTIFIED BY <PWD>
And "some_db" is both in the source systems tnanames.ora as well as the target system.
I am able to connect to "some_db" using the "@" syntax which tells me that tnsnames.ora entry exists.
Apologies for my ignorance but I do not think an entry for "my_link" has to be in the tnsnames.ora file. Required entries for the databases exist in the tnsnames.ora.
$ tnsping some_db
TNS Ping Utility for Linux: Version 10.2.0.5.0 - Production on 17-SEP-2013 13:29:06
Copyright (c) 1997, 2010, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = <host-name>)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = some_db)))
OK (0 msec)
select * from dba_db_links
owner db_link username host created
<owner> my_LINK <user_id> some_db 8/8/2013 5:42:58 PM
Sorry that I have to remove the actual info!