Oracle Listener的动态注册

在有Oracle Listener的动态注册之前,采用的是静态注册,所谓静态注册是指Oracle实例在启动时 ,读取listener.ora里的配置,然后注册到Listener,它主要有两个缺点:

1. Listener不知道Oracle实例的实时状态

2. listener.ora里的配置比较麻烦,常需要手动修改。

动态注册

所谓动态注册是指Oracle实例启动后,会通过pmon进程实时的把实例状态和参数 (instance_name,service_name)同步给Listener,其中参数instance_name如果为空,则默认为SID,参 数service_name如果为空,则默认为db_name.db_domain

有了动态注册之后,我们甚至不需要listener.ora,这时命令lsnrctl start将启动默认的Listener (TCP协议、1521端口,Service和Instance分别来自参数service_name和instance_name。

这里有一个小tip:pmon并不是真正实时同步Oracle实例至Listener,而是隔几十秒,但你可以通过 alter system register命令手动同步。

下面我们来看一个例子:

在这个例子里,我们没有配置listener.ora,listener.ora启动后的状态如下:

STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                18-SEP-2013 16:58:01
Uptime                    0 days 0 hr. 12 min. 54 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Log File         /opt/oracle/diag/tnslsnr/data/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.15)(PORT=1521)))
Services Summary...
Service "orcl.localdomain" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

instance_name和service_names参数配置如下:

SQL>show parameter instance_name  

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
instance_name                        string      orcl
SQL>show parameter service_name  

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      orcl.localdomain

从上面我们可以发现:Listener里的Service、Instance是和instance_name、service_names参数相 对应。这里需要特别说明的是:参数service_names可以指定多个service_name,它们之间用逗号隔开 。

在客户端tnsnames.ora里我们可以设置SID等于instance_name:

test =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))
    )
    (CONNECT_DATA =
      (sid = orcl)
    )
  )

也可以设置service_name等于services_names中的任意一个:

test =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.15)(PORT = 1521))
    )
    (CONNECT_DATA =
      (service_name = orcl.localdomain)
    )
  )

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索oracle
, 实例
, 参数
, listener
, 注册
, oracle listener
, listen
, listener静态注册
, oracle静态注册
, 启动instance
, 动态注册
listeners
oracle动态注册监听、oracle 动态注册、oracle单机 动态注册、oracle 动态注册失败、oracle listener.ora,以便于您获取更多的相关知识。

时间: 2024-08-01 14:07:53

Oracle Listener的动态注册的相关文章

再说Oracle Listener动静态注册

监听器Listener是Oracle Client Process和实例远程建立连接关系的必经之路.借助Listener,Client Process可以实现和一个特定的Server Process建立连接关系,开启Session会话,操作Oracle Instance.   在Oracle体系中,Listener是一个独立的进程.Listener的运行是独立于Oracle实例的.在Windows或者Unix/Linux架构中,监听器都是被实现为一个独立的系统进程Process.监听器在工作中,

Oracle Listener 动态注册 与 静态注册_oracle

一.什么是注册 注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到数据库.这个服务名可能与实例名一样,也有可能不一样. 在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务.) 相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对应的服务名(一个数据库可能对应有多个服

Oracle数据库动态注册和参数local_listener的使用方法

从Oracle8i版本开始,在oracle数据库当中,应用如果没有特殊需求的话,数据库监听不需要做出配置,oracle把这种方法称为动态注册.所谓动态注册,oracle通过PMON进程根据参数instance_name和service_names中的内容,把oracle数据库的信息注册到默认的1521端口的监听器上.不管服务器端有几个监听程序,oracle默认都是注册到1521端口的监听器,也就是说,对于其他端口的监听器来说,如果想要正常的识别远程客户端提供的信息,需要做出配置,也就是静态注册.

ORACLE 动态注册和静态注册的区别(转)

1, oracle 10g 用netca方式建立的都默认为动态注册方式2,如果想改为静态注册的方式则在listener.ora 中加入如下内容即可 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1) (PROGRAM = extproc) ) (SID_DESC = (SID_NAME = JEFF ) (OR

Oracle静态注册与动态注册详解_oracle

一.概述: Oracle的注册就是将数据库作为一个服务注册到监听程序.客户端不需要知道数据库名和实例名,只需要知道该数据库对外提供的服务名就可以申请连接到这个数据库.这个服务名可能与实例名一样,也有可能不一样. 在数据库服务器启动过程中,数据库服务器会向监听程序注册相应的服务(无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务.) 相当于是这样:在数据库服务器和客户端之间有一监听程序(Listener),在监听程序中,会记录相应数据库对应的服务名(一个数据库可

oracle listener知识总结

一.动态注册 监听的动态注册就是实例启动的时候PMON进程根据初始化参数文件中的instance_name,service_names两个参数来动态注册监听. 注意,如果在RAC中配置,必须将集群中每个实例的instance_name参数设置为一个唯一的值. 采取动态注册方法时,listener.ora中的内容: SID_LIST_LISTENER = (SID_LIST =  (SID_DESC =    (SID_NAME = CLRExtProc)    (ORACLE_HOME = F:

[20160711]关闭监听的动态注册.txt

[20160711]关闭监听的动态注册.txt --这个我给别人解决dg日志不应用的问题.问题是没有设置静态注册,又关闭动态注册.自己还第一次知道存在这个参数 --DYNAMIC_REGISTRATION_LISTENER = off --再测试环境重复测试,做1个记录: 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER ------------------------------

一次访问问题排查-涉及TNS-03505、ORA-12154、TNS-12560、动态注册、防火墙、tnsping跟踪等

建了一个库,想通过Oracle Net访问,需要配置监听器和tnsnames.ora,接下来碰到一系列的问题... 1. 添加监听器配置,listener.ora文件默认包括: LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))     )   ) ADR_BASE_LISTENER = /opt/app/ora1

第十六章_动态注册和Servlet容器初始化

16.1.动态注册 为了使动态注册成为可能,ServletContext接口中还添加了以下方法,用来动态地创建Web对象: <T extends Filter>createFilter(Java.lang.Class<T> clazz) <T extends java.util.EventListener> createListener(java.lang.Class<T> clazz) <T extends Servlet> createSer