你使用的是 IPC 协议,不过好像是你的连接串不正确,导致了地址被占用,你试试换个端口或者将监听协议进行修改试试,另外在 %OracleHome%/admin/network/ 目录下有一个 listener.ora 文件,你看看该文件是否正确

解决方案 »

  1.   

    帖下listener.ora
    看来是有重复的项目
      

  2.   

    # LISTENER.ORA Network Configuration File: /opt/oracle/product/9.2.0/network/admin/listener.ora
    # Generated by Oracle configuration tools.LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
          )
          (ADDRESS_LIST =
            (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver )(PORT = 1521))
          )
        )
      )SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = /opt/oracle/product/9.2.0)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (GLOBAL_DBNAME = sms)
          (ORACLE_HOME = /opt/oracle/product/9.2.0)
          (SID_NAME = sms)
        )
      )
      

  3.   

    谢谢zealot_zk(风中追风) 
    ------------------------
    你使用的是 IPC 协议,不过好像是你的连接串不正确,导致了地址被占用,你试试换个端口或者将监听协议进行修改试试,----------------
    具体怎么操作,能告之吗?
      

  4.   

    谢谢ern(学习Oracle) --------------------
    我是初学者,请多指教!
      

  5.   

    为支持extproc外部调用,你的服务端的tnsnames.ora中要加入:
    EXTPROC_CONNECTION_DATA,EXTPROC_CONNECTION_DATA.WORLD=
    ( DESCRIPTION=
      (ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
      (CONNECT_DATA=(SID=PLSExtProc))
    )
      

  6.   

    没什么问题吧~~~提示显示你的监听已经启动了,不需要重复启动.如果确实有问题.你可以先
    lsnrctl stop 监听,然后再lsnrctl start再看看提示如何...
      

  7.   

    tnsnames.ora中加入以下一段试试:
    EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)))
        (CONNECT_DATA =(SID = PLSExtProc))
      )
      

  8.   

    “Log messages written to /opt/oracle/product/9.2.0/network/log/listener.log”
    还是先看一下日志里面记录了什么错误再说吧~
      

  9.   

    /opt/oracle/product/9.2.0/network/log/listener.log日志显示信息如下:
    -------------------------------------------------TNSLSNR for Linux: Version 9.2.0.1.0 - Production on 13-APR-2004 14:02:29Copyright (c) 1991, 2002, Oracle Corporation.  All rights reserved.System parameter file is /opt/oracle/product/9.2.0/network/admin/listener.ora
    Log messages written to /opt/oracle/product/9.2.0/network/log/listener.log
    Trace information written to /opt/oracle/product/9.2.0/network/trace/listener.trc
    Trace level is currently 0Started with pid=4251
    Error listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
    TNS-12542: TNS:address already in use
     TNS-12560: TNS:protocol adapter error
      TNS-00512: Address already in use
       Linux Error: 98: Address already in use
    13-APR-2004 14:02:29 * 12502
    TNS-12502: TNS:listener received no CONNECT_DATA from client
    13-APR-2004 14:06:22 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=dbserver)(USER=oracle))(COMMAND=status)(ARGUMENTS=64)(SERVICE=LISTENER)(VERSION=153092352)) * status * 0
    13-APR-2004 14:08:30 * service_update * sms * 0
    13-APR-2004 14:18:32 * service_update * sms * 0
    13-APR-2004 14:28:34 * service_update * sms * 0
    13-APR-2004 14:58:39 * service_update * sms * 0
      

  10.   

    谢谢各位 
    回复:ycbao(ycbao) 
    -----------------------
    在tnsnames.ora中有以下一段
    EXTPROC_CONNECTION_DATA =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
        )
        (CONNECT_DATA =
          (SID = PLSExtProc)
          (PRESENTATION = RO)
        )
      )
      

  11.   

    最简单的办法,就是从主机注册表中先把监听删除:HKEY_LOCALE_MACHINE->SYSTEM->CONTROLSETT里,然后重新启动,然后启动监听:lsnrctl start
      

  12.   

    回复人: 谢谢大家,谢谢cqsun(夏) 
    ----------------
    我前面已经提示了,安装数据库的系统是Linux Redhat 9.0 
    没有这HKEY_LOCALE_MACHIN
      

  13.   

    在/opt/oracle/product/9.2.0/network/log/listener.log日志里,出错误的提示:TNS-12560: TNS:protocol adapter error
    TNS-00512: Address already in useLinux Error: 98: Address already in use
      

  14.   

    /opt/oracle/product/9.2.0/network/log/listener.log日志
      

  15.   

    你的IP地址配置的是否正确?如果没有使用什么网关系统,可以把IPC协议的地址删除试一下