Oracle 专用/共享服务器连接模式(Dedicated/Shared Server)

news2024/9/21 12:45:24

当会话通过客户端连接到Oracle数据库时,根据服务器处理请求方式的不同,可以有两种连接模式,一种称为专用服务器连接(Dedicated Server),另外一种称为共享服务器连接(Shared Server)。

文章目录

  • 一、专用/共享服务器连接
    • 1.1 专用服务器连接
    • 1.2 共享服务器连接
  • 二、配置共享服务器连接
    • 2.1 共享服务器连接参数
    • 2.2 数据库开启共享服务器
    • 2.3 客户端配置共享服务连接
  • 三、相关视图

一、专用/共享服务器连接

当用户通过会话连接到数据库时,Oracle必须创建相应的进程来对接并服务会话的请求,创建的进程类型可以分为下面两类:

  • 专用服务器进程(Dedicated Server Process),每个进程服务单一用户进程。
  • 共享服务器进程(Shared Server Process),每个进程服务多个用户进程。

1.1 专用服务器连接

Oracle的默认连接模式是专用服务器连接。

专用服务器连接模式下,每个连接到数据库的用户进程都会创建一个专用服务器进程来对接并处理请求。但是每个专用服务器进程都意味着资源开销。如果连接数较多,且用户进程大部分时间都会处于空闲状态,那么维护大量的专用服务器进程就会出现资源浪费,甚至挤爆内存。
在这里插入图片描述

1.2 共享服务器连接

如果有大量的用户连接,共享服务器连接通常是更好的选择,这个模式下的优点是一个服务器进程可以处理多个用户的请求,它可以将服务器进程数量控制在一个较低的数量,更高效的利用资源,并且降低需要维护的进程数。

共享服务器连接需要额外配置,即使配置后,专用服务器进程也是生效的(某些程序只能通过专用服务器模式连接,比如RMAN)。

共享服务器连接模式下,用户进程对接的是调度程序,调度程序将用户请求放入请求队列(每个用户通过virtual circuit标识)。共享服务器会依次处理请求队列的内容,并将处理结果放入响应队列,最后由调度程序取出结果并返回给用户进程(下图所示):
在这里插入图片描述

二、配置共享服务器连接

2.1 共享服务器连接参数

共享服务器默认是关闭状态,需要通过相关参数配置打开,主要参数如下:

  • shared_servers 共享服务器进程数量,即Oracle实例启动时及平时维护的最低共享服务器进程数据量,也是唯一的必须参数。
  • max_shared_servers 共享服务器进程的最大数量。
  • shared_server_sessions 使用共享服务器进程的最大用户会话数量。
  • dispatchers 调度程序配置,会默认启动。

2.2 数据库开启共享服务器

开启共享服务器连接的方式非常简单,只需要将参数shared_servers设置为大于0的值(最小共享服务器进程数量)。根据服务器的负载,Oracle会动态的调整共享服务器进程数量,但不会超过max_shared_servers设定的上限。

通常情况下,共享服务器进行和用户会话数量可以按照1:10的比例配置,根据会话的活跃程度可以适当的调整。例如,用户会话非常繁忙,那么就可以按照1:5配置,或用户会话非常闲,可以按照1:15配置,没有固定要求。

开启共享服务器进程:

alter system set shared_servsers=5 scope=both;
alter system set max_shared_servsers=20 scope=both;

在这里插入图片描述
只有shared_servers是必需参数,max_shared_servers是选配参数,如果未指定,则不设上限,直到达到processes参数的限制。

由于共享服务器进程需要通过dispatchers进程来进行任务调度,即使不配置,Oracle也会启动一个dispatchers进程,可以通过dispatchers参数查看:

select value from v$parameter where name='dispatchers';

在这里插入图片描述

  • (PROTOCOL=TCP)代表TCP协议连接
  • (SERVICE=prodXDB)表示采用共享服务器连接的服务名(后面配置客户端连接时会指定服务名)

2.3 客户端配置共享服务连接

目前只是完成了数据库服务器端的连接配置,客户端在连接时也需要指定共享服务器模式。即使数据库配置了共享服务器连接模式,专用服务器连接模式也是生效的,客户端可以任意选择2种连接模式,只需要在连接名中指定(server=dedicated)或(server=shared)。

