1.目标
在RAC环境,通过编辑Grid home/Oracle Home里的listener.ora文件来增加一个listener,并使用lsnrctl启动这个新的listener,它上面看不到服务。
或者尝试通过srvctl启动由编辑listener.ora文件这种方式手动增加的listener时,报如下错误
PRCR-1001 : Resource ora<listener_name>.lsnr does not exist
2.解决方案
首先需要要想到的是,从11gR2以后已经不推荐在GI环境通过lsnrctl 来管理监听器了。
由编辑listener.ora文件这种方式手动增加监听器不会在GI一级增加listener资源,因此通过srvctl启动这个监听器会报 “PRCR-1001 : Resource ora<listener_name>.lsnr does not exist”
- 以下是在GRID HOME里增加新的listener并同时指定一个非默认端口的做法:
-
将ORACLE_HOME 指向 Grid home
-
举例来说,要增加的监听器叫 LISTENER_GRID,它使用端口 1522
srvctl add listener -listener LISTENER_GRID -p “TCP:1522” -o $ORACLE_HOME
- 执行如下命令以启动新创建的监听器
srvctl start listener -l LISTENER_GRID
- 如您希望在 RDBMS Home 里,用Server control utility(srvctl) 追加新的监听器,您可以这样做:
-
将ORACLE_HOME 指向 RDBMS HOME
-
举例来说,要增加的监听器叫 LISTENER_RDBMS,它使用端口 1523
srvctl add listener -listener LISTENER_RDBMS -p “TCP:1523” -o $ORACLE_HOME
- 执行如下命令以启动新创建的监听器
srvctl start listener -l LISTENER_RDBMS
注意: 您仍然能使用 lsnrctl 来检查注册到该监听器里的services




