• Oracle(2-5)Usage and Configuration of the Oracle Shared Server



    在这里插入图片描述

    Usage and Configuration of the Oracle Shared Server Oracle共享服务器的使用和配置
    目标:

    • 确定Oracle共享服务器的组件
    • 描述Oracle共享服务器架构
    • 配置Oracle共享服务器
    • 识别并解释相关数据字典视图的有用性

    一、基础知识

    1、 Server Configurations服务器配置

    • Dedicated server process专用服务器进程
    • Shared server process 共享服务器进程
    • 专用服务器进程和共享服务器进程都有相同的工作:它们处理您交给它们的所有SQl。当您向数据库提交SELECT*FROM EMP查询时,Oracle专用/共享服务器进程会解析该查询并将其放入共享池(或者希望已经在共享池中找到它)。如果需要,这个过程会产生查询计划,并执行查询计划,可能在缓冲区缓存中找到必要的数据,或者将数据从磁盘读取到缓冲区缓存。
    • 这些服务器进程是主力进程。很多时候,你会发现这些进程是你系统中CPU时间的最高消耗者,因为它们几乎完成了你的排序、求和和和连接。

    2、Dedicated server process专用服务器进程

    在这里插入图片描述
    在这里插入图片描述

    如前所述,Oracle通常会在我登录时为我创建一个新进程。这通常被称为专用服务器配置,因为在我的会话的生命周期中,一个服务器进程将专用于我。对于每个会话,将在一一映射中出现一个新的专用服务器。这个专用服务器进程 (根据定义) 不是实例的一部分。我的客户端进程 (任何试图连接到数据库的程序)将通过一些网络管道 (如TCP/IP套接字) 与这个专用服务器直接通信。 这个服务器进程将接收我的SQL并为我执行它。必要时,它会读取数据文件,并在数据库的缓存中查找我的数据。它将执行我的更新语句。它将运行我的PL/SQL代码。它的唯一目标是响应我提交给它的SOL调用。
    在这里插入图片描述

    3、Oracle Shared ServerOracle共享服务器

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 这里要注意一个SGA中只有一个Request Queue请求队列,但是可能会有多个Response Queue响应队列

    在这里插入图片描述

    • 如果是在一台机器上,Listener只需要返回端口号即可,如果不是在一台机器上,Listener还需要返回ip地址

    4、Benefits of Shared Server 共享服务器的优点

    • 减少针对实例的进程数
    • 增加可能的用户数
    • 实现负载平衡
    • 减少了空闲服务器进程的数量
    • 减少内存使用和系统开销

    5、Processing a Request 处理请求

    在这里插入图片描述

    6、Configuring Shared Server 配置共享服务器

    基础介绍

    • 所需的初始化参数
      • DISPATCHERSL
      • SHARED_SERVERS
    • 可选初始化参数
      • MAX_DISPATCHERS
      • MAX_SHARED_SERVERS
      • CIRCUITS 电路
      • SHARED_SERVER_SESSIONS

    参数介绍

    • DISPATCHERS
      指定为给定协议初始启动的调度程序数
    DISPATCHERS = "(PROTOCOL=TCP)(DTSPATCHERS=2)\(PROTOCOL=IPC)(DISPATCHERS=1)"
    
    • 1

    在这里插入图片描述

    • SHARED_SERVERS
      指定启动实例时创建的服务器进程数
    SHARED_SERVERS = 6
    
    • 1

    在这里插入图片描述

    • MAX_SHARED_SERVERS
      • 指定可启动的最大共享服务器数
      • 允许根据请求队列的长度动态分配共享服务器
    MAX_SHARED_SERVERS = 10
    
    • 1

    在这里插入图片描述

    • CIRCUITS 电路
      • 指定可用于入站和出站网络会话的虚电路总数
      • 影响SGA总规模
    CIRCUITS = 100
    
    • 1
    • SHARED_SERVER_SESSIONS
      • 指定Oracle共享服务器用户会话的总数
      • 设置此参数使您可以为专用服务器保留用户会话
    SHARED_SERVER_SESSIONS = 100
    
    • 1

    7、Dedicated vs Shared 专用与共享

    • 如果配置了共享服务器,并且客户机连接请求在没有注册调度程序的情况下到达则由专用服务器进程处理该请求。如果希望特定客户端始终使用分派器,请配置在CONNECT描述符的CONNECT_DATA部分(server=Shared)。举个例子
    sales=
    (DESCRIPTION=
    	(ADDRESS=(PROTCOL=tcp)(HOST=sales-server)(PORT=1521))
    	(CONNECT DATA=
    		(SERVICE NAME=orcl)
    		(SERVER=shared)))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 如果调度程序不可用,则拒绝客户端连接请求。

    • 如果数据库配置为共享服务器,而某个特定的客户端需要专用服务器,则可以通过以下方式之一配置客户端使用专用服务器:

    • 您可以使用CONNECT_DATA部分中包含 (server=专用)的连接描述符来配置网络服务名。举个例子:

    sales=
    (DESCRIPTION=
    	(ADDRESS=(PROTCOL=tcp)(HOST=sales-server)(PORT=1521))
    	(CONNECT DATA=
    		(SERVICE NAME=orcl)
    		(SERVER=dedicated)))
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    二、基础操作

    1、设置共享服务器模式

    首先以dba用户登录数据库

    sqlplus / as sysdba
    
    • 1

    然后启动数据库

    startup
    
    • 1

    在这里插入图片描述
    查看相关参数

    show parameter disp;
    
    • 1

    在这里插入图片描述

    show parameter share;
    
    • 1

    在这里插入图片描述
    修改相关参数

    • DISPATCHERSL
    • SHARED_SERVERS
      这两个参数是我们必须要进行设置的
    alter system set dispatchers='(protocol=tcp)(dispatchers=3)';
    
    • 1

    在这里插入图片描述
    进行查看

    show parameter disp;
    
    • 1

    在这里插入图片描述
    我们没有设置最大的上限,目前设置的可以有3个dispatchers,我们在查看一下进程

     ps -ef | grep oracle
    
    • 1

    在这里插入图片描述
    可以看到d001和d002,上边有个d000是之前存在的
    现在我们修改SHARED_SERVERS

    alter system set SHARED_SERVERS=4;
    
    • 1

    在这里插入图片描述
    再次查看进程

    ps -ef | grep oracle
    
    • 1

    在这里插入图片描述
    可以看到s001、s002和s003,上边有个s000是之前存在的

    2、Verifying Setup 验证注册状态

    当实例启动时,验证调度程序是否已向侦听器注册:

    lsnrctl services
    
    • 1

    通过建立一个连接来验证是否使用共享服务器进行了连接,然后查询V$CIRCUIT视图以显示每个共享服务器连接的一个条目。

    完结在这里插入图片描述

  • 相关阅读:
    【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-Chapter14-处理用户输入
    pip install selenium异常
    【BeanTrimUtil】通过反射去除JavaBean中String类型数据的空格:一行代码搞定整个Bean的字符串去空!
    JavaScript入门
    信捷XD系列PLC程序远程上下载怎么做?
    蓝牙技术|物联网的可穿戴设备新工作模式,蓝牙BLE助力新工作模式
    数字集成电路设计(五、仿真验证与 Testbench 编写)(三)
    金融时间序列预测方法合集:CNN、LSTM、随机森林、ARMA预测股票价格(适用于时序问题)、相似度计算、各类评判指标绘图(数学建模科研适用)
    gin框架再探
    后疫情时代,云计算如何为在线教育保驾护航
  • 原文地址:https://blog.csdn.net/yushaoyyds/article/details/134530037