编辑客户端的tnsnames.ora文件,这里复制上面连接,重命名为shared_con连接(名称任意),最主要的是将(SERVER=DEDICATED)修改为(SERVER=SHARED),指定改连接名采用共享服务器连接:
在这里插入图片描述

上面的服务名可以在数据库服务器通过lsnrctl services命令查看,找到共享服务器的服务名(上面dispatchers参数中也有):

lsnrctl services

在这里插入图片描述

至此,我们就完成了共享服务器的所有配置,连接时只需要指定对应的连接名,就会以共享服务器模式连接数据库。

sqlplus hr/hr@shared_con

在这里插入图片描述

三、相关视图

完成共享服务器连接模式配置后,你可以通过v$shared_server, v$dispatcher, v$queue等视图来查看共享服务器连接的相关信息

v$shared_server提供了共享服务器进程的相关信息,由于我们设置shared_servers=5,所以这里有5个进程:

select * from v$shared_server;

在这里插入图片描述

v$dispatcher显示的是调度程序信息,这里是设置shared_servers参数时,Oracle自动启动的调度程序,名称是D000:

select * from v$dispatcher;

在这里插入图片描述

v$session中的server字段可以判断会话的连接模式,DEDICATED表示共享服务器连接模式,SHARED或NONE表示共享服务器连接模式(NONE表示当前共享服务器进程没有任务处理,处于空闲状态):

select sid,username,server from v$session where username is not null;

在这里插入图片描述
以上即是Oracle共享服务器连接模式的基本配置,如果要关闭共享服务器模式,只需要将shared_servers参数设置为0即可。即使shared_servers被设置为0,Oracle也不会立刻关闭所有的共享服务器进程,而是会等到所有以共享模式连接的客户会话断开,再逐渐关闭共享服务器进行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2034782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业源代码也需要加密!十款好用的源代码加密软件排行榜

在当今竞争激烈的商业环境中,企业的源代码是其核心资产之一。为了保护这些宝贵的知识产权不被泄露,源代码加密成为了众多企业的重要举措。2024 年,市面上出现了众多功能强大的源代码加密软件。接下来,就让我们一同来探索十款备受好…

基于A*搜索算法的坦克动荡2路径规划问题

前言 《坦克动荡2》(Tank Trouble 2)是一款适用于PC平台的射击类网页游戏。游戏设定在一个迷宫般的竞技场中,玩家需要控制坦克,在对手摧毁自己之前先摧毁对方。本题目旨在各位自己实现A-star算法,并为接下来学习并自行编写替换nav2中的Plann…

【Linux】详解自定义Shell管道 | 构建简易进程池

目录 续:通信 4 种情况 应用场景 1. 自定义 shell 管道 1. 包含头文件 2. 解析命令函数 详细步骤 3. 执行命令函数 4. 主函数 总结 2. 使用管道实现一个简易版本的进程池 代码结构 代码实现 channel.hpp tasks.hpp main.cc 子进程读取任务&#xff…

企业数据接口:被执行人(人员)查询

根据搜索关键字、名称等参数,获取被执行人相关信息 批量获取企业信息

摄影曝光:光圈大小认知

写在前面 学习整理《摄影曝光:拍出好照片的49个关键技法》读书笔记博文内容涉及光圈,景深认知 ,以及光圈和镜像的选择适合小白认知理解不足小伙伴帮忙指正 😃,生活加油 99%的焦虑都来自于虚度时间和没有好好做事,所以唯…

基于hadoop的网络流量分析系统的研究与应用

目录 摘要 1 Abstract 2 第1章 绪论 3 1.1 研究背景 3 1.2 研究目的和意义 4 1.2.1 研究目的 4 1.2.2 研究意义 6 1.3 国内外研究现状分析 7 1.3.1 国内研究现状 7 1.3.2 国外研究现状 9 1.4 研究内容 11 第2章 Hadoop技术及相关组件介绍 12 2.1 HDFS的工作原理及…

小阿轩yx-Docker Compose与私有仓库部署

小阿轩yx-Docker Compose 与私有仓库部署 Docker 的网络模式 Docker 四种网络模式 网络模式参数说明host 模式- - nethost 容器和宿主机共享 Network namespace container 模式- - net{id} 容器和另外一个容器共享 Network namespace。 kubernetes 中的pod就是多个容器共享一…

Win11让局域网内其他电脑通过IP访问自己电脑上的网站

