我是在linux虚拟机上安的Oracle 11g在windows 7上安的客户端。但是在cmd中进行tnsping orcl时出现了这个TNS-03505 无法解析名称这是怎么回事呢?下面是我的tnsnames.ora的内容
# tnsnames.ora Network Configuration File: /home/oracle/app/product/11.1.0/db_1/network/admin/tnsnames.ora# Generated by Oracle configuration tools. ORCL= #ORCL是服务名
   
(DESCRIPTION =
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.64.1)(PORT=1521))#在linux中HOST可以不改成IP,但是复制到客户端时要改成IP,所以可在此处修改后再复制
    
(CONNECT_DATA =
    
  (SERVER=DEDICATED)
    
  (SERVICE_NAME=orcl)
    
  )
   
)LISTENER_ORCLE =
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0))下面这个是sqlnet.ora的内容# sqlnet.ora Network Configuration File: d:\app\Administrator\product\11.1.0\client_3\network\admin\sqlnet.ora
# Generated by Oracle configuration tools.# This file is actually generated by netca. But if customers choose to  
# install "Software Only", this file wont exist and without the native  
# authentication, they will not be able to connect to the database on NT.SQLNET.AUTHENTICATION_SERVICES=(NTS)NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT)

解决方案 »

  1.   

    把tnsnames.ora里的多余的空格去掉
    开头的顶行写 不要空格
    首先确保你输入的数据库服务器的ip地址和数据库名都正确
    http://leonzhan.javaeye.com/blog/727057
      

  2.   

    空格去掉之后 就提示ADDRESS参数非法了
      

  3.   

    一个完整的listener.ora# listener.ora Network Configuration File: T:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora
    # Generated by Oracle configuration tools.SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = T:\app\Administrator\product\11.2.0\dbhome_1)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:T:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")
        )
      )LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
          (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        )
      )ADR_BASE_LISTENER = T:\app\Administrator一个完整的tnsnames.ora
    # tnsnames.ora Network Configuration File: T:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora
    # Generated by Oracle configuration tools.
    ORCL =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
    主要的问题在与tnsnames.ora上,你这个折腾对了就可以了。记得修改完之后,重新启动监听的说。
      

  4.   

    删除tnsnames.ora中先关内容后,最好用netca来重新创建
      

  5.   

    挖下啊。那个如果把localhost 改成ip 是不是就不能访问了啊