各位同志好,小弟在服务器(192.168.6.4)上面安装了Oracle 10g Enterprise,却无法在客户端计算机上用SQL Plus连上去,SQL Plus的错误讯息是 ORA-12154 无法解析指定的联机ID,请各位大哥帮帮忙,看是哪里出错了。服务器平台 Windows Server 2003 R2
客户端平台 Windows XP SP3
服务器
listener.oraSID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.4)(PORT = 1521))
    )
  )
tnsnames.oraREGALORA =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.4)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = regalora.com)
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )客户端
listener.oraSID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oracle\product\10.2.0\client_1)
      (PROGRAM = extproc)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.4)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )
tnsnames.oraREGALORA.COM =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.4)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = regalora)
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(Key = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = regalora)
      (PRESENTATION = RO)
    )
  )

解决方案 »

  1.   

    1、你建的库呢?
    2、客户端不需要listener.ora
    3、regalora这个servicename或者SID在服务器端的listener.ora里面没有啊。
       是否已经建立了这个库了呢?
      

  2.   


    doer_ljy 大哥你好:
    回答大哥的问题
    1.我安装好服务器端Oracle的时候,系统就有帮我建立好数据库了
    2.请教大哥客户端为何不用listener.ora
    3.确定数据库有建立完毕,Oracle还有告诉我全域数据库名称与SID,请问我要如何修改服务器端的listener.ora
      

  3.   

    你再服务器端能连的上去把?客户端的:
    REGALORA.COM =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.4)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = regalora)《===========怎么和服务端的不一样?
        )
      )客户端不需要配置监听、。
      

  4.   

    你在客户端登陆时的连接字符串要用REGALORA.COM才行哦。
      

  5.   

    你的客户端的TNSNAMES.ORA文件配置不正确.
    你可以试一下:REGALORA= 
      (DESCRIPTION = 
        (ADDRESS_LIST = 
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.6.4)(PORT = 1521)) 
        ) 
        (CONNECT_DATA = 
          (SERVICE_NAME = regalora.com) 
      ) 并且检查一下客户端的SQLNET.ORA文件,看一下这个文件里面是否有默认域的设置,如果有,可以将其不要.
      

  6.   

    客户端和服务器端的service要一样。。
      

  7.   

    不知道问题解决了没有?
    首先,在服务期端需要配置listener.ora即配置监听,你可以这样理解:就是配置Oracle始终监视一个端口,这个端口就是客户端访问时介入的端口。所以,客户端tnsname.ora中配置的服务器端口一定要与服务器端listener.ora中配置的一样。默认的是1521。
    其次,oracle客户端根据客户段本地的tnsname.ora中的配置得知服务器的IP、监听端口号、数据库名(这里指SID或者servicename),所以客户端是不需要listener.ora的。
    最后,你的问题所在是你服务端的listener.ora中的配置和客户端的tnsname.ora不一致。
    甚至服务器端的listener.ora和服务器上的客户端配置tnsname.ora中的内容也不一致。
    这个问题需要你自己去查查到底哪个是对的。
    只要统一了,连接应该是没有问题的。