Oracle>报错:TNS-03505: 无法解析名称错误
问题描述:
安装完Oracle数据库后,进行连接测试,报错TNS-03505: 无法解析名称错误
解决过程:
1、查看提示路径,D:\app\Administrator\product\11.2.0\client_1\network\admin
查看tnsnames.oRA文件,结果:配置不完整。
查看D:\app\Administrator\product\11.2.0\dbhome_1\network\admin下的tnsnames.oRA文件:
结果,内容完整;
2、查看环境变量
把环境变量的系统变量path中把oracle服务端安装路径放到oracle客户端安装路径前面。
结果:问题解决;
(以下参考:https://blog.csdn.net/ami121/article/details/6980827):
Oracle的tnsping测试程序,在通讯时使用TCP协议。TCP 是面向连接的OSI传输层协议。面向连接的协议在初始建立连接的阶段需要进行初始的序列号的交换,这就是我们通常所指的三次握手。即tnsping测试程序在与listener进行通讯时会产生三次握手现象。
当在命令行中发出了tnsping命令后,会执行oracle 网络别名(即网络服务名,主机连接字符串)的解析工作。这个解析工作会在本地的tnsnames.ora文件或ORACLE的命令服务器或ORACLE LDAP(目录服务)中进行。解析的目的是得到目标listener所在的机器名(IP地址)和listener侦听的端口号。
一旦得到listener的机器名与端口号,就可以打开一个到目标机器与端口的TCP连接。为了打开这个TCP连接,listener的机器名必须被解析为ip地址(当然这只有在解析出的listener的连接地址为机器名时才这样做),然后TCP/IP执行三次握手来完成这次连接。
在连接建立之后,Tnsping工具然后就发送一个Oracle TNS 连接包给Oracle Listener,Listener然后就回应一个TNS 拒绝包(Refuse packet),在两个机器间的TCP/IP连接就结束了。从oracle 网络别名的解析到结束TCP/IP连接之间的总的耗费的时间就显示在tnsping命令的输出中。