`
Turandot
  • 浏览: 51535 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

Oracle 专用服务器和共享服务器连接

阅读更多

Oracle 专用服务器和共享服务器连接

 

    Oracle服务器处理请求的两种最常用的方式,这两种方式分别是专用服务器连接和共享服务器连接。

   

     专用服务器:

        登录时,Oracle总会为我创建一个新的线程。这通常称为专用服务器配置,因为这个服务器进程会在我的会话生存期中专门为我服务。对于每个会话,都为出现一个新的专用服务器,会话与专用服务器之间的存在一对一的映射。按照定义,这个专用服务器不是实例的一部分。我的客户进程(也就是想要连接数据库的程序)会通过某种网络通道(如TCP/IP套接字)与这个专用服务器直接通信,并由这个服务器进程接收和执行我的SQL。如果必要,它会读取数据文件,并在数据库的缓存中查找我要的数据。也许它会完成我的更新语句,也可能会运行我的PL/SQL代码。这个服务器进程的只要目标就是对我提交的SQL调用做出响应:

       具体过程如下:

 

  1. ①client使用设定的协议向Listener发送一个CONNECT包,建立与Listener的连接。
  2. ②Listener检查SID是否已经被定义。如果已经被定义,Listener将fork一个新的进程来处理此连接。一个Bequeath连接就在Listener和新的服务器进程之间建立起来用于传输进程初始化信息。随后,Bequeath连接将被关闭。注意,TCP sockets是被新的服务器进程继承的。
  3. ③服务器进程会给client发送一个RESEND包。
  4. ④一个新的CONNECT包在此从client发送到fork产生的服务器进程
  5. ⑤dedicated服务器进程接到新的连接包,会返回一个ACCEPT包给client。

      专用服务器请求的流程下图所示:

 

 

    

 

 

 

 

      共享服务器:

          在共享服务器中,Oracle使用一个“共享进程”池为大量用户提供服务。共享服务器实际上就是一种连接池机制。利用共享服务器,不必为每一个数据库会话都创建一个专用服务器,而只需建立很少的一部分进程/线程,这些进程/线程将有所有会话共享。这样Oracle就能让更多的用户与数据库连接,否则很难连接更多的用户。客户进程不能与共享服务器直接对话,原因在于这个服务器进程是共享的。为了共享这些进程,还需要另外一种机制,通过这种机制才能与服务器进程“对话”。为此,Oracle使用一个或一组称为调度程序(dispatcher,也称分配程序)的进程。客户进程通过网络与一个调度程序进程通信。这个调度程序进程将客户的请求放入SGA中的请求队列(也是SGA的用途之一)。第一个空闲的共享服务器会得到这个请求,并进行处理。完成这个命令后,共享服务器会把响应放在原调度程序(即接收请求的调度程序)的响应队列中。调度程序进程一直在监听这个队列,发现有结果后,就会把结果传给客户。

        具体过程如下:

  1. ①客户连接向调度器发送一个请求。调度器首先将这个请求放在SGA中的请求队列中。
  2. ②第一个可用的共享服务器从请求队列中取出这个请求并处理。
  3. ③共享服务器的处理结束后,再把响应(返回码、数据等)放到响应队列中,
  4. ④接下来调度器拿到这个响应,传回给客户。

        共享服务器请求的流程下图所示:

 

   

 

   

   

        下图展示了使用共享服务器连接的客户和使用专用服务器连接的客户之间的交互方式。由此还显示出,一个Oracle实 例可以同时使用这两类连接(实际上,即使配置为使用共享服务器连接,Oracle数据库也总是支持专用服务器连接)。

 

    

 

 

 

            

 怎么判断Oracle服务器模式(专用/共享)?

 

1。是否为配置为共享服务器,最主要的参数是
show parameter shared_server
如果数值 > 0 ,就是enable了共享服务器.

也可以从v$parameter 视图中查.

2。在配置为共享服务器的情况,Client可以选择用共享服务器或者专用服务器来连接到数据库,这个参数的控制是在tnsnames.ora里设定的
aaaa=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = aaaa)(PORT = 1521))
)
(CONNECT_DATA =
(SID = aa)
(SERVER = DEDICATED)
)
)
红色部分指定了用DEDICATED方式连接DB.
另外,Background process ,以及通过本地连接进来的,只能是DEDICATED
比如说sqlplus user/pass 形式
如果DB没有配置共享服务器,那么Client只能以DEDICATED方式连接DB.

3。判断一个已经连接的session的连接方式有两种方法
A
select username,server from v$session;
如果server = 'DEDICATED'则是DEDICATED方式
server='SHARED'则是shared方式,并且正有shared_server_process为其服务
server='NONE'的话,则是shared方式,并且当前没有shared_server_process为其服务。

B. 仅用于Unix 底下,似乎windown不行
连接v$session, v$process 看process中的program
1 select p.program,s.server from v$session s , v$process p
2* where s.paddr = p.addr
如果 program 为 。。(S0NN) 的,则是shared方式,并且正有shared_server_process为其服务
如果 program 为 。。(D0NN) 的,则是shared方式,并且当前没有shared_server_process为其服务
如果 program 为 其它的,则是'DEDICATED'方式

 

分享到:
评论

相关推荐

    Oracle数据库专用服务器与共享服务器探究.pdf

    Oracle数据库专用服务器与共享服务器探究.pdf

    建立与Oracle服务器连接的两种模式

    在Oracle9i或者10g中,可以看到有2种连接模式,一种叫做专用服务器连接(dedicated server) ,另外一种叫做共享服务器连接(shared server)。本文为大家介绍一下建立与Oracle服务器连接的两种模式。

    ORACLE共享服务器在军卫一号系统中的应用.pdf

    ORACLE共享服务器在军卫一号系统中的应用.pdf

    Oracle11g数据库入门第5章 后台进程

    服务器进程 专用服务器连接 共享服务器连接 连接与会话 专用服务器与共享服务器 后台进程 中心后台进程 工具后台进程

    oracle服务器及客户端安装简要说明

    该说明主要介绍了oracle的安装说明,分为服务器和客户端两部分,是我们项目组总结出来的内部资料,现在提供给大家共享

    Oracle数据库共享服务器的配置与使用的研究.pdf

    Oracle数据库共享服务器的配置与使用的研究.pdf

    大势至服务器共享文件访问记录软件 v3.1.zip

    通过大势至共享文件审计系统你可以详细审计局域网电脑访问服务器共享文件的行为,包括新建、拷贝、修改、删除、剪切、重命名等操作,从而便于对员工访问共享文件的行为进行全程的记录和查证,便于网管员进行事后审计...

    ORACLE配置tnsnames.ora文件详解

    那么只需在每个要访问ORACLE服务器的客户机上定义该文件,在服务器上无需定义。但是,如果网络上有多台机器均安装了 ORACLE数据库服务器,并且服务器之间有数据共享的要求,那么在每台服务器上都必须定义该文件。...

    维护电信计费系统Oracle的经验和教训

    本资料共包含: Oracle专用与共享服务器的区别.doc 维护电信计费系统Oracle的经验和教训.doc

    oracle SGA PGA UGA 内存

    oracle SGA PGA UGA 内存的概念; UGA和PGA不是一回事; UGA包含了对Oracle共享服务器的会话信息。当oracle的服务采用共享服务器会话模式而没有配置大池时, UGA就位于使用的共享池中。

    ORACLE9i_优化设计与系统调整

    §7.1 应用系统环境规划和Oracle系统安装考虑 91 §7.1.1 操作系统安装考虑 91 §7.1.2 Oracle系统安装考虑 92 §7.2 关于创建多个Oracle实例问题 93 §7.3 Oracle系统安装后的优化基础工作 94 §7.3.1 Oracle系统...

    oracle 11g xe 多个客户机连接服务器的tnsnames.ora配置文件范例

    试用了网上的一些配置文件,竟然没有好用的,就根据oracle官方的配置方法制作了一个,大家共享。节省我们的时间。

    配置Oracle本地Net服务名

    在进行团队开发的时候,一般团队的每一个人只需要安装一个客户端即可,没有必要安装一个Oracle 数据库服务器,而数据库服务器是属于共享的,此时,我们就需要配置客户端。客户端的配置可以有以下两种方式:第一种是...

    服务器功能分类.pdf

    数据库服务器 安装了不同的数据库软件, 提供不同的数据库服务的服务器被称为数据库服 务器,如 Oracle 数据库服务器、MySQL 数据库服务器、Microsoft SQL Server 数 据库服务器等。 3.邮件服务器 邮件服务器是用户...

    Oracle Database 11g初学者指南--详细书签版

    3.2 专用和共享服务器体系结构之间的差别 51 3.2.1 专用服务器 51 3.2.2 共享服务器 52 3.2.3 设置分派进程 53 3.2.4 监视共享服务器的视图 54 3.3 定义连接 55 3.3.1 连接描述符 55 3.3.2 定义连接描述符 ...

    oracle RAC 入门和提高

    真正应用集群,简称Oracle RAC ,是Oracle的并行集群,位于不同服务器系统的Oracle实例同时访问同一个Oracle数据库,节点之间通过私有网络进行通信,所有的控制文件、联机日志和数据文件存放在共享的设备上,...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    3.2 专用和共享服务器体系结构之间的差别 3.2.1 专用服务器 3.2.2 共享服务器 3.2.3 设置分派进程 3.2.4 监视共享服务器的视图 3.3 定义连接 3.3.1 连接描述符 3.3.2 定义连接描述符 3.3.3 Oracle连接管理器 3.3.4 ...

    Navicat for Oracle绿色版

    Navicat for Oracle 透过精简的工作环境,提高 Oracle 开发人员和管理员的效率和效率。... Navicat for Oracle 与云数据库(如 Amazon RDS 和 Oracle Cloud)兼容,并支持本地或远程 Oracle 服务器。

    Oracle 9i&10g编程艺术:深入数据库体系结构(全本)含脚本

    5.1.4 专用服务器与共享服务器 163 5.1.5 专用/共享服务器小结 166 5.2 后台进程 167 5.2.1 中心后台进程 168 5.2.2 工具后台进程 175 5.3 从属进程 178 5.3.1 I/O从属进程 178 5.3.2 并行查询从属进程 179 ...

    oracle9i oracle11g oracle10g 性能调优 基础学习 视频地址

    Oracle一个女人和五个男人的故事(数据库命名习惯) 3 oracle_内部事件(Oracle高级工具的应用) 3 oracle中的查询 4 玩转oracle全套教程 韩顺平 第1讲 oracle基础介绍 4 韩顺平.玩转oracle第2讲.oralce安装 4 ...

Global site tag (gtag.js) - Google Analytics