Oracle连接方式(dispatchers 设置)

oracle 响应客户端请求有两种方式:

1 专有连接:用一个服务器进程响应一个客户端请求

2 共享连接:用一个分派器(dispatcher)响应一个客户端请求,服务器端有多个服务器进程,共享处理所有分派器的请求;

两种连接方式的优缺点

1 对于连接数不多的应用,适宜用专有连接,客户的请求响应及时;

2 对于连接数较大的应用,适宜用共享连接,充分利用系统资源

后台作业和RMAN操作必须使用专有连接;

配置共享服务器连接

既可以在参数文件内进行静态配置,可以动态修改;

共享服务器配置的初始化参数

SHARED_SERVERS: 初始化启动的服务器进程数和保留的最小服务器进程数;如果使用共享连接,这个参数是必配的;
  MAX_SHARED_SERVERS: 最大并发的共享服务器进程数
  SHARED_SERVER_SESSIONS: 可并发处理的最大共享用户会话数,超过此数值的用户会话将使用专有连接
  DISPATCHERS: 共享连接的分派器数量
  MAX_DISPATCHERS: 可同时并发的共享连接的最大的分派器数量,此参数目前可忽略;
  CIRCUITS: 可用的虚拟回路数(Specifies the total number of virtual circuits that are available for inbound and outbound network sessions)

配置共享服务器连接

1 静态参数文件中SHARED_SERVERS大于0既可。其他参数不是必要的。

2 使用ALTER SYSTEM语句设置SHARED_SERVERS为一大于0值,如:
    ALTER SYSTEM SET SHARED_SERVERS = 5;

设置SHARED_SERVERS数值

一般而言,可以按一个服务器响应10个连接进行计算;

实际的共享服务器进程可以动态增加,SHARED_SERVERS的数值应该设置为实际所需要的最小值;

设置MAX_SHARED_SERVERS以限制共享服务器进程数;

可以动态修改MAX_SHARED_SERVERS以允许更多的服务器进程数,或者动态修改SHARED_SERVERS为一个大于MAX_SHARED_SERVERS的数值以允许更多的服务器进程数;

设置SHARED_SERVERS数值

Number of dispatchers =

CEIL ( max. concurrent sessions / connections for each dispatcher )

例如:

每进程能支持970个连接

TCP/IP连接最多有4000个会话

安全(TCP/IP with SSL)最多有2,500个会话

则用于TCP/IP协议的DISPATCHERS可设为5,CELL(4000 / 970), 用于安全TCP/IP协议的dispatchers 可设为3,CELL(2500 / 970:

DISPATCHERS='(PROT=tcp)(DISP=5)', '(PROT-tcps)(DISP=3)'

强制特定的IP使用DISPATCH

DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(HOST=144.25.16.201))(DISPATCHERS=2)"

这将产生两个DISPATCH监听特定的IP

强制DISPATCH使用特定端口

DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5000))"

DISPATCHERS="(ADDRESS=(PROTOCOL=TCP)(PORT=5001))"

修改DISPATCH数量

DISPATCH不可以自动地动态变化。须使用ALTER SYSTEM命令进行修改。

MAX_DISPATCHERS可以设定可使用的最大DISPATCH数;

察看DISPATCH的负载性能,可查询如下视图

V$QUEUE
  V$DISPATCHER
  V$DISPATCHER_RATE

动态修改DISPATCH数量,使用ALTER SYSTEM 命令,如初始配置为:

DISPATCHERS='(PROT=tcp)(DISP=2)', '(PROT=tcps)(DISP=2)'

现在要将TCP协议的DISPATCH设为3,TCPS设为1

命令如下:

ALTER SYSTEM SET DISPATCHERS = '(INDEX=0)(DISP=3)', '(INDEX=1)(DISP=1)';

或:

ALTER SYSTEM SET DISPATCHERS = '(PROT=tcp)(DISP=3)', '(PROT-tcps)(DISP=1)';

如果当前TCP协议的DISPATCH少于3,数据库将会创建新的DISPATCH。相反,如下TCPS当前有2个DISPATCH,则会在用户退出连接后减少一个dispatch

查询DISPATCH的配置

V$DISPATCHER_CONFIG

当修改一个DISPATCH的DESCRIPTION, ADDRESS, PROTOCOL, CONNECTIONS,TICKS, MULTIPLEX, and POOL属性后,修改后的设置不能立即生效,需要强制性地杀掉现在的DISPATCH进程

关闭DISPATCH进程

1 确定要关闭的进程

SELECT NAME, NETWORK FROM V$DISPATCHER;

2 ALTER SYSTEM SHUTDOWN IMMEDIATE 'D002'(DISPATCH NAME);

关闭共享服务连接

1 设置SHARED_SERVERS=0;

2 关闭DISPATCH

ALTER SYSTEM SET DISPATCHERS = '';

监控

View                  Description

V$DISPATCHER          提供DISPATCH进程信息,包括DISPATCH名称,网络,地址,状态,统计信息和索引号等;

V$DISPATCHER_CONFIG   提供DISPATCH的配置信息

