oracle监听器

本文详细介绍了Oracle监听器的配置文件解析,包括SID_LIST_LISTENER和LISTENER的各个参数含义。监听器的主要功能包括监听客户端请求、分配Server Process、注册实例服务、错误转移与负载均衡。监听器在RAC环境中的作用尤为重要,通过lsnrctl命令可以进行管理。监听器工作流程涉及客户端请求、服务实例匹配、Server Process的分配与连接建立,完成数据交互前的准备工作。
摘要由CSDN通过智能技术生成

监听配置文件解析

例如:

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = D:\ruanjian\oracle\product\11.2.0\dbhome_1)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:D:\ruanjian\oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    )
  )


ADR_BASE_LISTENER = D:\ruanjian\oracle

1)PROTOCOL 指的是监听接收连接的协议

2)HOST指的是监听运行的主机或IP地址

3)PORT指的是监听运行的窗口

4)SID_NAME指的是监听服务的实例名

5)GLOBAL_NAME指的是监听服务的服务名

6)ORACLE_HOME指的是配置oracle数据库软件安装的基本目录


其中SID_NAME等于数据库参数INSTANCE_NAME。是数据库的实例名

GLOBAL_NAME相当于tns文件中的SERVICE_NAME。是数据库的服务名

二、监听器Listener的功能

 1.监听客户端请求。监听器运行在数据库服务器之上,与oracle实例相关联,是一个专门的进程。监听器守候在服务器制定端口(默认1521),监听客户端的请求

 2.为客户端请求分配Server Process。监听器只负责接收请求,之后将请求转接给Oracle Server Process。在oracle的服务模式下,客户端进程是不允许 直接操作数据库实例

   和数据。而是通过一个服务进程Server Process(也称为影子进程)作为代理。监听器接收到请求后,就向操作系统要求分配一个Server Process与客户端相连。

 3.注册实例服务。

 本质上讲,listener是建立实例和客户端进程之间联系的桥梁。Listener与实例之间的联系,就是通过注册的过程来实现的,注册的过程就是实例告诉监听器它的数据库实例名

 称instance_name 和服务器名称service_names。监听器注册上这样的信息,对客户端请求根据监听注册信息,找到正确的服务实例名称。目前oracle版本中提供动态注册和 

 静态注册两种方式。

4.错误转移failover。failover是RAC容错的一个重要方面功能。其功能是在数据库实例崩溃的时候,可以自动将请求转移到其他可用实例上的一种功能 可以提供很大程度上的可

  用性功能。这个过程中,发现实例已经崩溃,并且将请求转移到其他实例上,就属于listener的功能

 5.负载均衡衡量。在RAC架构中,oracle实现了负载均衡,当一个客户请求到来时,oracle会根据当前RAC集群环境中所有实例的负载情况,避开负载较高的实例,将请求转移

到负载较低的实例进行处理。在早期RAC版本中。负载轻重的衡量是根据监听器当前维护连接数据来确定的。而不是实时查看多实例的负载。RAC环境中的监听器之间进行沟

通通信。


三、监听操作

在命令行窗口(CMD),输入lsnerctl,就可以进入监听器控制窗口。查看监听器状态或者启动关闭监听器。

四、监听器工作过程

监听器作为一个独立的进程在操作系统中运行,守候在特定网络端口(默认:1521)等待客户端请求的到来(客户端命名服务输入的1521就是为了与监听器程序建立连接)。

当一个请求发送过来,监听器对照已经注册的服务列表,查找对应的数据库实例信息,获取到指定实例的oracle_home路径,相当于表明可以进行连接。

客户端与实例是通过server process进行连接。所有指令SQL都是客户端通过server process发送到实例中。

当监听器获得请求后,要从oracle实例中分配一个Server Process与之对应

Server Process与监听器的连接,实际上就是相互信息的交换。Server Process将自身在OS中的进程编码、连接地址信息发送给监听器。监听器将客户端信息传递给Server Process.

监听器获取到Server Process的信息之后,将其返回给客户端连接程序,客户端获取到信息之后,进行重连接,根据返回的信息与server process在指定的服务器端口进行联系

直到这时候,客户端程序才将连接用户名、密码等信息发送给Server Process。进行登录验证等操作。监听的工作到此结束




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值