监听的相关概念和管理监听

监听的体系结构:客户端——TCP/IP network——listener(听哪些中间件访问数据库)——database server
通常通过管理工具配置监听:EM可以配置监听  设置failover 客户端可以通过多条链路连接数据库
                          修改相关的配置脚本
                          与监听相关的配置文件 listener.ora sqlnet.ora
建立网络连接
要建立客户端或中间件连接,Oracle Net要求客户端了解以下信息:
运行监听程序的主机 server  IP
监听程序监听的数据库
监听程序使用的协议    TCP/IP
监听程序处理的服务名

建立连接
名称解析完毕之后,连接请求将从用户或中间件传递到监听程序
监听程序会接收到一个连接数据包,并检查该连接数据库请求的Oracle Net服务名是否有效。
如果没有请求服务吗,监听程序会返回连接结果,此外不执行任何其它操作。
如果请求的服务名无效,监听程序会将错误代码传输给用户。

用户会话
1.名称解析2.传入连接请求3.分析连接请求的数据库服务名是否有效,并帮助用户查询数据库状态是否正常
4.衍生服务器进程,并传递初始化信息和用户进程的地址5.监听程序完成所有工作,不再处理该连接
6.服务器进程检查用户身份验证证明7.建立用户会话

配置和管理oracle network的工具
EM 的“NET SERCIVES ADMINISTRATION  (网络服务管理)
ORACLE NET MANAGER     装好后都可以执行    netmgr 调用
ORACLE NET CONFIGURATION ASSISTANT     netca
命令行

listener control
可以使用 lsnrctl命令行工具控制 oracle net listener 
若监听程序名称不是LISTENER ,则必须在命令中包含监听程序名称,或者使用SET CURRENT_LISTENER命令来设置默认监听

如果安装了GI,并且监听程序被Oracle Restart 程序监控,也可以使用srvctl 命令来启动停止监听
[root@oel ~]# su - oracle
[oracle@oel ~]$ lsnrctl

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 30-AUG-2018 22:52:48

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> help
The following operations are available
An asterisk (*) denotes a modifier or extended command:

start               stop                status
services            version             reload
save_config         trace               spawn
change_password     quit                exit
set*                show*

LSNRCTL> status
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER    
------------------------
Alias     别名                LISTENER
Version    版本信息               TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date   监听何时启动             29-AUG-2018 22:33:44
Uptime        一共执行多少时间            1 days 0 hr. 19 min. 24 sec
Trace Level  调优可用,客户端报超时可以打开             off
Security                  ON: Local OS Authentication 本地操作认证
SNMP                      OFF
Listener Parameter File 监听的配置文件   /u01/app/oracle/product/11.2.0/grid/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oel/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oel)(PORT=1521)))
Services Summary...  监听的工作状态
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully
LSNRCTL> version    详细的版本信息
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
TNSLSNR for Linux: Version 11.2.0.1.0 - Production
        TNS for Linux: Version 11.2.0.1.0 - Production
        Unix Domain Socket IPC NT Protocol Adaptor for Linux: Version 11.2.0.1.0 - Production
        Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.1.0 - Production,,
The command completed successfully

[oracle@oel ~]$ lsnrctl status 其它监听名
LSNRCTL> SET CUR 监听名            设置主监听 

命名方法
Oracle Net 支持多种解析连接信息的方法
简单连接命名:使用TCP/IP连接字符串   中小型公司
本地命名:使用本地配置文件           中小型公司
目录命名:使用符合LDAP的集中式目录服务器   及其庞大的客户端群  LDAP活动目录
外部命名:使用受支持的非Oracle命名服务     使用场景比较少
命名约束 ORACLE NET configuration files
简单连接:默认情况下启用,不需要进行客户端配置,仅支持TCP/IP(无SSL)
         不支持高级连接选项:连接时故障转移,源路由,负载平衡
本地命名:需要客户端名称解析  支持所有的oracle net 协议
支持高级连接选项:连接时故障转移,源路由,负载平衡
目录命名:需要加载oracle NET 名称解析信息的LDAP
          ORACLE INTERNET DIRECTORY
          Microsoft Active Directory Services     活动目录
支持所有的Oracle Net协议
支持高级连接选项
用于客户端非常多  用活动目录非常方便。
外部命名方法
使用受支持的非Oracle 命名服务

配置服务别名
服务端 配置的是监听  客户端配置的是服务命名
linux 既是oracle的客户端又是服务器端
高级连接选项
使用本地和目录命名时,oracle net 支持下列高级连接选项
连接时故障转移,负载平衡,源路由

tnsping 实用程序用于测试Oracle Net 服务别名
确保客户端与oracle Net listener之间的连接
不验证所请求的服务是否使用
支持简单连接名称解析

