Oracle 专用/共享服务器连接模式(Dedicated/Shared Server)
创始人
2024-09-25 18:51:05
0

当会话通过客户端连接到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也不会立刻关闭所有的共享服务器进程,而是会等到所有以共享模式连接的客户会话断开,再逐渐关闭共享服务器进行。

相关内容

热门资讯

笔记本xp系统安装安卓系统,轻... 你有没有想过,在你的老式笔记本上安装一个全新的操作系统呢?想象那台陪伴你多年的老笔记本,突然焕发出青...
安卓操作系统吃内存,安卓操作系... 手机里的安卓操作系统是不是让你感觉内存越来越不够用了?别急,今天就来给你好好分析分析这个让人头疼的问...
王者号ios系统怎么转安卓系统... 你是不是也和我一样,对王者荣耀这款游戏爱得深沉呢?尤其是当你发现某个英雄在安卓系统上玩起来更加得心应...
战神遗迹安卓苹果系统,探索神秘... 亲爱的玩家们,你是否曾在游戏中追寻那些传说中的神秘遗迹?今天,我要带你走进一个充满传奇色彩的领域——...
几何a安卓系统升级,畅享智能出... 你有没有发现,你的几何A最近变得聪明多了?没错,就是那个陪伴你上下班的几何A,它悄悄地升级了安卓系统...
系统最清爽的安卓手机,探索系统... 你有没有想过,拥有一部系统最清爽的安卓手机,就像是拥有了夏日里的一阵清风,让人心情舒畅,操作顺畅?今...
安卓10系统严重有问题,揭秘严... 最近你的安卓手机是不是也遇到了一些让人头疼的问题呢?别急,让我来给你一探究竟,看看安卓10系统到底有...
安卓系统闽政通打不开,“闽政通... 最近是不是有不少小伙伴在使用安卓手机时遇到了一个让人头疼的问题——闽政通打不开?别急,今天就来给你详...
安卓系统有指纹忘了图案,解锁攻... 手机解锁方式千千万,指纹解锁和图案解锁可谓是其中的佼佼者。但有时候,指纹解锁用得太多,导致忘记了图案...
QQ飞车安卓系统怎么换苹果系统... 你是不是也和我一样,对QQ飞车这款游戏爱得深沉呢?不过,最近我发现了一个超级有趣的问题:怎么把QQ飞...
安卓可冻结的系统文件,那些不可... 你知道吗?在安卓的世界里,有一些神秘的文件,它们就像隐藏在深宫中的宝贝,让人既好奇又敬畏。这些文件,...
安卓系统安装需要备份吗,关键指... 你最近是不是在准备给安卓手机升级系统或者安装新应用呢?别急,别急,在这之前,有个小细节你得注意一下—...
高仿ios的安卓系统,带你领略... 你有没有想过,为什么安卓手机那么受欢迎,却还是有人对iOS系统念念不忘呢?其实,现在市面上就有一种神...
安卓系统全能播放器,尽享视听盛... 你有没有发现,手机里总是装满了各种音乐、电影、电视剧,但是找到一个能让你一次性搞定所有播放需求的软件...
在哪里安装安卓系统好,安卓系统... 你有没有想过,为什么安卓系统这么受欢迎呢?它那强大的兼容性和丰富的应用生态,简直让人爱不释手。但是,...
如何自己提升安卓系统,自我提升... 你有没有发现,随着智能手机的普及,安卓系统已经成为了我们生活中不可或缺的一部分呢?但是,你是否想过,...
安卓子系统内存不足,应对策略与... 手机突然卡顿,是不是安卓子系统内存不足在作怪?别急,让我带你一探究竟,揭开这个问题的神秘面纱!一、安...
一鸣安卓系统如何安装,轻松上手... 你有没有想过,给你的安卓手机换换口味?别看它现在运行得风生水起,偶尔来点新鲜玩意儿,岂不是更带劲?今...
安卓操作系统的归属,源自谷歌的... 你有没有想过,那个陪伴你每天刷抖音、玩游戏、处理工作的安卓操作系统,它究竟是谁的孩子呢?今天,就让我...
安卓启动系统设置界面,揭秘安卓... 你有没有发现,每次打开安卓手机,那启动系统设置界面就像是个神秘的宝箱,里面藏着无数的小秘密?今天,就...