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)"

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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)))
  • 如果调度程序不可用,则拒绝客户端连接请求。

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

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

sales=
(DESCRIPTION=
	(ADDRESS=(PROTCOL=tcp)(HOST=sales-server)(PORT=1521))
	(CONNECT DATA=
		(SERVICE NAME=orcl)
		(SERVER=dedicated)))

二、基础操作

1、设置共享服务器模式

首先以dba用户登录数据库

sqlplus / as sysdba

然后启动数据库

startup

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

show parameter disp;

在这里插入图片描述

show parameter share;

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

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

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

show parameter disp;

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

 ps -ef | grep oracle

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

alter system set SHARED_SERVERS=4;

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

ps -ef | grep oracle

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

2、Verifying Setup 验证注册状态

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

lsnrctl services

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

完结在这里插入图片描述

  • 9
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会编程的喵星人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值