basora@hiubas1:/hiubas/oracle/app/oracle/10g/network/admin>tnsping hnbill
TNS Ping Utility for IBM/AIX RISC System/6000: Version 10.2.0.4.0 - Production on 27-JAN-2011 17:04:38
Copyright (c) 1997, 2007, Oracle. All rights reserved.
Used parameter files:
TNS-03505: Failed to resolve name
这个错误好像有很多种原因,因为当时在我解决了一刻钟的时间后,仍未果时,上网搜了一下,大多是由于sqlnet.ora文件的配置问题或是tnsnames.ora文件的service_name的配置有
问题。可这些解决方法好像都不适应我,最后无意在网上看到一个环境变量$TNS_ADMIN,突然间的柳暗花明。
我试了下echo $TNS_ADMIN,果然没有输出,说明没有配置该环境变量。
export了一下之后,再tnsping,就OK了。哎,原来是环境没有配置,为预防今后发生类似的事情,将其加入到了.profile文件中。
这也是导致TNS_03505错误的一种原因,与大家分享。
Oracle数据库连接错误信息。出现这个问题的原因基本上是因为tnsnames.ora没有为连接配置正确的SERVICE_NAME,通过编辑tnsnames.ora文件添加相应的服务信息即可。
步骤:1.oracel
登陆linux 2.找到tnsnames.ora文件($ORACLE_HOME/network/admin 目录下),vi编辑,添加以下内容,LCSKGL前不应有空格:
LCSKGL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 140.20.17.33)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = lcskgl)
)
)
配置完成后,tnsping LCSKGL时,报TNS-03505: Failed to resolve name错误,通过查阅资料发现,SQL*
NET协议,ORACLE客户端连服务器时一般需要配置
sqlnet.ora和tnsnames.ora。sqlnet.ora文件决定找数据库服务器别名的方式,默认的参数有
NAMES.DEFAULT_DOMAIN = WORLD
NAMES.DIRECTORY_PATH = (TNSNAMES, ONAMES, HOSTNAME)
如果你的ORACLE客户端和服务器默认的域名不一样,需要用#号注释第一行
#NAMES.DEFAULT_DOMAIN = WORLD使它不起作用。
NAMES.DIRECTORY_PATH指定找服务器别名的顺序 (本地的tnsnames.ora文件, 命名服务器, 主机名方式)
注释后,一切ok!