Net Service Names and the tnsnames.ora File
The Oracle RAC database installation process creates a
tnsnames.ora
file on each node. This file acts as a repository of net
service names.
Each net service name is associated with a connect identifier. A connect identifier is an identifier that maps a user-defined name to a connect descriptor. A connect descriptor contains the following information:
-
The network route to the service, including the location of the listener through a protocol address
-
The
SERVICE_NAME
parameter, with the value set to the name of a database serviceNote:
The
SERVICE_NAME
parameter that you use in thetnsnames.ora
file is singular, because you can specify only one service name. TheSERVICE_NAME
parameter is not the same as theservice_names
database initialization parameter. Theservice_names
database parameter defaults to the global database name, a name comprising thedb_name
anddb_domain
parameters in the initialization parameter file. When you add service names using SRVCTL or Oracle Enterprise Manager Cloud Control, it lists additional cluster-managed services for the database.
Typically, tools such as Oracle Database Configuration Assistant (DBCA) and Oracle Net Configuration Assistant (NETCA) create the tnsnames.ora
file in the ORACLE_HOME/network/admin
directory for Oracle Database installations, the GRID_HOME/network/admin
directory for Oracle Grid Infrastructure installations, or the corresponding ORACLE_BASE_HOME/network/admin
directory for a read-only Oracle home. Note that if you have installed multiple databases, then the file is created in the Oracle home or Grid home where DBCA or NETCA is run (or the Oracle base home for read-only instances).
Oracle Net checks for the tnsnames.ora
file in the following order:
-
The directory specified by the
TNS_ADMIN
environment variable. -
If the
TNS_ADMIN
environment variable is not set or the file is not found in theTNS_ADMIN
directory:-
For Oracle Database installations:
The
ORACLE_HOME/network/admin
directory (or itsORACLE_BASE_HOME/network/admin
directory for a read-only Oracle home). -
For Oracle Grid Infrastructure installations:
The
GRID_HOME/network/admin
directory (or itsORACLE_BASE_HOME/network/admin
directory for a read-only Oracle home).
-
-
For a read-only Oracle home, if the file is not found in the Oracle base home:
-
For Oracle Database installations:
The
ORACLE_HOME/network/admin
directory. -
For Grid Infrastructure installations:
The
GRID_HOME/network/admin
directory.
-
With Oracle Clusterware 11g Release 2 and later, the listener association no longer requires tnsnames.ora
file entries. The listener associations are configured as follows:
-
DBCA no longer sets the
LOCAL_LISTENER
parameter. The Oracle Clusterware agent that starts the database sets theLOCAL_LISTENER
parameter dynamically, and it sets it to the actual value, not an alias. Solistener_alias
entries are no longer needed in thetnsnames.ora
file. -
The
REMOTE_LISTENER
parameter is configured by DBCA to reference the SCAN and SCAN port, without any need for atnsnames.ora
entry. Oracle Clusterware uses the Easy Connect naming method withscanname:scanport
, so no listener associations for theREMOTE_LISTENER
parameter are needed in thetnsnames.ora
file.
For example, after you create the database, to add a second listener, listening on port 2012, use a command similar to the following command to have the database register with both listeners on startup:
SQL> alter system set local_listener='(DESCRIPTION=
(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.61)(PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.61)(PORT=2012))))'
scope=BOTH SID='OCRL1';
See Also:
-
Oracle Database Net Services Administrator's Guide for more information about the
tnsnames.ora
file
Parent topic: Oracle Net Services Configuration Files and Parameters