关于Oracle TNS_ADMIN环境变量

来源:互联网 发布:美剧 英文 知乎 编辑:程序博客网 时间:2024/04/30 19:32

转自:http://blog.csdn.net/pan_tian/article/details/7699599

 

前言:这两天安装了另外的一个Oracle产品,重启后,发现监听Listener起不来,重装后正常了,配置网络服务和监听后,在 X:\oracle\product\10.2.0\db_1

\NETWORK\ADMIN目录下却找不到listener.ora和tnsnames.ora,颇感奇怪,但是配置的网络服务却能在PL\SQL Dev中访问,打开PL\SQL Dev中的注册信息,

发现TNS File竟然指向了一个C盘下面的tnsnames.ora,十分诧异,Google之,发现如下解释,故记录之!

 

===================================================分割线========================================================

很多oracle产品都有自己的TNS文件,如果你的系统里装了多个Oracle的产品的话,那么客户端连instance的时候,到底是使用那个tnsnames.ora呢?这个时候就需要看TNS_ADMIN这个参数了。

Question: What is the tns_admin parameter and how do I use tns_admin to define a common location for my TNS files?

Answer:  The tns_admin parameter determines the location of the tns administration files (e.g. tnsnames.ora and listener.ora, etc.) 

The tns_admin parameter is super useful on servers with many databases on different release levels (hence different $ORACLE_HOME directories) because all databases tns_admin values can be set to a single location, allowing a single set of SQL*Net files for all databases on the server. 

Without the tns_admin variable, each instance would have it's own set of TNS files in the $ORACLE_HOME/network/admin directory.


查看方法:命令行
C:\Documents and Settings\Administrator>set TNS_ADMIN
TNS_ADMIN=F:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN
这就表示客户端会从F:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN下读取TNS的设置

 
修改方法:
有两个地方可以修改,一个是注册表,一个是系统环境变量。
注册表的位置:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0\TNS_ADMIN
系统环境变量的优先级高于注册表,如果设置了环境变量,那么就会忽略注册表的值。
 
 
原创粉丝点击