1.步骤:设置-->控制面板-->Windows Defender 防火墙-->高级设置 2.修改域配置文件 入站链接”改为”允许“选项。 3.修改专用配置文件 入站链接”改为”允许“选项。 4. 大功告成了!!! 设置完可以看到,下图…

消费企业经营管理的两大痛点!一篇文章讲透解决办法!

在当下这个快速变化的消费市场中,企业面临着前所未有的挑战和机遇。消费企业,尤其是那些直接面向消费者的零售商,需要不断地适应市场动态,以保持竞争力。然而,在这个过程中,它们往往会遇到一些普遍的痛点&a…

高通DSP、HVX、HMX

CDSP Compute Digital Signal Processor cDSP主要用途有: 1、摄像头、视频的图像增强相关处理 2、计算机视觉、增强、虚拟现实处理 3、深度学习硬件加速 HVX Hexagon Vector Extension HVX意味着你可以将视频和摄像机任务从CPU转移到Hexagon DSP&#xff…

Linux LD_PRELOAD优先加载so失效原因分析

网上由很多介绍LD_PRELOAD劫持的文章,我就不做过多介绍,之前有碰到失效的,网上找了很久没找到原因,后面分析出原因,现在写出来给后人避坑。 Linux系统使用LD_PRELOAD环境变量可以让程序优先加载指定的so文件&#xff0…

ES6 (一)——ES6 简介及环境搭建

目录 简介 环境搭建 可以在 Node.js 环境中运行 ES6 webpack 入口 (entry) loader 插件 (plugins) 利用 webpack 搭建应用 gulp 如何使用? 简介 ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版…

探索 Kubernetes 持久化存储之 Rook Ceph 初窥门径

在 Kubernetes 生态系统中,持久化存储是支撑业务应用稳定运行的基石,对于维护整个系统的健壮性至关重要。对于选择自主搭建 Kubernetes 集群的运维架构师来说,挑选合适的后端持久化存储解决方案是关键的选型决策。目前,Ceph、Glus…

护眼台灯什么牌子好?曝光劣质产品常见的四大套路

孩子使用护眼台灯什么牌子好?孩子不仅是家庭的希望,也是国家的未来。为了让孩子们在未来具备更强的竞争力,父母们总是竭尽全力提供最佳的教育资源,如购置优质学位房、报名各类培训课程和兴趣班。然而,在这些努力之外&a…

AR技术:汽车行业创新发展的新动力

在当今科技飞速发展的时代,增强现实技术(AR)正逐渐在各个领域展现出其独特的优势和应用价值。在汽车行业中,AR也扮演着越来越重要的角色,为汽车的设计、制造、维修和销售等环节带来了诸多创新和变革。以下是汽车行业中…

排序算法之折半插入排序

title: 折半插入排序 date: 2024-7-19 10:17:24 0800 categories: 排序算法 tags:排序算法折半插入排序 description: 折半插入排序(Binary Insertion Sort)是插入排序的一种改进版本。它在插入每个元素时使用二分查找(Binary Search&#x…

一文读懂第三代半导体

一、氮化嫁(GaN)定义 氮化镓材料定义:氮化镓(GaN)主要是由人工合成的一种半导体材料,禁带宽度大于2.3eV,也称为宽禁带半导体材料。 氮化镓材料为第三代半导体材料的典型代表,是研制微电子器件、光电子器件…

AI技术在招聘数据分析洞察中的作用

一、引言:AI赋能招聘新纪元 在数字化转型浪潮中,人工智能技术(AI)正以前所未有的速度渗透至各行各业,其中,招聘领域正经历着一场深刻的变革。传统招聘模式依赖于人工筛选简历、面试评估等低效且主观性强的…

【源码+论文】基于VUE的新闻类网站

系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 获取资料请私聊我 1 概述 1.1课题背景及意义 随着现代网络技术发展,对于新闻类网站的设计现在正处于发展的阶段,所以对的要求也是比较严格的,要从系统的…

c++编程(20)——类与对象(6)继承

欢迎来到博主的专栏——c编程 博主ID:代码小豪 文章目录 继承继承与权限访问 基类和派生类基类和派生类的赋值兼容转换基类与派生类的类作用域派生类与基类的构造函数基类与派生类拷贝构造函数 继承与静态成员final关键字 面向对象编程的核心思想是封装、继承和多态…