设为首页 加入收藏

TOP

ORACLE监听理解(一)
2019-09-23 11:17:57 】 浏览:87
Tags:ORACLE 监听 理解

参考官方文档Net Services Reference的7 Oracle Net Listener Parameters (listener.ora)

1 监听概念

oracle监听,是个服务器端进程,负责监听客户端发来的请求

监听器可以不必驻留在数据库主机上,即可以把实例注册到远程主机上的监听

监听是oracle自带的软件或者说组件

本地连接可以不用监听,但是远程连接必须要


oracle监听收到user process发出的request后,派生出server process来提供服务,server进程根据数据库的配置有2种模式:专有模式和共享模式

  专有模式:每个客户端进程都有单独的server进程来建立session提供服务,绝大部分超过99%的数据库都是这种模式

  共享模式:有个分配器叫dispatch,监听把请求放入请求队列中,dispatch会不停的查询请求队列,当发现有请求时候就把请求转给server进程,再通过server进程提供服务,处理完后反馈给响应队列,dispatch再把响应队列中的转发给用户进程。类似与饭馆吃饭,server进程相当于厨师,dispatch相当于服务员,服务员接受请求并转发给相应的空闲厨师提供服务,厨师做好的菜放在哪儿,服务员再端给客户;这种模式用的不多


dbca建库后一般会有默认监听,不用再配置,监听的服务端口默认1521

一般的库一个监听就够了,但是并发量太大的话可能需要配置多个监听,非默认监听的端口号大于1024即可,不同监听之间服务名和端口号不能一样

监听如何区别不同的库呢,所以需要把实例进行服务注册,注册到listen中,

注册就是将主机上跑的实例添加到listen里,让listen知道主机上有哪些实例

2 配置方法

2.1 动态注册

服务注册有2种,一种是动态注册,是通过pmon进程主动的自动的把实例注册到listen中

监听和实例的启动顺序,当监听先启动,没问题,如果监听后启动,那么可以手工alter system register注册下,或者不用管,pmon会隔一段时间就去注册下

一般默认监听是动态注册

不需要listener.ora文件

服务状态中有status READY(库在mount或者open状态)字样

pmon给监听提供实例名、服务名、服务处理程序的类型和地址

注册的服务名叫 db_name.db_domain,db_nameXDB.db_domain

如果要pmon注册到非默认监听,就要配置local_listener参数了

image


配置监听可以通过netca图形配置,也可以命令配置

image默认监听的名称LISTENER,配置如上,实际上没有这个listener.ora,默认listen也是可以正常运行的


那么下面增加一个在1522端口的非默认动态监听,名称叫listener2

首先netmgr图形添加一个监听

image

或者编辑listener.ora来添加监听也行

image

然后修改tnsnames.ora添加一个listener2的字符串,以便修改local_listener参数,(就是把监听中的那一段复制到tnsnames.ora中)

image设置下local_listener参数并手工注册下即可,

[oracle@study admin]$ sql

SQL*Plus: Release 11.2.0.1.0 Production on Thu Sep 19 17:07:41 2019

Copyright (c) 1982, 2009, Oracle.  All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

17:07:42 SYS@study> show parameter local_list

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
local_listener                       string
17:08:19 SYS@study> alter system set local_listener='LISTENER2';

System altered.

Elapsed: 00:00:00.04
17:09:03 SYS@study> alter system register;

System altered.

Elapsed: 00:00:00.00
17:09:21 SYS@study> Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@study admin]$ lsnrctl status listener2

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 19-SEP-2019 17:10:22

Copyright (c) 1991, 2009, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=study.localdomain)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias                     listener2
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                19-SEP-2019 16:38:16
Uptime                    0 days 0 hr. 32 min. 6 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/study/listener2/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=study.localdomain)(PORT=1522)))
Services Summary...
Service "study" has 1 instance(s).
  Instance "study", status READY, has 1 handler(s) for this servi
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇【数据库】通过触发器实现审计日.. 下一篇Robo 3T SQL

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目