0

0

ORACLE的连接模式专用服务器和共享服务器

php中文网

php中文网

发布时间:2016-06-07 15:32:33

|

1480人浏览过

|

来源于php中文网

原创

1.综述 oracle数据存在两种连接模式,一种是一个会话建立一个连接的专用服务器模式;另外一种是多个会话共用一个连接的共享服务器模式。在不同的场景中,恰当的运用可以极大的提高应用访问效率和命令执行效率。 2.专用服务器 专用服务器,顾名思义,就是指该

1.综述

oracle数据存在两种连接模式,一种是一个会话建立一个连接的专用服务器模式;另外一种是多个会话共用一个连接的共享服务器模式。在不同的场景中,恰当的运用可以极大的提高应用访问效率和命令执行效率。

2.专用服务器

专用服务器,顾名思义,就是指该服务器连接只提供单个用户使用,不得与其他用户共用。当用户采取专用服务器方式请求连接时,服务器会专门为该用户创建一个连接进程提供服务。

当我们进行专用服务器方式连接数据库时,则会创建一个专门的进程来提供服务:

ORACLE的连接模式专用服务器和共享服务器

然后,我们通过pl/sql developer用 scott用户与实例建立两个专用服务器连接,再次查询数据库实例进程:

ORACLE的连接模式专用服务器和共享服务器

可以发现实例多了两个会话进程,从而得出实例为每个会话分配一个专门进程,会话与专用服务器一一对应。

专用服务器的原理图如下所示:

ORACLE的连接模式专用服务器和共享服务器

当用户登录时,总会创建一个进程来为会话提供专门的服务。每当一个新会话建立,监听程序会创建新的专用服务器来提供专门服务,会话与专门服务器一一对应。用户的客户进程会通过某种网络通道与专门服务器直接通信,来响应我们提交的SQL、PL/SQL调用。

3.共享服务器

共享服务器,可以理解为类似连接池原理,有众多的会话,但可供使用的连接数一定,通过资源调度来动态管理会话与实例建立连接,这些连接供所有的会话共享,可以有效的减少资源负载。

共享服务器的原理如下图所示:

ORACLE的连接模式专用服务器和共享服务器

由于共享服务器进程的共享,需要在客户进程与共享服务器通信之间建立一种调度机制——调度程序,来保障调度的有效性。用户提出连接请求,监听器接收到连接请求后,会从可调用的调度程序中选择一个,将连接端口等信息返回给用户,调度程序在相应的端口等待,客户进程将于该调度程序进行连接。与调度程序连接后,将用户请求转入SGA的请求队列中,第一个空闲的共享服务器会得到这个请求,并进行处理。待处理完成,共享服务器会将结果放在响应的队列中。调度程序一致在监听响应队列,一旦发现有结果了,就会把结果传给用户。

4. 使用场景

专用服务器与共享服务器的主要区别:

客户进程不会与共享服务器直接通信,而可以与专用服务器直接通信。在客户进程与共享服务器之间还有一层调度机制。

共享服务器方式比专用服务器方式能够更好的分配资源,均衡负载,但是调度机制在使用过程中对系统资源有一定的消耗,执行效率有所下降,所以需要慎重使用方式。

专用服务器使用环境:

1.       连接用户数少的情况下,并不超出共享进程的限定数,提高了连接效率。

2.       数据库为了实现数据仓库,则必须使用专用服务器,oracle的强制要求。

3.       当联机事务处理系统满足用户连接数大于共享进程的限定数,且处理的事务都是大,则专用服务相对于共享服务器更高效。

共享服务器使用环境:

1.       连接用户数比较多,事务都比较小,则共享服务器可以高效的配置资源调高效率。

2.       服务器内存的考虑,共享服务器可以再有效的资源下更加高效。

3.       例如:负载均衡等特性要求采用共享服务器。

ORACLE默认推荐使用的是专用服务器方式,而共享服务器带了优势:

1.       操作系统进程数减少,减少操作系统上下文切换的资源消耗,提高效率。

2.       有效的限制并发度,即将系统消耗现在一个合理的范围。

这两种模式有利有弊需要视情况使用。

5. 服务器模式设置

5.1 专用服务器

专用服务器这是ORACLE的默认启动选项,不需要额外的设置。

5.2 共享服务器

1.参数:SHARED_SERVERS

SHARED_SERVERS的值大于0,表示启动了共享模式。

共享服务器个数:

alter systemset shared_servers = 1 scope=both ;

最大共享服务器个数:

alter systemset max_shared_servers = 5 scope=both ;

2.参数:DISPATCHERS

alter systemset dispatchers=’ (PROTOCOL=TCP) (SERVICE=zrgXDB) ‘;

ORACLE文档上指出该参数为可选项,如果不配置将匹配任何协议和服务。但在测试将参数设置为控制,进行登录时,显示失败。

PROTOCOL表示连接的协议。

SERVICE表示允许共享服务器的服务。

