在12c以前的版本中服务注册一直都是PMON进程负责, 从12c起引入了LREG (listener registration)后台进程接管了这部分工作,减轻PMON的工作,同样如果LREG 进程死了实例也会crash.
As with PMON in pre-12c versions, LREG (during registration) process provides the listener with information about the following:
* Names of the database services provided by the database
* Name of the database instance associated with the services and its current and maximum load
* Service handlers (dispatchers and dedicated servers) available for the instance, including their type, protocol addresses, and current and maximum load (for LBA)
listener没有启动LREG进程不能注册服务,LREG但是会每60秒尝试注册,如果local_listener没有配置,LREG会尝试连接默认的1521端口,直到监听进程启动, 如果Listener启动后LREG周期注册前,同样也可以使用”alter system register”立即注册服务.litener的注册信息可以使用listener_registration event dump在lreg trace中. 一个题: Which statement is true about Oracle Net Listener? A. It acts as the listening endpoint for the Oracle database instance for all local and nonlocal user connections. B. A single listener can service only one database instance and multiple remote client connections. C. Service registration with the listener is performed by the process monitor (LREG) process of each database instance. D. The listener.ora configuration file must be configured with one or more listening protocol addresses to allow remote users to connect to a database instance. E. The listener.ora configuration file must be located in the ORACLE_HOME/network/admin directly.
【题意简述】 考察了Oracle 12c新特性——LREG进程负责监听器的注册(Listener Registration)。
【考点分析】 Oracle监听器 Net Listener 是一个重要的数据库服务器组件,在整个 Oracle 体系结构中,扮演着重要的作用。它负责管理Oracle 数据库和客户端之间的通讯,它在一个特定的网卡端口 (默认是TCP 1521端口)上监听连接请求,并将连接转发给数据库。 Oracle监听器主要负责下面的几方面功能: l 监听客户端请求。 l 为客户端请求分配 Server Process l 注册实例服务 l 错误转移 failover l 负载均衡 其中,failover和负载均衡都是RAC架构下的功能。
本质上讲,Listener是建立实例和客户端进程之间联系的桥梁。 Listener 与实例之间的联系,就是通过注册的过程来实现的。注册的过程就是实例告诉监听器,它的数据库实例名称instance_name和服务名 service_names。监听器注册上这样的信息,对客户端请求根据监听的注册信息,找到正确的服务实例名称。目前 Oracle提供动态注册和静态注册两种方式。 静态注册就是实例启动时读取 listener.ora 文件的配置,将实例和服务注册到监听程序。无论何时启动一个数据库,默认地都有两条信息注册到监听器中:数据库服务器对应的实例和服务。 动态注册的动作是监听器所在主机上数据库实例完成。实例的后台进程每隔一段时间就会将实例的参 数信息注册到监听器上,实现动态注册。 大家都知道,在Oracle Database 11g以及之前版本,PMON进程负责注册实例服务。而在Oracle Database 12c中,大量新的后台进程被引入进来,其中就包括专门负责注册实例服务的LREG后台进程。
我们节选官方文档中关于PMON和LREG的定义,其中专门提到了12c和之前版本的区别: “ …… Process Monitor Process (PMON) The process monitor (PMON) monitors the other background processes and performs process recovery when a server or dispatcher process terminates abnormally. PMON is responsible for cleaning up the database buffer cache and freeing resources that the client process was using. For example, PMON resets the status of the active transaction table, releases locks that are no longer required, and removes the process ID from the list of active processes. Listener Registration Process (LREG) The listener registration process (LREG) registers information about the database instance and dispatcher processes with the Oracle Net Listener. When an instance starts, LREG polls the listener to determine whether it is running. If the listener is running, then LREG passes it relevant parameters. If it is not running, then LREG periodically attempts to contact it. Note: In releases before Oracle Database 12c, PMON performed the listener registration. ……”
【答案剖析】 A,监听器负责监听非本地用户的连接请求。例如我们熟知的sqlplus / as sysdba 命令是操作系统用户验证登录方式,通过OS本地的IPC可以直接连接到实例,而IPC由本地OS提供,允许各种进程在主机内进行通信,所以不需要listener也可以连接到实例。所以A错误。 B, 监听器运行在数据库服务器之上,可以与一个或多个Oracle 实例相关联,所以 B 错误。 C, 本质上讲,Listener 是建立实例和客户端进程之间联系的桥梁。 Listener 与实例之间的联系,就是通过注册的过程来实现的。从12c版本开始,LREG后台进程负责注册实例服务。所以C正确。 D,在配置listener.ora时会遇到Host参数,该参数作用就是指定连接的主机地址。我们可以选择IP地址和主机服务器名称。两种方法下,Oracle监听器是采用不同的策略方法。当使用HOST主机名的时候,Oracle监听器会对该计算机上所有的IP地址开启监听动作;如果使用IP地址,监听程序只能监听对应的IP地址。所以D错误。 E, 默认情况下,listener.ora 配置文件存放在ORACLE_HOME/network/admin目录下,但是我们可以修改配置文件的存放路径。以Windows环境为例,我们可以通过定义TNS_ADMIN环境变量来指定listener.ora、tnsnames.ora等配置文件的默认存放路径。所以E错误。
【答案】C
|