Oracle 11g 和 12c 在同一台 Windows 机器上,12c 侦听器无法启动

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/24157916/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 02:23:14  来源:igfitidea点击:

Oracle 11g and 12c on same windows machine, 12c listener fails to start

oraclelisteneroracle12c

提问by Paprika And Sur

I have a windows machine with Oracle 11g already installed on it and ORACLE_HOME pointing to the home of 11g. I then tried installing 12c. While installing, the installer asked me to unset the environment variable and re-run the installer. I did that. Then the installation worked fine. Just one hiccup was when the installer went on for net configuarion, it failed. I did a 'retry' and it completed successfully. When the installation was completely done, I found that the oracle database service for 12c was running, but listener was not. I tried starting the service and got a message saying 'it started and stopped'. I then searched all around the net and found various advises. Tried lot of them but not able to get the listener running.

我有一台装有 Oracle 11g 的 Windows 机器,并且 ORACLE_HOME 指向 11g 的主目录。然后我尝试安装 12c。安装时,安装程​​序要求我取消设置环境变量并重新运行安装程序。我就是这么做的。然后安装工作正常。只有一个小问题是当安装程序继续进行网络配置时,它失败了。我做了一次“重试”,它成功完成。安装完成后发现12c的oracle数据库服务在运行,而listener却没有。我尝试启动该服务并收到一条消息,提示“它已启动并已停止”。然后我在网上到处搜索,找到了各种建议。尝试了很多,但无法让监听器运行。

The current state is, my ORACLE_HOME is set to the 12c home. and when do lsnrctl start, I'm getting this error..

目前的状态是,我的ORACLE_HOME设置为12c家。什么时候 lsnrctl 启动,我收到这个错误..

C:\Users\Administrator>lsnrctl start
LSNRCTL for 64-bit Windows: Version 12.1.0.1.0 - Production on 11-JUN-2014 02:00:42
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
Starting tnslsnr: please wait...
Failed to start service, error 0.
TNS-12560: TNS:protocol adapter error

What an I doing wrong?

我做错了什么?

Here's listener.ora...

这是listener.ora...

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\app\Administrator\product.1.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\app\Administrator\product.1.0\dbhome_1\bin\oraclr12.dll")
    )
  )


LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1522))
      (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname.domain.com>)(PORT = 1522))
    )
  )

and here's tnsnames.ora...

这是 tnsnames.ora ...

MY12C =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = <hostname.domain.com>)(PORT = 1522))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = MY12C)
    )
  )


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

回答by Pavan Bhatt

Please try to check weather old listener of oracle 11G is currently running or not.

请尝试检查 oracle 11G 的 Weather old listener 当前是否正在运行。

or

或者

run netca from oracle 12C and then create listener with different name and different port from oralce 11G.

从 oracle 12C 运行 netca,然后从oralce 11G 创建具有不同名称和不同端口的侦听器。