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.
|
No comments:
Post a Comment