Net Service Names and the tnsnames.ora File
The 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.
The tnsnames.ora
file is located in both the Grid_home/network/admin
and Oracle_home/network/admin
directories. By default, the tnsnames.ora
file is read from the Grid home when Oracle Grid Infrastructure is installed.
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