V$DISPATCHER_RATE     提供DISPATCH的速度(RATE)统计

V$QUEUE               提供共享服务器队列信息.

V$SHARED_SERVER       提供共享服务器信息.

V$CIRCUIT             提供用户通过DISPATCH连接到数据库的虚拟回路信息(virtual circuits)

V$SHARED_SERVER_MONITOR 提供共享服务器的优化信息

dispatchers 设置的更多相关文章

  1. 专用服务器模式&共享服务器模式

    连接ORACLE服务器一般有两种方式:专用服务器连接(dedicated server)和共享服务器连接(shared server).那么两者有啥区别和不同呢?下面我们将对这两者的区别与不同一一剖析 ...

  2. ORA-12520 TroubleShooting

      同事反馈他连接一个新搭建的测试数据库时,报"ORA-12520: TNS: 监听程序无法为请求的服务器类型找到可用的处理程序"错误,在解决他这个问题时,顺便分析.总结一下ORA ...

  3. Linux命令总结大全,包含所有linux命令

    使用说明:此文档包含所有的Linux命令,只有你想不到的没有你看不到的,此文档共计10万余字,有8400多行,预计阅读时间差不多需要3个小时左右,所以要给大家说一说如何阅读此文档 为了方便大家阅读,我 ...

  4. Oracle 设置archivelog错误解决方案

    在Oracle 数据库的实际应用中,开启archivelog模式是必不可少的,但是在设置archivelog的过程中,可能因为不小心出现错误,导致数据库无法启动,本案例就是一种情况. 误操作现象: 设 ...

  5. Oracle11G_R2中共享服务器模式和专用服务器模式参数解释及设置

    sys@MYTESTDB> show parameterNAME TYPE VALUE------------------------------------ ----------- ----- ...

  6. 避免因为Arcgis Server服务设置不当导致Oracle Process溢出的方法

    我之前写过一篇文章<arcsoc进程无限增长导致oracle processes溢出>(见链接:https://www.cnblogs.com/6yuhang/p/9379086.html ...

  7. 【.net 深呼吸】设置序列化中的最大数据量

    欢迎收看本期的<老周吹牛>节目,由于剧组严重缺钱,故本节目无视频无声音.好,先看下面一个类声明. [DataContract] public class DemoObject { [Dat ...

  8. LINUX篇,设置MYSQL远程访问实用版

    每次设置root和远程访问都容易出现问题, 总结了个通用方法, 关键在于实用 step1: # mysql -u root mysql mysql> Grant all privileges o ...

  9. Visual Studio Code 代理设置

    Visual Studio Code (简称 VS Code)是由微软研发的一款免费.开源的跨平台文本(代码)编辑器,在十多年的编程经历中,我使用过非常多的的代码编辑器(包括 IDE),例如 Fron ...

随机推荐

  1. 窗体监听事件WindowListener

    EXIT_ON_CLOSE:结束窗口所在的应用程序.在窗口被关闭的时候会退出JVM. DISPOSE_ON_CLOSE:隐藏当前窗口,并释放此窗体占有的资源.如果程序没有其他线程在运行,当所有窗口都被 ...

  2. 2018acm-icpc宁夏邀请赛后记

    由于要准备期末考试的缘故,时隔一个月之后我才想起来还有一场比赛没有总结. 大概是出去过的最远的地方了,宁夏理工学院离杭州有两千多千米. 不得不说感到了主办方满满的诚意,虽然是第一次办比赛,但是第一天组 ...

  3. Goslate: Free Google Translate API

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  4. on条件与where条件的区别

    数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时,on和where条件的区别如下: 1. on条件是在生成临时表时使用的条 ...

  5. jq实现对checkbox的常用操作

    场景1:点击checkbox 其他checkbox被选中的都取消  (意思是只能选中一个checkbox) function fn(obj,event){ //obj就是这个this这个对象 ,eve ...

  6. nginx的负载均衡配置,常用策略

    场景:nginx是一款非常优秀的负载均衡服务器,小巧而且性能强悍,中小型企业的首选. 下面介绍nginx的负载均衡的几种常见的配置以及优缺点 第一种:轮询(默认) 优点:实现简单 缺点:不考虑每台服务 ...

  7. Hbase记录-HBase增删改查

    HBase创建数据   本章将介绍如何在HBase表中创建的数据.要在HBase表中创建的数据,可以下面的命令和方法: put 命令, add() - Put类的方法 put() - HTable 类 ...

  8. Java记录-SpringMVC整合Echarts画地图加散点图

    1.搭建eclipse+JDK+Maven+SpringMVC+Spring+Mybatis后台架构,详细就不过多阐述了 2.下载百度eharts插件:http://echarts.baidu.com ...

  9. js正则表达式【原】

    js正则表达式 http://www.w3school.com.cn/js/js_obj_regexp.asp js常用正则表达式 我的自测样例 <HTML> <HEAD> & ...

  10. C语言入门教程-(6)运算符

    1.运算符概述 运算符是一种编译器执行特定的数学或逻辑操作的符号.C语言提供了以下类型的运算符: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 条件运算符 其他运算符 2.算术运算符 算术 ...