支持本地和目录命名

[oracle@oel ~]$ cd $ORACLE_HOME
[oracle@oel db_1]$ pwd
/u01/app/oracle/product/11.2.0/db_1
[oracle@oel db_1]$
[oracle@oel db_1]$ cd network/admin
[oracle@oel admin]$ ls
listener18082510PM1502.bak  listener.ora  shrept.lst                  tnsnames18083011PM1646.bak
listener18083011PM1646.bak  samples       tnsnames18082510PM1502.bak  tnsnames.ora
[oracle@oel admin]$ pwd
/u01/app/oracle/product/11.2.0/db_1/network/admin     监听配置文件的位置
[oracle@oel admin]$ ls
listener18082510PM1502.bak  listener.ora  shrept.lst                  tnsnames18083011PM1646.bak
listener18083011PM1646.bak  samples       tnsnames18082510PM1502.bak  tnsnames.ora

[oracle@oel admin]$ more tnsnames.ora  客户端
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oel)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

一般没有必要用配置工具  Vi改改即可
 sqlplus hr/hr@定义解析好的名称
 
共享服务器模式
用户会话:专用服务器
用户会话:共享服务器
一个客户端的会话对应一个进程。现在的服务器,CPU在处理进程并发的时候是很复杂的。

SGA和PGA
oracle共享服务器:在SGA中存放用户会话数据
调整SGA大小时,请将共享服务器内存考虑在内
在共享内存中 PGA不用分太大,SGA需要大点 因为SGA本身就是共享内存段
如SGA中配置了large pool的大小,如果没有配置就会在shared pool中   一旦使用共享服务器模式 一定要使用large pool 
数据库只能提供255个服务源  如果设置连接共享 就可以接受更多的用户
不能使用共享服务器的情况
不能使用共享服务器的连接对数据库管理

设置共享服务器模式
[oracle@oel admin]$ sqlplus / as sysdba
SQL> show parameter dispatcher   一个参数

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
dispatchers                          string      (PROTOCOL=TCP) (SERVICE=orclXD
                                                 B)
max_dispatchers                      integer

SQL> alter system set dispatchers='(protocol=tcp)(dispatcher=3)';
System altered.

SQL> show parameter shared_server

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
max_shared_servers                   integer
shared_server_sessions               integer
shared_servers                       integer     1
SQL> alter system set shared_servers=5;

System altered.

SQL> alter system set max_shared_servers=20;

System altered.              最高分配20个

SQL> show parameter shared_server_sessions

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
shared_server_sessions               integer
SQL> show parameter sessions

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
sessions                             integer     248
shared_server_sessions               integer
SQL> alter system set shared_server_sessions=100;
System altered.

共享服务器配置方法及参数详解
1.配置所有会话,进来排队等待服务   设置dispatchers
alter system set dispatchers='(protocol=tcp)(dispatchers=3)'
2.配置有多个提供服务
shared——servers
alter system set shared_server=5;
服务不够用了
max-shared_servers
alter system set max_shared_servers=20;
3.sessions 248  shared_server_sessions 100
alter system set sessions_shared_server_sessions=148;

共享服务器客户端配置方法及参数详解
修改tnsnames.ora
在connect_data设置里设置
server=deddicated
server=shared
查看 lsnrctl services
[oracle@oel admin]$ more tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = oel)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

[oracle@oel admin]$ vi tnsnames.ora
[oracle@oel admin]$ tnsping orcl_de

TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 31-AUG-2018 23:34:50

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

Used parameter files:


Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oel)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))
OK (0 msec)
[oracle@oel admin]$ sqlplus hr/hr@orcl_de

SQL*Plus: Release 11.2.0.1.0 Production on Fri Aug 31 23:35:47 2018

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


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

SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
[oracle@oel admin]$
[oracle@oel admin]$
[oracle@oel admin]$ lsnrctl

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 31-AUG-2018 23:36:12

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL>
LSNRCTL>
LSNRCTL>
LSNRCTL>
LSNRCTL> services
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "orcl" has 1 instance(s).
  Instance "orcl", status READY, has 4 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:1 refused:0 state:ready
         LOCAL SERVER
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: oel, pid: 5023>
         (ADDRESS=(PROTOCOL=tcp)(HOST=oel)(PORT=43583))
      "D001" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: oel, pid: 29438>
         (ADDRESS=(PROTOCOL=tcp)(HOST=oel)(PORT=61142))
      "D002" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER <machine: oel, pid: 29442>
         (ADDRESS=(PROTOCOL=tcp)(HOST=oel)(PORT=11988))
Service "orclXDB" has 1 instance(s).
  Instance "orcl", status READY, has 0 handler(s) for this service...
The command completed successfully

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值