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
Oracle 11g and 12c on same windows machine, 12c listener fails to start
提问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 创建具有不同名称和不同端口的侦听器。