现象:
1、tnsping 主机名
   tnsping SID 都可以通
2、sqlplus "sys/syspassword as sysdba" 可以连上,用其它用户名也可以连上。
3、sqlplus username/password@SID  连接没有响应。
目前配置
win XP + oracle 10.2.0
sqlnet.ora:
SQLNET.AUTHENTICATION_SERVICES= (NTS)   (这句存在与否都出现一样的问题)
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = d:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = BRAVO)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )
tnsnames.ora
LOGDB1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = BRAVO)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = LOGDB1)
    )
  )
EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
其中BRAVO为主机名,LOGDB1为SID

解决方案 »

  1.   

    你的问题我已经遇到过3次了。
    第一次通过重新安装oracle的em组件解决了。
    第二次、第三次都没有找到原因,最后没有办法直接重新安装了操作系统,重新安装oracle解决的。
    企盼能够解决。
      

  2.   

    sqlplus username/password@SID@部分不是SID,而是你在tnsnames.ora中定义的本地服务名,即
    中的第一行 LOGDB1。
      

  3.   

    建议楼主研究一下 oracle 中几个名称的定义:
    数据库名称 DB_NAME
    数据库域 DB_DOMAIN
    数据库服务名 SERVICE_NAME
    实例名称 instacne name
    系统标识符 SID
    本地服务名 local service name
      

  4.   

    tnsping sid没有问题,证明就不是你说的原因。我第一次遇到这个问题时,发的帖子如下:
    http://www.itpub.net/805159,1.html第二、三次就无法通过这个方法解决。应该还是没有找到问题的根源。大家继续
      

  5.   

    sqlplus user/passwd@LOGDB1
    这后面是使用tnsnames里面的这个
    不是SIDsqlplus "sys/syspassword as sysdba" 可以连上,用其它用户名也可以连上。 
    这是应为你的系统环境里面已经定义了默认的.
    可以在cmd中使用export 查看
      

  6.   

    上面的写错了~~windows使用的是set来看环境变量
      

  7.   

    我来说二点,
    第一、上面应该是Server_Name,而不是SID,不过在这里Server_Name和SID一样,所以暂时可以先不讨论。第二、我看到之前有个牛人,说了类型的问题,不过解答不够详细。。
          我也帖出来。
    /*********************************************/
    4 楼chanet(牧师)回复于 2003-02-22 16:51:09 得分 50或者:  
       
      {转。。}  
      Oracle启动时,监听器不启动或打开出错?    
         
      软件环境:    
      1、Windows   NT4.0+ORACLE   8.0.4  
      2、ORACLE安装路径为:C:\ORANT  
       
      错误现象:    
      1、ORACLE启动时,监听器不启动或打开出错  
      2、服务器端:用username/password登录正常,但用username/password@alias登录不成功  
      3、客户端:用username/password@alias登录不成功  
       
      解决方法:    
      1、如果是因为修改了NT的机器名,则把listener.ora文件中的host参数全部改为新的NT机器名,  
      重新启动OracleTNSListenr80服务即可。  
        例如:    
        LISTENER   =  
        (ADDRESS_LIST   =  
        (ADDRESS   =   (PROTOCOL   =   TCP)(Host   =   NT_Name)(Port   =   1521))  
        (ADDRESS   =   (PROTOCOL   =   TCP)(Host   =   NT_Name)(Port   =   1526))  
        )  
      2。使用监听器实用程序:LSNRCTL80.exe  
      3。检查监听器参数文件:c:\orant\NET80\admin\listener.ora  
      4。检查监听器日志文件:c:\orant\NET80\log\listener.log  
      5。Tnsnames.ora文件配置错误,重新配置。    
      6。检查client   端   Tnsnames.ora   
      

  8.   

    用这个试试:
    username/password@SID_机器名如果不行,建议查看netmanager,重新配置一下