Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2833359
  • 博文数量: 599
  • 博客积分: 16398
  • 博客等级: 上将
  • 技术积分: 6875
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-30 12:04
个人简介

WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606

文章分类

全部博文(599)

文章存档

2014年(12)

2013年(56)

2012年(199)

2011年(105)

2010年(128)

2009年(99)

分类: Oracle

2013-06-03 16:41:14

对于UNIX平台,ORACLE会首先查找环境变量TNS_ADMIN,如果存在就到这个环境变量所指定的目录下去找
tnsnames.ora文件,否则就去$ORACLE_HOME/network/admin的目录下去找。

在WINDOWS下的平台上,发现不符合这个规则,ORACLE会优先在当前目录下找TNSNAMES.ORA文件,
如果不存在这个文件,再查找TNS_ADMIN环境变量,如果环境变量也不存在,在到$ORACLE_HOME/network/admin下去找。



Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.


C:\Documents and Settings\htaix>type C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora
# tnsnames.ora Network Configuration File: c:\u01\oracle\product\11.2.0\client_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.


dev2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.30.28)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =  jtcmdb)
    )
  )









C:\Documents and Settings\htaix>type C:\tnsnames.ora
dev2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.30.29)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME =  jtcmdb)
    )
  )


C:\Documents and Settings\htaix>

注意我C盘下和目录C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\下各有一个TNSNAMES.ORA文件,
但是HOST的IP是不一样的,一个是10.192.30.29  一个是10.192.30.28。
并且注意当前目录是
C:\Documents and Settings\htaix>。



C:\Documents and Settings\htaix>tnsping dev2


TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-6月 -2013 16:34:41


Copyright (c) 1997, 2005, Oracle.  All rights reserved.


已使用的参数文件:
c:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora




已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.30.28)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jtcmdb)))
OK (30 毫秒)


可以看到ORACLEL优先用的是$ORACLE_HOME/network/admin目录下的TNSNAMES.ORA(没有配置TNS_ADMIN环境变量)。

下面我将当前路径切换到C盘根目录下,在执行tnsping。


C:\Documents and Settings\htaix>cd c:\


C:\>tnsping dev2


TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-6月 -2013 16:37:05


Copyright (c) 1997, 2005, Oracle.  All rights reserved.


已使用的参数文件:
c:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora




已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.192.30.29)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = jtcmdb)))
OK (30 毫秒)


可以看到这次的IP变成了  10.192.30.29 ,用的是C盘根目录下的TNSNAMES.ORA。

UNIX平台却没有这个问题。















阅读(6973) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~