Home » RDBMS Server » Networking and Gateways » TNS Error when using DB link (Oracle 11g,Linux)
TNS Error when using DB link [message #608884] Wed, 26 February 2014 04:51 Go to next message
Jack14
Messages: 497
Registered: December 2011
Location: INDIA
Senior Member
Hi,

When i try to create DB link between 2 databases which exist in same server , DB link creation was successful and was able to query data objects from source to target database.

create PUBLIC database link COMMON_USER connect to COMMON_USER  identified by pwd using 'ORCL2';


SQL> select count(*) from COMMON_USER.REQUEST@COMMON_USER.COM;
 
  COUNT(*)

----------

    944035


Similarily when i try to create DB link between 2 database where source database exist in one server and target database exist in different server , DB link creation was successful but was unable to query data objects from source to target database and got error also.

create PUBLIC database link PROCESS_USER connect to PROCESS_USER identified by pwd using 'DEMO';


SQL> select count(*) from PROCESS_USER.CHANGELOG@PROCESS_USER.COM;
 
select count(*) from PROCESS_USER.CHANGELOG@PROCESS_USER.COM;
                                           *

ERROR at line 1:

ORA-12154: TNS:could not resolve the connect identifier specified



Can you please help me to fix this error.

Regards,

[Updated on: Wed, 26 February 2014 05:00]

Report message to a moderator

Re: TNS Error when using DB link [message #608886 is a reply to message #608884] Wed, 26 February 2014 05:16 Go to previous messageGo to next message
ThomasG
Messages: 3211
Registered: April 2005
Location: Heilbronn, Germany
Senior Member
Do you have a tnsname "DEMO" configured in you tnsnames.ora on the source server?

 ~ $ oerr ORA 12154
12154, 00000, "TNS:could not resolve the connect identifier specified"
// *Cause:  A connection to a database or other service was requested using
// a connect identifier, and the connect identifier specified could not
// be resolved into a connect descriptor using one of the naming methods
// configured. For example, if the type of connect identifier used was a
// net service name then the net service name could not be found in a
// naming method repository, or the repository could not be
// located or reached.
// *Action:
//   - If you are using local naming (TNSNAMES.ORA file):
//      - Make sure that "TNSNAMES" is listed as one of the values of the
//        NAMES.DIRECTORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA)
//      - Verify that a TNSNAMES.ORA file exists and is in the proper
//        directory and is accessible.
//      - Check that the net service name used as the connect identifier
//        exists in the TNSNAMES.ORA file.
//      - Make sure there are no syntax errors anywhere in the TNSNAMES.ORA
//        file.  Look for unmatched parentheses or stray characters. Errors
//        in a TNSNAMES.ORA file may make it unusable.
//   - If you are using directory naming:
//      - Verify that "LDAP" is listed as one of the values of the
//        NAMES.DIRETORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA).
//      - Verify that the LDAP directory server is up and that it is
//        accessible.
//      - Verify that the net service name or database name used as the
//        connect identifier is configured in the directory.
//      - Verify that the default context being used is correct by
//        specifying a fully qualified net service name or a full LDAP DN
//        as the connect identifier
//   - If you are using easy connect naming:
//      - Verify that "EZCONNECT" is listed as one of the values of the
//        NAMES.DIRETORY_PATH parameter in the Oracle Net profile
//        (SQLNET.ORA).
//      - Make sure the host, port and service name specified
//        are correct.
//      - Try enclosing the connect identifier in quote marks.
//
//   See the Oracle Net Services Administrators Guide or the Oracle
//   operating system specific guide for more information on naming.

Re: TNS Error when using DB link [message #608889 is a reply to message #608884] Wed, 26 February 2014 05:32 Go to previous messageGo to next message
Jack14
Messages: 497
Registered: December 2011
Location: INDIA
Senior Member
Thomas,

Quote:
Do you have a tnsname "DEMO" configured in you tnsnames.ora on the source server?

No.I just added it in my source server.

Thanks
Re: TNS Error when using DB link [message #608903 is a reply to message #608889] Wed, 26 February 2014 08:01 Go to previous messageGo to next message
BlackSwan
Messages: 26766
Registered: January 2009
Location: SoCal
Senior Member
when you CREATE DATABASE LINK the clause after "USING" should be a TNS_ALIAS within the tnsnames.ora file & then to utilize the DB LINK use same alias as below

SELECT COUNT(*) FROM USER_OBJECTS@ORCL2;
or
SELECT COUNT(*) FROM USER_OBJECTS@DEMO;
Re: TNS Error when using DB link [message #608975 is a reply to message #608903] Thu, 27 February 2014 11:17 Go to previous messageGo to next message
Jack14
Messages: 497
Registered: December 2011
Location: INDIA
Senior Member
Blackswan,

Thanks for your explanation.
Re: TNS Error when using DB link [message #608976 is a reply to message #608884] Thu, 27 February 2014 11:47 Go to previous message
John Watson
Messages: 8929
Registered: January 2010
Location: Global Village
Senior Member
I would start by cutting out the need for TNS name resolution. Embed the listening address, port, and service in the link:
orcla> create database link l1 connect to scott identified by tiger using '127.0.0.1:1521/orclz';

Database link created.

orcla> select * from global_name@l1;

GLOBAL_NAME
---------------------------------------------------------------------------------------------------
ORCLZ

orcla>
Previous Topic: TNS:could not resolve the connect identifier specified
Next Topic: Method of Heterogeneous of Communication between Oracle to SQL Server.
Goto Forum:
  


Current Time: Thu Apr 18 13:36:46 CDT 2024