当前位置: 首页 > news >正文

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

文章目录

  • 一、基础知识
    • 1、 Server Configurations服务器配置
    • 2、Dedicated server process专用服务器进程
    • 3、Oracle Shared ServerOracle共享服务器
    • 4、Benefits of Shared Server 共享服务器的优点
    • 5、Processing a Request 处理请求
    • 6、Configuring Shared Server 配置共享服务器
      • 基础介绍
      • 参数介绍
    • 7、Dedicated vs Shared 专用与共享
  • 二、基础操作
    • 1、设置共享服务器模式
    • 2、Verifying Setup 验证注册状态

在这里插入图片描述

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视图以显示每个共享服务器连接的一个条目。

完结在这里插入图片描述

相关文章:

  • k8s-pod生命周期 4
  • Windows如何截取屏幕图片以及动态图
  • 在全球碳市场中崭露头角的中碳CCNG
  • MySQL表的操作
  • Go语言多线程爬虫万能模板它来了!
  • 多功能回馈式交流电子负载的应用
  • 2023.11.22 IDEA Spring Boot 项目热部署
  • 电脑技巧:推荐八个非常实用的在线网站值得收藏
  • 外贸自建站服务器怎么选?网站搭建的工具?
  • uni-app 跨端开发注意事项
  • 开发板启动进入系统以后再挂载 NFS 文件系统, 这里的NFS文件系统是根据正点原子教程制作的ubuntu_rootfs
  • 【漏洞复现】金蝶云星空管理中心 ScpSupRegHandler接口存在任意文件上传漏洞 附POC
  • 前端新手Vue3+Vite+Ts+Pinia+Sass项目指北系列文章 —— 第六章 样式格式化 (Sass配置)
  • AI一点通:卷积神经网络的输出节点大小如何计算?全连接层必要输入大小如何设置
  • 数据库知识点总结(一)
  • 08.Android之View事件问题
  • golang中接口赋值与方法集
  • isset在php5.6-和php7.0+的一些差异
  • Java精华积累:初学者都应该搞懂的问题
  • mysql innodb 索引使用指南
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • SpingCloudBus整合RabbitMQ
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • Travix是如何部署应用程序到Kubernetes上的
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 程序员该如何有效的找工作?
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 数据结构java版之冒泡排序及优化
  • 微信小程序设置上一页数据
  • 用Python写一份独特的元宵节祝福
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #include<初见C语言之指针(5)>
  • #Linux(Source Insight安装及工程建立)
  • (C#)一个最简单的链表类
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (转)一些感悟
  • ***测试-HTTP方法
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .net6+aspose.words导出word并转pdf
  • .netcore 6.0/7.0项目迁移至.netcore 8.0 注意事项
  • .NET国产化改造探索(一)、VMware安装银河麒麟
  • @Autowired标签与 @Resource标签 的区别
  • [2010-8-30]
  • [20160807][系统设计的三次迭代]
  • [28期] lamp兄弟连28期学员手册,请大家务必看一下
  • [ACTF2020 新生赛]Upload 1
  • [C++提高编程](三):STL初识