建立与Oracle数据库服务器连接的两种连接模式(专用服务器与共享服务器)

在建立Oracle数据库的时候,应该会在数据库建立助手向导上面看到这么一个选项,就是数据库的连接模式采用什么方式。在Oracle9i或者10g中,可以看到有2种连接模式,一种叫做专用服务器连接(dedicated server) ,另外一种叫做共享服务器连接(shared server)。下面我们来分类说一下这两种连接方式的不同点。

专用服务器模式就是说每次在对Oracle进行访问的时候,Oracle服务器的Listener会得到这个访问请求,然后回为这个访问创建一个新的进程来进行服务。所以说,对于每一个客户端的访问,都会生成一个新的进程进行服务,是一种类似一对一的映射关系。这种连接模式的一个很重要的特点就是UGA(用户全局域)是存储在PGA(进程全局域)中的,这个特性也很好说明了当前用户的内存空间是按照进程来进行分配的。

而另外的共享服务器连接则是一种在程序编写的时候通常会用到的连接池(pool)的概念。采用这种模式的话,在数据库的初始化的时候就会创建一批服务器连接的进程,然后把这些连接进程放入一个连接池来进行管理。初始化的池中的进程数量在数据库初始化建立的时候是可以手动设置的。在连接建立的时候,Listener首先接受到客户端的建立连接的请求,然后Listener去生成一个叫做调度器(dipatcher)的进程与客户端进行连接。调度器把把客户端的请求放在SGA(系统全局域)的一个请求队列中,然后再共享服务器连接池中查找有无空闲的连接,然后让这个空闲的服务器进行处理。处理完毕以后再把处理结果放在SGA的相应队列中。调度器通过查询相应队列,得到返回结果,再返回给客户端。这种连接模式的优点在于服务器进程的数量可以得到控制,不大可能出现因为连接人数过多而造成服务器内存崩溃。但是由于增加了复杂度以及请求相应队列,可能性能上有所下降。

总之,谈到两种连接方式的优点和缺点,真的是各有千秋。在专用服务器模式下,优点就是每个用户都有一个连接,所以大家不至于有的应用占着连接造成别的客户的请求给挂起了。而最大的缺点在于内存管理上,因为随着连接数的增加,每增加一个连接,就要分配一份PGA,如果增加10000个连接,那就是10000个PGA要提供,内存很容易吃爆掉。而共享连接方式优点在于连接数量固定,所以内存数量不会占用很多,不过在数据库初始化的时候,共享服务器就要初始化好,比如有100个共享服务器,由于共享连接模式下,UGA是分配在PGA中的,所以初始化的时候需要初始化比较多的内存,也就是那100个UGA的内存。另外共享服务器还有一个优点就是很多数据库高级连接特性都要求使用共享服务器,所以有时候为了使用这些特性迫不得已只好设定为共享服务器连接模式。共享服务器的最大的缺点还是在于数据仓库模式下运行的时候,如果有大量的请求需要长时间占用服务器,那么就会造成很多别的请求的挂起,导致整个服务器性能的降低。另外,在有些应用服务器提供了连接池的时候,比如J2EE中经常有应用服务器的连接池,比如Weblogic的啊,还有开源的DBCP以及C3P0等等。在有这些连接池的时候,共享服务器对于性能上反而造成了累赘。另外,有时候在使用共享服务器的时候,由于数据事务处理不及时,而占住服务器的进程试图锁定前面事务没有处理的数据,会造成数据库的死锁,特别是如果没有设定连接锁定超时的话,只能通过DBA上数据库杀进程的方式来解决了。不过也有这种的最佳方案,那就是混合模式,也就是对于同一个数据库服务器,既有专用服务器,也有共享服务器,共享服务器用来处理那种事务性很强的活。而专用服务器用来对付那些比较耗时间和资源的请求。当然,也要看到时候的实际情况如何再做决定,两者没有绝对的哪种好哪种不好的差别。

数据湾:428140675

