Consequences of tnsnames.ora and sqlnet.ora being unavailable

oracleoracle-11g-r2

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.

  1. Are these files used by any database processes, or only by client programs like SQL*Plus?
  2. If these files became unavailable, would existing client connections be affected, or only new connections?
  3. Would database links using the TNS aliases be broken while the tnsnames.ora file is unavailable?

Best Answer

Are these files used by any database processes, or only by client programs like SQL*Plus?

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.

tcp.validnode_checking = yes
tcp.invited_nodes =<list the valid nodes here>

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 the tnsnames.ora file.

If these files became unavailable, would existing client connections be affected, or only new connections?

Only the new connection will be impacted because existing connections have already used these files during the connection initiation.

Would database links using the TNS aliases be broken while the tnsnames.ora file is unavailable?

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