Question: I need help with this error:
ORA-12154: TNS: could not resolve service name.Answer:
The ORA-12154 is a very common error,
always related to your local copy of the tnsnames.ora file, your listener configuration and
your database name aliases.
-
Make sure that your listener is listening for
the same service name that you are using.
-
Your service name might have an alias, so check
for global (world) entries and local entries.
Check:
$ORACLE_HOME/network/admin/tnsnames.ora
-
Check your global_name setting with this SQL:
select * from global_name;
The query value should match your init.ora parms for
db_name and db_domain, You can change the
global_name with an ALTER DATABASE command, as
follows:
alter
database rename global_name to xxx;
Also see these notes on
configuring your tnsnames.ora file and
troubleshooting network errors.
Rampant author
Steve Callan notes this on the ORA-12154 error:
"One of the
most common errors related to improper configuration
is the "ORA-12154: TNS: could not resolve service
name" error.
It is
not uncommon for new users of Oracle to spend hours
upon hours trying to figure out what their mistake
is when ORA-12154 appears."
The oerr
utility notes this on the ORA-12154 error::
$oerr ora 12154
ORA-12154: 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:
The following actions may be appropriate:
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
sqlnet.ora Oracle Net profile.
- 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.directory_path parameter
in the
sqlnet.ora Oracle Net profile.
- 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 EZCONNECT naming:
- Verify that EZCONNECT is
listed as one of the values of the
names.directory_path parameter
in the sqlnet.ora Oracle Net profile.
- 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.
NOTE: While there are many
possible causes for the ORA-12154 error, it can also
appear in the stack with a
TNS-03505: failed to resolve name error
indicating a problem occurred prior to the server
being found.
Also note the similarities in
numbering and content for
ORA-12514, which is related to the tns listener
service.
|