ITPub博客

首页 > 数据库 > Oracle > 关于local_listener、remote_listener、current_listener

关于local_listener、remote_listener、current_listener

原创 Oracle 作者:ora_erin 时间:2013-11-26 16:48:18 0 删除 编辑

--整理以前的学习笔记

1、local_listener
local_listener参数的作用!
pmon只会动态注册port等于1521的监听,否则pmon不能动态注册listener,要想让pmon动态注册listener,需要设置

local_listener参数。

配置了两个listener(listener.ora)
LISTENER2 =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = mylinux)(PORT = 1522))
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = mylinux)(PORT = 1521))
    )
  )
 
alter system set local_listener=listener2;
alter system set local_listener=listener2
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER2'

需要在tnsnames.ora中配置过才行(tnsnames.ora)
LISTENER2 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = mylinux)(PORT = 1522))
  )
(这里的"listener2"的名字不一定要与监听器(listener2)的名字相同,但是要与local_listener的参数值相同)

alter system set local_listener=listener2;--现在就可以成功执行了,此处local_listener由名称指定,
只有将此名称解析为地址,实例才能找到侦听器并执行注册

当然也可以在参数中硬编码侦听器的地址
alter system set local_listener='(ADDRESS = (PROTOCOL = TCP)(HOST = mylinux)(PORT = 1522))';

此时如果把两个监听器都打开
lsnrctl start listener
lsnrctl start listener2

再启动实例startup

可以看到实例注册的是listener2这个监听

2、remote_listener用在RAC环境中,监听器与实例不在同一台机器上
待以后补上

3、current_listener当前监听器
先使用lsnrctl命令来进入监听器,再设置当前监听器
LSNRCTL> set current_listener listener2
Current Listener is listener2
那么接下来的stop start status等命令都是针对当前监听器listener2

如果不设置的话那么进入监听器之后默认的监听器是listener

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26524307/viewspace-1061151/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-04-16

  • 博文量
    37
  • 访问量
    655209