我在客户现场将一台部署好Oracle机器的ip修改了,第二天开机时发现oracle监听没有自动启动,我手动启动oracle监听服务后再刷新服务列表,监听服务又变成未启动状态
我检查log日志中,发现记录的错误如下:TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-8月 -2010 11:38:49Copyright (c) 1991, 2005, Oracle.  All rights reserved.系统参数文件为F:\oracle\product\10.2.0\db_1\network\admin\listener.ora
写入F:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
写入F:\oracle\product\10.2.0\db_1\network\trace\listener.trc的跟踪信息
跟踪级别当前为0以 pid=3044 开始
监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
TNS-12557: TNS: 协议适配器不可加载
 TNS-12560: TNS: 协议适配器错误
  TNS-00527: 协议适配器不可加载
但是我查看了listener.ora和tnsnames.ora文件,里面使用的都是主机名,没有使用ip地址
listener.ora文件内容如下:
# listener.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = F:\oracle\product\10.2.0\db_1)
      (PROGRAM = extproc)
    )
  )LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = FNP8DB)(PORT = 1521))
    )
  )

tnsnames.ora文件内容如下:
# tnsnames.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = FNP8DB)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )请教大家如何解决这个问题,让oracle监听可以正常启动?

解决方案 »

  1.   

    我把listener.ora和tnsnames.ora中的两个主机名改成127.0.0.1和当前ip,均不起作用,log日志中错误仍相同:TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-8月 -2010 16:27:10Copyright (c) 1991, 2005, Oracle.  All rights reserved.系统参数文件为F:\oracle\product\10.2.0\db_1\network\admin\listener.ora
    写入F:\oracle\product\10.2.0\db_1\network\log\listener.log的日志信息
    写入F:\oracle\product\10.2.0\db_1\network\trace\listener.trc的跟踪信息
    跟踪级别当前为0以 pid=2240 开始
    监听该对象时出错: (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
    TNS-12557: TNS: 协议适配器不可加载
     TNS-12560: TNS: 协议适配器错误
      TNS-00527: 协议适配器不可加载
      

  2.   

    我删除了HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleTNSListener重启电脑,监听服务已没有,在cmd下执行c:\lsnrctl start,仍然遇到这个错。C:\Documents and Settings\Administrator>lsnrctl startLSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 03-8月 -2010 16:5
    4:54Copyright (c) 1991, 2005, Oracle.  All rights reserved.启动tnslsnr: 请稍候...TNS-12557: TNS: 协议适配器不可加载
     TNS-12560: TNS: 协议适配器错误
      TNS-00527: 协议适配器不可加载
    现在已没有监听服务了,还有其他方法没?这到底是什么问题啊?
      

  3.   

    重新建立一个监听服务,不是说你删除了就行了,
    要先删除再建一个你可以
    关闭oracleservice[SID] 服务
    用net configuration assistant 重新建立一个监听
    用net manager 重新配置一下链接
    然后,重新启动oracleservice[SID] 服务试试!!
      

  4.   

    建议,重新安装一下网络连接中的“tcp/ip 协议”;
    如果不行,可以重新设置一下系统的网络界面 netsh interface ip reset。
      

  5.   

    zhangcunhua,我关闭oracleservice[SID] 服务后,用net configuration assistant 先删掉原来的listener,再重新建立一个listener监听,没有修改net manager 中的默认配置,然后重启机器此时oracleservice[SID] 服务自动启动,服务列表中没有出现监听服务,我在cmd下执行c:\lsnrctl start,仍然遇到这个相同的错。我的重建监听的步骤有没有什么问题呀?
      

  6.   

    xman_78tom,我执行了netsh int ip reset命令,没有什么效果这到底是什么鬼问题啊
      

  7.   

    linux下的hosts文件中的计算机名和oracle监听中的必须一致
      

  8.   

    没有啊wangzf0916你也遇到这个问题了?
      

  9.   

    lz用的windows server 2003
    在hosts文件中只有一个127.0.0.1 映射到 localhost
    没有其他映射了
      

  10.   

    你的环境是Unix么,主要是IPC那个找不到,应该是通过Socket来通信的,而有可能这个Socket File已经被其他文件删除了,你可以尝试重建。/tmp/.oracle
    /tmp/o
    /var/tmp/.oracle
    建立 /var/tmp/.oracle 并授权给oracle,重起监听
      

  11.   

    -- *1). 确定你的计算机名跟 host 中的内容一致
    -- *2). 将 host 修改成小写试试(有时候好像是大、小写的问题)ORCL =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = FNP8DB)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      )
      )-------------------------------------------------------------ORCL =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = fnp8db)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
      )
      )
      

  12.   

    Jermaine,LZ使用的环境是windows2003,但是好像前天是换过一块网卡,难道是换了网卡导致的问题????如果是换了网卡导致IPC那个找不到,在windows2003下应该如何解决啊?????
    请高人援手!!!!
      

  13.   

    检查一下服务器 tcp/ip 驱动是否启动(sc query tcpip);是否可以访问网络;系统上的其他服务是否可以正确侦听端口(netstat -an);以排除操作系统问题。试试修改 listerner.ora : HOST = 0.0.0.0