Our database servers are configured with the tnsnames.ora and sqlnet.ora files centrally located on a shared network drive. In every ORACLE_HOME/network/admin directory we have a symbolic link pointing to the centrally-located tnsnames.ora and sqlnet.ora files. I want to understand the consequences of these files becoming unavailable in the case of a loss of connectivity to the network share.
- Are these files used by any database processes, or only by client programs like SQL*Plus?
- If these files became unavailable, would existing client connections be affected, or only new connections?
- Would database links using the TNS aliases be broken while the tnsnames.ora file is unavailable?
Best Answer
Yes, these files are used by Oracle processes while connecting to the database, once the connection is established they don't need these files.
For example,
If you have specified the following parameter in
sqlnet.ora
file on server side.The Oracle server process will check whether the incoming connection request is valid or not. Once it finds the node is valid it will proceed ahead and it no longer needs the
sqlnet.ora
file.Similarly, Oracle client process will look up TNS Name on
tnsnames.ora
file for the connection string. Once it finds the connection details to make connection it also no longer needs thetnsnames.ora
file.Only the new connection will be impacted because existing connections have already used these files during the connection initiation.
If you are middle of the transaction using that database link and the
tnsnames.ora
is missing then it will not impact the on going transaction. However, next session which uses the TNS Name in database link will fail.ORA-12154: TNS:could not resolve the connect identifier specified