大家好,详细情况如下:
服务器数据库的版本是oracle 9i,(操作系统solaris 10),客户端是enterprise manager console (10g client),操作系统windows 2003server,从客户端用enterprise manager console 能够正常连接数据库,并且在上面增删表空间都okey.
尝试使用tnsping 也正常,但是使用sqlplus进行连接的时候,总是报错"ORA-12154: TNS:could not resolve the connect identifier specified"详细信息如下
客户端的
tnsnames.ora
# tnsnames.ora Network Configuration File: d:\oracle\product\10.2.0\client_2\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.NETSERVICE =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.168.5)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = netservice)
    )
  )MAOMI =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.168.5)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = dev920)
      (SERVER = DEDICATED)
    )
  )DEV920_172.16.168.5 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.168.5)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = dev920)
      (SERVER = DEDICATED)
    )
  )
sqlnet.ora# SQLNET.ORA Network Configuration File: /oracle/product/9.2.0/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
SQLNET.AUTHENTICATION_SERVICES= (NONE,NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
服务器端的
listener.ora
# LISTENER.ORA Network Configuration File: /oracle/product/9.2.0/network/admin/listener.ora
# Generated by Oracle configuration tools.LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = oraserver)(PORT = 1521))
      )
    )
  )SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /oracle/product/9.2.0)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = dev920)
      (ORACLE_HOME = /oracle/product/9.2.0)
      (SID_NAME = dev920)
    )
  )tnsnames.ora
# TNSNAMES.ORA Network Configuration File: /oracle/product/9.2.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.maomi =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oraserver)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = dev920 )
    )
  )INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oraserver)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = SHARED)
      (SERVICE_NAME = MODOSE)
      (PRESENTATION = http://HRService)
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )$sqlnet.ora
# SQLNET.ORA Network Configuration File: /oracle/product/9.2.0/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)/etc/hosts
$ cat /etc/hosts
#
# Internet host table
#
::1     localhost
127.0.0.1       localhost
172.16.168.5    oraserver       loghost

解决方案 »

  1.   

    C:\Documents and Settings\Administrator>tnsping maomiTNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 26-8月 -
    2008 19:09:12Copyright (c) 1997, 2005, Oracle.  All rights reserved.已使用的参数文件:
    d:\oracle\product\10.2.0\client_2\network\admin\sqlnet.ora
    已使用 TNSNAMES 适配器来解析别名
    Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
    (HOST = 172.16.168.5)(PORT = 1521))) (CONNECT_DATA = (SID = dev920) (SERVER = DE
    DICATED)))
    OK (40 毫秒)C:\Documents and Settings\Administrator>sqlplus "sys/manager@maomi as sysdba"SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 26 19:09:35 2008Copyright (c) 1982, 2005, Oracle.  All rights reserved.ERROR:
    ORA-12154: TNS:could not resolve the connect identifier specified
      

  2.   

    我也有同样的问题:http://blog.sina.com.cn/s/blog_3f2ef1180100aikc.html
      

  3.   

    其他的可以连吗?其他的tnsping可以ping得通吗?ping 172.16.168.5 -t  -- 这个应该可以ping通吧?
      

  4.   

    谢谢大家的关注C:\Documents and Settings\Administrator>ping 172.16.168.5 -tPinging 172.16.168.5 with 32 bytes of data:Reply from 172.16.168.5: bytes=32 time=1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    Reply from 172.16.168.5: bytes=32 time<1ms TTL=255
    问题还没解决,准备到外网用鸟语请教下高手
      

  5.   

    看了ldy兄的blog,说解决方法如下,
    解决问题过程:    1.卸载原来安装的客户端,重新安装。无效
        2.认为可能是网段限制,调整客户端网段,与能正常连接的在同一网段。无效
        3.认为可能是域用户限制,用本机管理员登录。无效
        4.卸载客户端后,删除注册表HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE键值,删除安装目录(需重启)。使用本机管理员重新安装客户端,且选择【管理员】模式。此前安装的是【运行时】模式。大概意思是客户端软件没装好导致的问题,
    我准备把客户端重装再测试一下看下结果
      

  6.   

    感谢ldy兄,我把oracle 客户端完全删除了,
    再重装后问题解决了,
    因为第一次安装客户端client1的时候没装好,结果直接用client2连的.完全删除oracle client 时候,
    发现有一个文件oci.dll怎么也删除不了,
    总是提示"文件不能删除,请检查是否被用",我重启电脑后还是删除不了.
    用net stop msdtc 
    再删除就okey了删除后再用sqlplus连接就成功了