ftp无法与服务器建立连接_建立与Oracle数据库服务器连接的两种连接模式相关推荐

  1. 服务器异地备份共享文件夹方法,mssql数据库异地备份的两种方法

    mssql数据库异地备份的两种方法 /*两种方法的前提:1.本地服务器的sqlserver agent服务保证处于启动状态 2.远程计算机(计算机管理里)建立一个普通权限用户,并为其加上密码(例如用户 ...

  2. FTP服务器的两种工作模式

    FTP协议: FTP(File transfer Protocol)是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20.21号端口, 其中端口20(数据端口)用于进行数据传输,端 ...

  3. Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azure云上搭建云服务

    Android连接SQLServer详细教程(数据库+服务器+客户端),并在微软Azure云上搭建云服务 参考博客:http://blog.csdn.net/zhyl8157121/article/d ...

  4. mysql连接oracle数据库服务器_Oracle 远程链接oracle数据库服务器的配置

    远程链接oracle数据库服务器的配置 by:授客 QQ:1033553122 原理: 一.Oracle客户端与服务器端的通讯机制 1.OracleNet协议 如下图所示,Oracle通过Oracle ...

  5. oracle数据库服务器01

    [以下操作,必须以超级管理员身份登录,才能修改]   oracle安装后,会默认生成很多个用户 以超级管理员身份登录,请注意,其中的空格符: [ sys是一个超级管理员,有最大的权限,dba是角色名, ...

  6. FTP文件传输协议原理详解(两种工作模式)

    初始FTP     文件传输协议(File Transfer Protocol,缩写:FTP)是一个用于在计算机网络上在客户端和服务器之间进行文件传输的应用层协议.文件传送(file transfer ...

  7. Oracle数据库服务器IO高的分析方案和案例探讨

    Oracle数据库服务器IO高的分析方案和案例探讨 本文原题<ORACLE数据库服务器IO高的分析方案和案例探讨> 目录: 慧眼识珠--服务器磁盘这么繁忙,到底是谁干的? 谨记于心--OR ...

  8. 服务器系统坏了如何导出sql数据库,服务器系统坏了如何导出sql数据库

    服务器系统坏了如何导出sql数据库 内容精选 换一换 PostgreSQL支持逻辑备份.您可使用pg_dump逻辑备份功能,导出备份文件,再通过psql导入到RDS中,实现将PostgreSQL的数据 ...

  9. Linux服务器 | 服务器模型与三个模块、两种并发模式:半同步/半异步、领导者/追随者

    文章目录 两种服务器模型及三个模块 C/S模型 P2P模型 I/O处理单元.逻辑单元.存储单元 并发 同步与异步 半同步/半异步模式 变体:半同步/半反应堆模式 改进:高效的半同步/半异步模式 领导者 ...

最新文章

  1. Linux mysql 5.6: ERROR 1045 (28000): Access denied for user 'root'@'localhost' (usin
  2. 新书上市 | 人类程序员,你能不能比三体人更懂量子纠缠?
  3. 二元函数泰勒公式例题_考研数一对二元函数的二阶泰勒公式的要求是了解,那我们要了解到什么程度呢?会出那种类型的题呢?...
  4. 自动调节图像的对比度 和改变图像的大小
  5. C#链接数据库增删改查的例子
  6. 利用opencv改变视频长宽
  7. python get请求 url传参_用Python-get方法向页面发起请求,参数传不进去是怎么回事...
  8. 预处理_气体在线分析仪预处理系统的工作内容
  9. 阅读副本和Spring Data第2部分:配置基础项目
  10. Java:选择正确的集合
  11. python剑指offer替换空格_《剑指Offer》字符串 替换空格
  12. 解决本地工具无法连接服务器上的mysql的问题
  13. php利用反射机制查找类和方法的所在位置
  14. zznuoj 2174: 水题一发 希望笑纳
  15. java毕业设计药品管理系统Mybatis+系统+数据库+调试部署
  16. 熊孩子说“你没看过奥特曼”,赶紧用Python学习一下,没想到
  17. [转载] 古墓丽影1
  18. 微信如何开通直播?开通方法有2种
  19. 自由式滑雪世界冠军谷爱凌成为汤臣倍健Yep科学营养·品牌大使
  20. ASP.NET(C#)常用数据加密和解密方法

热门文章

  1. 牛!江苏老人用AIoT技术管理千亩良田
  2. 放下表格——开箱即用的新冠疫苗接种统计模板来了!
  3. 云效DevOps实践-代码评审
  4. 开放下载!《Rocket MQ 使用排查指南》精解100+常见问题
  5. 物联网安全威胁及应对措施
  6. 阿里云边缘计算与云边端协同网络的融合与挑战
  7. 《CODM》的成功源自何处?TGA年度移动游戏的总结和思考
  8. 哈根达斯发布违法广告被罚1万 用代可可脂冒充巧克力
  9. MySQL复习资料(六)——MySQL-多表联合查询
  10. 【蓝桥杯Java_C组·从零开始卷】第七节、递归