您的位置:首页 > 数据库 > Oracle

oracle TNS-03505: 无法解析名称错误

2015-08-14 20:01 1291 查看
安装Oracle完毕后,使用tnsping orcl测试服务

发现报错

[plain] view
plaincopy

C:\Documents and Settings\abc>tnsping orcl  

  

TNS Ping Utility for 32-bit Windows: Version 10.2.0.4.0 - Product  

2011 10:39:11  

  

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

  

已使用的参数文件:  

c:\oracle\product\10.2.0\db_1\network\admin\sqlnet.ora  

  

TNS-03505: 无法解析名称  

发现C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN目录下面就只有一个sqlnet.ora文件,缺少了配置连接数据库的连接字符串的TNSNAMES.ORA文件

从C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\SAMPLE目录下面拷贝一个TNSNAMES.ORA文件修改里面的参数配置如下

[plain] view
plaincopy

ORCL =  

  (DESCRIPTION =  

    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))  

    (CONNECT_DATA =  

      (SERVER = DEDICATED)  

      (SERVICE_NAME = orcl)  

    )  

  )  

  

EXTPROC_CONNECTION_DATA =  

  (DESCRIPTION =  

    (ADDRESS_LIST =  

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))  

    )  

    (CONNECT_DATA =  

      (SID = PLSExtProc)  

      (PRESENTATION = RO)  

    )  

  )  

再次执行tnsping orcl

[plain] view
plaincopy

C:\Documents and Settings\abc>tnsping orcl  

  

TNS Ping Utility for 32-bit Windows: Version 10.2.0.4.0 - Production on 17-11月-  

2011 11:04:58  

  

Copyright (c) 1997,  2007, 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 = 127.0.0.  

1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))  

OK (30 毫秒)  

PS:

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命令的输出中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 测试