suse10sp2下安装oracle11g客户端,新建aipcti用户,tnsping vsm(vsm为客户端下服务名)失败,报错: tns-03505: failed to reso
问题描述;
suse10sp2下安装oracle11g客户端,新建aipcti用户,tnsping vsm(vsm为客户端下服务名)失败,报错:
tns-03505: failed to resolve name ,used parameter files:
/opt/oracle/product/11g/db/network/admin/sqlnet.ora。
而在oracle用户下直接执行此命令则没有问题。
问题处理:
1,使用aipcti用户直接tnsping +数据库ip则没有问题,但显示是通过
used ezconnect adapter to resolve the alias 来解析的。
2,打开客户端下sqlnet.ora,里面有通过客户端访问数据库服务器顺序。可以看到该文件中访问顺序是先访问tnsnames,如果该文件下没有相关内容或访问失败,再通过ezconnect访问。
oracle@urp1vsmdb2:/opt/oracle/product/11g/db/network/admin> more sqlnet.ora
# sqlnet.ora network configuration file: /opt/oracle/product/11g/db/network/admin/sqlnet.ora
# generated by oracle configuration tools.
names.directory_path= (tnsnames, ezconnect)
3,,显示tnsname.ora的权限:
oracle@urp1vsmdb2:/opt/oracle/product/11g/db/network/admin> ll -al tnsnames.ora
-rw-r----- 1 oracle oinstall 493 2011-09-23 16:09 tnsnames.ora
发现aipcti用户对该文件没有执行权限导致访问失败。
修改tnsnames.ora权限
oracle@urp1vsmdb2:/opt/oracle/product/11g/db/network/admin> chmod 644 tnsnames.ora
oracle@urp1vsmdb2:/opt/oracle/product/11g/db/network/admin> ls -al tnsnames.ora
-rw-r--r-- 1 oracle oinstall 493 2011-09-23 16:09 tnsnames.ora
4,修改后再次在aipcti下执行已经可以正常tnsping 客户端
/aipcti/icddir/bin>tnsping vsm
tns ping utility for linux: version 11.1.0.7.0 - production on 26-9 -2011 14:38:04
copyright (c) 1997, 2008, oracle. all rights reserved.
used parameter files:
/opt/oracle/product/11g/db/network/admin/sqlnet.ora
used tnsnames adapter to resolve the alias
attempting to contact (description = (address_list = (address = (protocol = tcp)(host = 10.110.153.64)(port = 1521))) (connect_data = (service_name = uivr)))
ok (0 msec)
以下为两种方式下输出结果对比:
1,aipcti用户下使用tnsping+数据库ip
/aipcti/icddir/bin>tnsping 10.110.153.64
tns ping utility for linux: version 11.1.0.7.0 - production on 26-9 -2011 14:05:27
copyright (c) 1997, 2008, oracle. all rights reserved.
used parameter files:
/opt/oracle/product/11g/db/network/admin/sqlnet.ora
used ezconnect adapter to resolve the alias
attempting to contact (description=(connect_data=(service_name=))(address=(protocol=tcp)(host=10.110.153.64)(port=1521))(address=(protocol=tcp)
(host=10.110.153.64)(port=1521))(address=(protocol=tcp)(host=10.110.153.64)(port=1521)))
ok (0 msec)
2,aipcti用户下使用tnsping+服务名,正常的:
oracle@urp1vsmdb2:/opt/oracle/product/11g/db/network/admin> tnsping vsm
tns ping utility for linux: version 11.1.0.7.0 - production on 26-sep-2011 14:28:37
copyright (c) 1997, 2008, oracle. all rights reserved.
used parameter files:
/opt/oracle/product/11g/db/network/admin/sqlnet.ora
used tnsnames adapter to resolve the alias
attempting to contact (description = (address_list = (address = (protocol = tcp)(host = 10.110.153.64)(port = 1521))) (connect_data = (service_name = uivr)))
ok (10 msec)