当前位置:Oracle研究中心 > 故障案例 >
时间:2016-08-05 08:27 来源:Oracle研究中心 作者:惜分飞 点击: 次
在一台机器上装了9.2.0.4和10.1.0.4数据库,启动监听时候发现有一个启动不了
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracleplus.com)(PORT = 1522)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = oracleplus) (ORACLE_HOME = /u01/oracle/9.2.0/db_1) (SID_NAME = xff) ) )
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u02/app/oracle/db10g) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) ) (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = oracleplus.com)(PORT = 1521)) ) ) )
启动10g监听
[oraem@oracleplus ~]$ lsnrctl start LSNRCTL for Linux: Version 10.1.0.4.0 - Production on 12-JUN-2012 15:28:51 Copyright (c) 1991, 2004, Oracle. All rights reserved. Starting /u02/app/oracle/db10g/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 10.1.0.4.0 - Production System parameter file is /u02/app/oracle/db10g/network/admin/listener.ora Log messages written to /u02/app/oracle/db10g/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleplus.com)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 10.1.0.4.0 - Production Start Date 12-JUN-2012 15:28:51 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u02/app/oracle/db10g/network/admin/listener.ora Listener Log File /u02/app/oracle/db10g/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleplus.com)(PORT=1521))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
启动9i监听
[oracle@oracleplus ~]$ lsnrctl start LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 12-JUN-2012 15:01:44 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. Starting /u01/oracle/9.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 9.2.0.4.0 - Production System parameter file is /u01/oracle/9.2.0/db_1/network/admin/listener.ora Log messages written to /u01/oracle/9.2.0/db_1/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleplus.com)(PORT=1522))) 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 Listener failed to start. See the error message(s) above...
这里很奇怪两个监听使用不同的端口,为什么不能提示Address被占用呢,难道9i的已经启动了
[oracle@oracleplus ~]$ lsnrctl status LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 12-JUN-2012 15:02:23 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracleplus)(PORT=1522))) TNS-12541: TNS:no listener TNS-12560: TNS:protocol adapter error TNS-00511: No listener Linux Error: 111: Connection refused Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))) TNS-12618: TNS:versions are incompatible
9i监听不能启动原因
这里有重大发现TNS:versions are incompatible.我这台服务器只有一个9i和一个10g的数据库出现版本不兼容,那就是说这个命令可能访问了10g的库中的每个监听信息.继续往上看,发现(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC))).
When a process is on the same machine as the server, use the IPC protocol for connectivity instead of TCP. Inner Process Communication on the same machine does not have the overhead of packet building and deciphering that TCP has.
通过这段话可以看出IPC(Inner Process Communication)是使用于本机的内部通讯,不用包的封装,可以很大程度上提高程序执行效率.看到上面的IPC提示,我们可以确定该错误是因为10g中已经启用了IPC,然后9i的监听也要来启动这个,从而导致该错误.
因为在同一个机器上,只能其中的一个数据库启用IPC.修改9i的监听配置
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1522)) ) # (ADDRESS_LIST = # (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)) # ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/oracle/9.2.0/db_1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = oracleplus) (ORACLE_HOME = /u01/oracle/9.2.0/db_1) (SID_NAME = xff) ) )
启动9i监听
[oracle@oracleplus ~]$ lsnrctl LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 12-JUN-2012 15:12:55 Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> start Starting /u01/oracle/9.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 9.2.0.4.0 - Production System parameter file is /u01/oracle/9.2.0/db_1/network/admin/listener.ora Log messages written to /u01/oracle/9.2.0/db_1/network/log/listener.log Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleplus.com)(PORT=1522))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 9.2.0.4.0 - Production Start Date 12-JUN-2012 15:12:57 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security OFF SNMP OFF Listener Parameter File /u01/oracle/9.2.0/db_1/network/admin/listener.ora Listener Log File /u01/oracle/9.2.0/db_1/network/log/listener.log Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracleplus.com)(PORT=1522))) Services Summary... Service "PLSExtProc" has 1 instance(s). Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service... Service "oracleplus" has 1 instance(s). Instance "xff", status UNKNOWN, has 1 handler(s) for this service... The command completed successfully
查看两个监听进程
[oracle@oracleplus ~]$ ps -ef|grep tns|grep -v grep oraem 18099 1 0 13:27 ? 00:00:00 /u02/app/oracle/db10g/bin/tnslsnr LISTENER -inherit oracle 24312 1 0 15:12 pts/0 00:00:00 /u01/oracle/9.2.0/db_1/bin/tnslsnr LISTENER -inherit
--------------------------------------ORACLE-DBA----------------------------------------
最权威、专业的Oracle案例资源汇总之【案例】Oracle报错TNS-12618 多版本监听LISTENER程序共享无法启动
本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/929.html
Powered by Oracle研究中心 OraclePlus Inc.
BY DedeCMS 京ICP备14022373号-5
声明:Oracle研究中心部分文章源自互联网,转载均按原文作者要求转载,如有疑问联系QQ:1026002015,协商未果24小时删除。