您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

TNS-03505问题解决总结

2025/4/26 2:59:16发布17次查看
最近部署项目,linux系统使用非oracle用户测试(比如test)tnsping orcl出现如下提示信息:tns-03505: failed to resolve name
最近部署项目,,linux系统使用非oracle用户测试(比如test)tnsping orcl出现如下提示信息:
tns ping utility for linux: version 11.2.0.1.0 - production on 04-dec-2012 14:29:28
copyright (c) 1997, 2009, oracle.  all rights reserved.
used parameter files:
/opt/oracle/product/11g/network/admin/sqlnet.ora
tns-03505: failed to resolve name
乍一看,问题出现原因清楚明了。就是orcl服务名无法解析。但是我在本局域网使用其它windows系统中的pl/sql可以连接。
因为对linux系统认知甚少,所以一头雾水。去网搜一下很多,大约有这么几种解决方案:
一是文件配置错误;
二是sqlnet.ora文件中names.directory_path设置问题;
三是lsnrctl status 监听错误或者sqlplus版本问题。
第一种情况意思就是说在tnsnames.ora这个文件中我配置的orcl有问题,大部人说前面不能有空格,我的本来就没有;再就是listener.ora有一个标准的写法,如下:
sid_list_listener =
(sid_list =
(sid_desc =
(sid_name = plsextproc)
(oracle_home = /oracle/product/10.2.0/db_1)
(program = extproc)
)
(sid_desc =
(global_dbname = orcl)
(oracle_home = /oracle/product/10.2.0/db_1)
(sid_name = orcl)
)
)
listener =
(description_list =
(description =
(address = (protocol = ipc)(key = extproc1))
(address = (protocol = tcp)(host = localhost)(port = 1521))
)
)
第二种情况说的是通过客户端访问数据库服务器顺序。我也是从这个帖子发现我的问题的,我的linux用户test没有访问tnsname.ora这个文件的权限。
第三种情况说的是监听服务没起来。这个很容易就能查别,使用lsnrctl status即可知道。
通过解决这么一个问题,我总结一下思路:
首先:查询监听状态。因为我的可以通过其它客户端访问,所以不会是监听的问题。
其次:使用oracle用户,测试tnsping orcl。一般情况下肯定通。非oracle用户并且不属于oracle用户所属组的查看是否有权限。没有权限使用: chmod o+r tnsname.ora即可。
最后:版本兼容性的问题。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product