首页技术文章正文

关于listener的一些理解

更新时间:2018-07-06 来源:黑马程序员JavaEE培训学院 浏览量:

在单机环境下,只启动数据库不会拉起listener。

一般先启动listener(lsnrctl start),再启动数据库(startup)数据库会自动将服务注册到监听

若现启动数据库,再启动监听,lsnrctl status 时可能没有服务,过几分钟等pmon自己注册监听或者 手动alter system register都可以

   若是等待数据库自己注册,但过几分钟,监听还是没有服务,就要看看端口号是不是1521,oracle默认注册 1521端口。此时手动注册即可

       如果想让数据库注册非1521端口,需要修改parameter 中local_listener的值

       alter system set local_listener = '(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.xxx)(PORT = 1522))' sid='orcl';

      说到local_listener,与之下相关的是remote_listener.官方文档对remote_listener这样解释

      REMOTE_LISTENER specifies a network name that resolves to an address or address list of Oracle Net remote listeners (that is, listeners that are not running on the same machine as this instance). The address or address list is specified in the TNSNAMES.ORA file or other address repository as configured for your system.

    实际上就是说,采用remote_listener参数可以实现数据库和listener的分离。不过我不知道这种分离有什么用,出于安全还是负载均衡。

    单机环境的remote_listener 一般为空。

rac环境下,listener是跟随集群crs启动的。而且数据库 rdbms的启动要依赖asm实例的资源,所以不存在启动数据库后,listener没启动,当然出现故障除外。

    rac下也有local_listener和remote_listener.

        local_listener是该节点的listener信息

        remote_listener一般是如下的信息

SQL> show parameter remote_listener


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
remote_listener                      string      scan:1521
在这里remote_listener应该是作为负载均衡来使用的。


本文版权归黑马程序员JavaEE学院所有,欢迎转载,转载请注明作者出处。谢谢!

作者:黑马程序员JavaEE培训学院

首发:http://java.itheima.com/

分享到:
在线咨询 我要报名
和我们在线交谈!