在一台机器配置两个listener(Oracle)

在一台机器配置两个listener(Oracle)
本文出自: 作者: (2001-07-22 18:27:31)
问题:一台机器同时装两套数据库时(实例名o8161,o8151),无法同时启动两个listener,
当启动第二个listener时,显示错误。

$ lsnrctl start

LSNRCTL for IBM/AIX RISC System/6000: Version 8.1.5.0.0 - Production on 14-SEP-00 09:25:17

(c) Copyright 1998 Oracle Corporation. All rights reserved.

TNS-01106: Listener using listener name LISTENER has already been started

$ oerr tns 1106
01106, 00000, "Listener using listener name %s has already been started"
// *Cause: Another listener is already listening on one of the ADDRESSes
// specified.
// *Action: Shutdown the previous listener specified by the listener name
// before starting this one.

问题产生原因:
两个实例的LISTENER.ORA中IPC协议的KEY是相同,而一个系统中KEY必须是唯一的.  

解决办法:
修改key的值即可。修改后的文件信息:
o8161实例:(没有修改)
# LISTENER.ORA Configuration File:/oracle/dbs/opstemp/szpcac1/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = loopback)(PORT = 1521))
)
)
(DESCRIPTION =
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
(ADDRESS = (PROTOCOL = TCP)(HOST = loopback)(PORT = 2481))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle)
(PROGRAM = extproc)
)
(SID_DESC =
(ORACLE_HOME = /oracle)
(SID_NAME = o8161)
)
)

08151实例:(经过修改)

# LISTENER.ORA Configuration File:/ora815/network/admin/listener.ora
# Generated by Oracle Net8 Assistant

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = TESTo815))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = loopback)(PORT = 1526))
)
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = ora8151)
(ORACLE_HOME = /ora815)
(PROGRAM = extproc)
)
)