目录
1.综述
2.专用服务器
3.共享服务器
4. 使用场景
5. 服务器模式设置
6. 服务器模式判断
7. 关闭共享服务器模式
首页 数据库 mysql教程 ORACLE的连接模式专用服务器和共享服务器

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

Jun 07, 2016 pm 03:32 PM
oracle 专用 共享 服务器 模式 综述 连接

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,即可使用共享服务器连接。

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 ;

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

oracle打不开怎么办 oracle打不开怎么办 Apr 11, 2025 pm 10:06 PM

Oracle 打不开的解决办法包括:1. 启动数据库服务;2. 启动监听器;3. 检查端口冲突;4. 正确设置环境变量;5. 确保防火墙或防病毒软件未阻止连接;6. 检查服务器是否已关闭;7. 使用 RMAN 恢复损坏的文件;8. 检查 TNS 服务名称是否正确;9. 检查网络连接;10. 重新安装 Oracle 软件。

oracle游标关闭怎么解决 oracle游标关闭怎么解决 Apr 11, 2025 pm 10:18 PM

解决 Oracle 游标关闭问题的方法包括:使用 CLOSE 语句显式关闭游标。在 FOR UPDATE 子句中声明游标,使其在作用域结束后自动关闭。在 USING 子句中声明游标,使其在关联的 PL/SQL 变量关闭时自动关闭。使用异常处理确保在任何异常情况下关闭游标。使用连接池自动关闭游标。禁用自动提交,延迟游标关闭。

oracle怎么循环创建游标 oracle怎么循环创建游标 Apr 12, 2025 am 06:18 AM

Oracle 中,FOR LOOP 循环可动态创建游标, 步骤为:1. 定义游标类型;2. 创建循环;3. 动态创建游标;4. 执行游标;5. 关闭游标。示例:可循环创建游标,显示前 10 名员工姓名和工资。

oracle数据库怎么停止 oracle数据库怎么停止 Apr 12, 2025 am 06:12 AM

要停止 Oracle 数据库,请执行以下步骤:1. 连接到数据库;2. 优雅关机数据库(shutdown immediate);3. 完全关机数据库(shutdown abort)。

oracle日志写满怎么办 oracle日志写满怎么办 Apr 12, 2025 am 06:09 AM

Oracle 日志文件写满时,可采用以下解决方案:1)清理旧日志文件;2)增加日志文件大小;3)增加日志文件组;4)设置自动日志管理;5)重新初始化数据库。在实施任何解决方案前,建议备份数据库以防数据丢失。

HDFS配置CentOS需要哪些步骤 HDFS配置CentOS需要哪些步骤 Apr 14, 2025 pm 06:42 PM

在CentOS系统上搭建Hadoop分布式文件系统(HDFS)需要多个步骤,本文提供一个简要的配置指南。一、前期准备安装JDK:在所有节点上安装JavaDevelopmentKit(JDK),版本需与Hadoop兼容。可从Oracle官网下载安装包。环境变量配置:编辑/etc/profile文件,设置Java和Hadoop的环境变量,使系统能够找到JDK和Hadoop的安装路径。二、安全配置:SSH免密登录生成SSH密钥:在每个节点上使用ssh-keygen命令

甲骨文在商业世界中的作用 甲骨文在商业世界中的作用 Apr 23, 2025 am 12:01 AM

Oracle不仅是数据库公司,还是云计算和ERP系统的领导者。1.Oracle提供从数据库到云服务和ERP系统的全面解决方案。2.OracleCloud挑战AWS和Azure,提供IaaS、PaaS和SaaS服务。3.Oracle的ERP系统如E-BusinessSuite和FusionApplications帮助企业优化运营。

oracle动态sql怎么创建 oracle动态sql怎么创建 Apr 12, 2025 am 06:06 AM

可以通过使用 Oracle 的动态 SQL 来根据运行时输入创建和执行 SQL 语句。步骤包括:准备一个空字符串变量来存储动态生成的 SQL 语句。使用 EXECUTE IMMEDIATE 或 PREPARE 语句编译和执行动态 SQL 语句。使用 bind 变量传递用户输入或其他动态值给动态 SQL。使用 EXECUTE IMMEDIATE 或 EXECUTE 执行动态 SQL 语句。

See all articles