Reputation: 30922
I know there is a load of times this question has been asked but I can't quite figure out how to apply this information to my situation.
I have two databases of which I'm trying to connect with a DB LINK. These are:
A DB link has already been defined by someone, with the name PE_DBLINK.WORLD.
I can access both of these databases from my machine, so I can't see how tnsnames.ora would be affected.
However when I test the DB LINK I get the famous:
Link : "PE_DBLINK.WORLD" Error : ORA-12154: TNS:could not resolve the connect identifier specified
Could you please point me in the right direction, does the tnsnames.ora need to be modified on the BBEGMTD1 server?
As per @Chance comment, select * from ALL_DB_LINKS
returns:
PUBLIC
PE_DBLINK.WORLD
PRICING
OPEGMTP1.WORLD
03-NOV-11
PUBLIC
EBPROJ.WORLD
EBPROJ
MIDGMTP1
17-JUN-09
MYOPEGMTP1WORLD.WORLD
PRICING
(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=ORA04SOUK) (PORT=1521) ) (CONNECT_D
ATA= (SERVER=dedicated) (SERVICE_NAME=OPEGMTT1) ) ) )
16-DEC-11
This is the TNSNames Editor in TOAD to show the details are being shown up:
Upvotes: 2
Views: 64132
Reputation: 1
If you face any issue related to ORA-12514.
Scenario: customer is trying to connect to server A from server B using DB link then he gets ORA-12514 error. if the server A doesn’t not have the SID_LIST_LISTENER entry in the listener of server A ( this generally happens after upgrade) then he might get the error.
Error Code : ORA-12514: TNS: listener does not currently know of service requested in connect descriptor
Resolution : Add the SID_LIST_LISTENER entry in target Listener ( of server A)
Note # most of you must be aware.
Upvotes: 0
Reputation: 105
It worked fine for me without any additional changes to tnsnames.ora file:
CREATE DATABASE LINK <link> CONNECT TO <user> IDENTIFIED BY <password> USING
'(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <host>)(PORT = <port>))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <service_name>)
)
)';
Upvotes: 4
Reputation: 11
db_link are from db server to db server, not from client to server; so please make sure your both database servers have correct tns entries for service.
tnsnames.ora on Database server should have tns entries for service.
Upvotes: 0
Reputation: 143
If it's a private DB link, you need to login as the DB Link Owner to test.
Upvotes: 0
Reputation: 3372
Check on the source DB host for valid TNS entries. The DB Link is created from RDBMS Host to RDBMS Host, your PC is irrelevant.
Upvotes: 2
Reputation: 6507
Run this to check the host of the DBLink PE_DBLINK.WORLD:
select * from ALL_DB_LINKS
Check your tnsnames.ora fro the HOST (i.e. OPEGMTP1.WORLD ) of that DBLink. Which is located at (your locale machine)
%ORACLE_HOME%\network\admin\tnsnames.ora
If not found in your tnsnames.ora, then add it like this:
OPEGMTP1.WORLD = (DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=ORA04SOUK) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=OPEGMTT1) ) )
Or create your own DBLink:
CREATE DATABASE LINK MYOPEGMTP1.WORLD CONNECT TO user IDENTIFIED BY password USING '(DESCRIPTION= (ADDRESS= (PROTOCOL=TCP) (HOST=ORA04SOUK) (PORT=1521) ) (CONNECT_DATA= (SERVER=dedicated) (SERVICE_NAME=OPEGMTT1) ) ) )'
Upvotes: 5