3.在客户端的tnsnames.ora 的tns设置中,在 CONNECT_DATA 设置中将SERVER 的值 DEDICATED改为SHARED,即可使用共享服务器连接。

HTShop网上购物系统
HTShop网上购物系统

HTShop网上购物系统由恒天网络科技有限公司根据国际先进技术和国内商务特点自主版权开发的一款具有强大功能的B2C电子商务网上购物平台。HTShop以国际上通用流行的B/S(浏览器/服务器)模式进行设计,采用微软公司的ASP.NET(C#)技术构建而成。 2007-11-10 HTShop CS 通用标准版 v1.1.11.10 更新内容自由更换模版功能开放 修改了购买多款商品,会员中心订单只显示

下载
5.3 TNS配置

在客户端的TNS中配置如下:

ORACLE的连接模式专用服务器和共享服务器

根据监听器状态,服务zrgXDB.zrg.com可以配置共享服务器连接:

DBZRG =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.199.134)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = SHARED)

      (SERVICE_NAME = zrgXDB.zrg.com)

    )

  )

如果我们将SERVICE_NAME改为orcl.zrg.com或pdbzrg.zrg.com,则会出现ORA-12520: TNS: 监听程序无法找到需要的服务器类型的可用句柄

而专用服务器的连接可以配置为:

DBZRG =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.199.134)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = zrgXDB.zrg.com)

    )

  )

专用服务器模式是数据库默认支持的所以无需配置,而共享服务器需要配置开启的,支持共享服务器模式的,也可以进行专用服务器模式连接。

我们也可以将SERVICE_NAME改用SID=epps代替,epps作为连接的实例,存在服务使用共享服务器,可以建立共享服务器连接,同时也可以建立专用服务器连接。

6. 服务器模式判断

判断当前是否启动了共享服务器可以从以下视图入手:

1.  V$session

ORACLE的连接模式专用服务器和共享服务器

可以看到我用PL/SQL DEVELOPER与实例建立了共享服务器方式:SERVER类型为SHARED,如果为NONE也表示了启用了共享服务器。还可以发现系统后台进程全部启动了专用服务器进程。

2. V$shared_server

启动共享服务器:

ORACLE的连接模式专用服务器和共享服务器

关闭共享服务器:

ORACLE的连接模式专用服务器和共享服务器

需要将已经建立的共享服务器的会话结束,该参数才会发生变化。

3.   V$circuit

ORACLE的连接模式专用服务器和共享服务器

有查询结果则表示启用了共享模式,否则不能做出判断。

4. 查看监听器状态

ORACLE的连接模式专用服务器和共享服务器

从以上信息,我们看到有一个服务zrgXDB.zrg.com使用的是共享服务器,有一个调度器“D000”;还有两个服务orcl.zrg.com,pdbzrg.zrg.com使用的是专用服务器。

7. 关闭共享服务器模式

将参数shared_servers的值设置为0,就可以禁用共享服务器模式了。

命令如下:

alter systemset shared_servers = 0 ;

相关专题

更多
ip地址修改教程大全
ip地址修改教程大全

本专题整合了ip地址修改教程大全,阅读下面的文章自行寻找合适的解决教程。

86

2025.12.26

压缩文件加密教程汇总
压缩文件加密教程汇总

本专题整合了压缩文件加密教程,阅读专题下面的文章了解更多详细教程。

50

2025.12.26

wifi无ip分配
wifi无ip分配

本专题整合了wifi无ip分配相关教程,阅读专题下面的文章了解更多详细教程。

100

2025.12.26

漫蛙漫画入口网址
漫蛙漫画入口网址

本专题整合了漫蛙入口网址大全,阅读下面的文章领取更多入口。

293

2025.12.26

b站看视频入口合集
b站看视频入口合集

本专题整合了b站哔哩哔哩相关入口合集,阅读下面的文章查看更多入口。

589

2025.12.26

俄罗斯搜索引擎yandex入口汇总
俄罗斯搜索引擎yandex入口汇总

本专题整合了俄罗斯搜索引擎yandex相关入口合集,阅读下面的文章查看更多入口。

725

2025.12.26

虚拟号码教程汇总
虚拟号码教程汇总

本专题整合了虚拟号码接收验证码相关教程,阅读下面的文章了解更多详细操作。

63

2025.12.25

错误代码dns_probe_possible
错误代码dns_probe_possible

本专题整合了电脑无法打开网页显示错误代码dns_probe_possible解决方法,阅读专题下面的文章了解更多处理方案。

30

2025.12.25

网页undefined啥意思
网页undefined啥意思

本专题整合了undefined相关内容,阅读下面的文章了解更多详细内容。后续继续更新。

94

2025.12.25

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SQL 教程
SQL 教程

共61课时 | 3.2万人学习

Java 教程
Java 教程

共578课时 | 38.9万人学习

oracle知识库
oracle知识库

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号