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

2016-02-19 15:43 5 1 收藏

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的建立与Oracle数据库服务器连接的两种连接模式(专用服务器与共享,希望大家看完后能赶快学习起来。

【 tulaoshi.com - 编程语言 】

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

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

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1610268.html

延伸阅读
标签: PHP
转自:http://www.webdn.com/web_file/program/php/0602080309/ 【摘 要】 本文将演示如何使用PHP连接一个LDAP服务器。具体的例子是连接到一个公共的LDAP服务器并且进行搜索。这个例子模拟的是Netscape Communicator 4.*,通过自己的地址本连接到LDAP资源。   本文将演示如何使用PHP连接一个LDAP服务器。具体的例子是...
标签: 服务器
2013如何选购数据库服务器 随着论坛、电商、ERP等行业迅速发展,数据库变得愈加重要,且在具备一定规模之后,对服务器硬件的设备愈加严苛。对这些企业来讲,服务器、存储设备一旦无法承受数据库所带来的工作压力,将直接造成系统崩溃或多项业务瘫痪,其损失则不言而喻。 2013新年伊始,以数据库为主的企业如何挑选一款可靠的、稳定的...
在专用连接方式中,每一个连接到数据库服务器的客户端请求,服务器会和客户端之间建立起连接,这个连接用于专门处理该客户端的所有请求,直到用户主动断开连接或网络出现中断。在连接处于空闲时,后台进程PMON会每隔一段时间,就会测试用户连接状况,如果连接已断开,PMON会清理现场,释放相关的资源。 专用连接相当于一对一的连接,能够快...
MySQL插件式存储引擎是MySQL数据库服务器中的组件,负责为数据库执行实际的数据I/O操作,并能允许和强制执行面向特殊应用需求的特定特性集合。使用特殊存储引擎的主要优点之一在于,仅需提供特殊应用所需的特性,因此,数据库中的系统开销较小,最终结果具有更有效和更高的数据库性能。这也是MySQL被始终视为具有高性能的原因之一,在行业...
标签: 服务器
远程连接服务器for Windows 2003 & 2008   1、选择开始菜单-所有程序-附件-远程桌面连接 TIPS:也可以使用 开始菜单-运行,输入命令mstsc后回车,就可以启动远程桌面连接;或者使用快捷键Win+R来启动运行窗口,输入命令mstsc后回车启动远程桌面连接 2、在计算机后面的输入框中,输入您的云服务器的外网IP地址,然...

经验教程

458

收藏

60
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部