oracle 双监听器启动时报tns-01106错误
oracle 双监听器启动时报tns-01106错误
环境:
在一台主机上有两个oracle用户,每个用户装有一个数据库实例,分别有各自的监听名
在启动一个监听后,然后再启动另外一个监听时报TNS-01106错误
oracle@p570 admin]$lsnrctl start listener2
LSNRCTL for IBM/AIX RISC System/6000: Version 10.2.0.2.0 - Production on 04-JUN-2008 11:08:59
Copyright (c) 1991, 2005, Oracle. All rights reserved.
TNS-01106: Listener using listener name LISTENER has already been started
每个用户的listener.ora配置如下:
SID_LIST_gztest =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /ora_tygk/app/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = gztest)
(ORACLE_HOME = /ora_tygk/app/product/10.2.0/db_1)
(SID_NAME = gztest)
)
)
gztest =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 100.168.80.35)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
SID_LIST_song=
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /ora_ywgl/app/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = song)
(ORACLE_HOME = /ora_ywgl/app/product/10.2.0/db_1)
(SID_NAME = song)
)
)
song =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 100.168.80.51)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
主要原因:song和gztest的key为EXTPROC0相同导致,所以有一个启动了,会导致另外一个启动不了
解决方法:
把其中一个listener的key=EXTPROC0改为key=EXTPROC1,或者去掉这一行
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
两个监听启动都正常。