关于listener,你知道多少?
发布于:2018-07-09   作者:admin   浏览:693次

  在单机环境下,只启动数据库不会拉起listener。一般先启动listener(lsnrctlstart),再启动数据库(startup)数据库会自动将服务注册到监听,若现启动数据库,再启动监听,lsnrctlstatus时可能没有服务,过几分钟等pmon自己注册监听或者手动altersystemregister都可以。若是等待数据库自己注册,但过几分钟,监听还是没有服务,就要看看端口号是不是1521,oracle默认注册1521端口。此时手动注册即可。

关于listener,你知道多少?

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

  altersystemsetlocal_listener='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.56.xxx)(PORT=1522))'sid='orcl';

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

 REMOTE_LISTENERspecifiesanetworknamethatresolvestoanaddressoraddresslistofOracleNetremotelisteners(thatis,listenersthatarenotrunningonthesamemachineasthisinstance).TheaddressoraddresslistisspecifiedintheTNSNAMES.ORAfileorotheraddressrepositoryasconfiguredforyoursystem.

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

  单机环境的remote_listener一般为空。

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

  rac下也有local_listener和remote_listener.

  local_listener是该节点的listener信息

  remote_listener一般是如下的信息

  SQL>showparameterremote_listener