1. 怎么查看自己的oracle是共享还是专用服务器

2. 怎么修改设置

3.各有什么优缺点

4.适用环境

对于专用服务器,每一个数据库连接,oracle都会分配一个专门的进程为其服务

oracle@ora10g:~$ ps -aef | grep orcl

oracle    2096  2064  0 08:38 ?        00:00:01 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    2252  2251  2 09:09 ?        00:00:00 oracleorcl (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))

对于共享服务器,oracle不会为每个连接建立一个服务进程, 而是通过一个调度程序,从共享进程池中调度一个进程为其服务。

检查你的oracle是专用服务器还是共享,要查看你的tnsnames.ora配置文件 , 如下这个就是用的专用服务器方式连接的。Oracle 网络监听程序会根据这个文件做相应处理,如果是专用服务器就fork, exec一个服务进程。如果是共享服务器,就通过调度程序找到服务进程。

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ora10g.localhost.com)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

专用 一个Server process为一个用户服务,主要用于业务时间较长,用户数不多的情况
共享模式 一个Server process为多个用户服务,主要用于业务时间较短,用户数量比较大的应用

下面是转载来的【http://www.cnblogs.com/programwjy/archive/2010/08/24/1807249.html】

####################################################################

Oracle专用服务器与共享服务器的区别

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

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

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

  总之,在开发阶段中,用第一种专用服务器可能好一些,因为少了一些中间的复杂度,而且开发的时候一般连接的数量也少。而在多个应用同时使用一个 数据库的实际应用环境下,采用第二种方法可能好一些,因为如果到时候突然有1000个或者10000个请求连接的话,数据库服务器如果同时建立10000 个连接,肯定要受不了的。当然,也要看到时候的实际情况如何再做决定,两者没有绝对的哪种好哪种不好的差别

关于这两者的比较"假如你来到一个城市,要在这个城市的不同的地方办几件事情,在交通方面你有两种选择:一个是雇一辆专车,这辆专车将会把你从A带到B, 一直等你把在B的事情办完,在把你从B带到C。。。。。。另一种选择是给出租车公司打电话订辆出租车,先把你从A带到B,然后你和出租车该干嘛干嘛,你去 办你的事情,出租车去接别的生意,等你在B的事情办完了,你再跟出租车公司订车,出租车公司将会联系当时在B附近的其他出租车去接你。。。。。。

首先,dedicated servers的设置非常简单-----不需要设置,这个是oracle的默认选项

而对于shared servers,你就要需要做一些额外的设置,当让按照administrator guide并不难,关键是你需要决定到底需要多少个shared server servers和多少个dispatcher,这不仅仅需要经验的积累,还需要持续的观察和调整。
在dedicated servers里,你所有的等待都是数据库本身的等待,而在shared servers里你有可能需要等待一个available的shared server process。

很明显,当用户并发的连接数很大的时候,dedicated servers的server process个数也会变得很大,对于操作系统来说多一个process就意味着多一点管理负担,要知道操作系统支持的同时并发数可不是无限的。这意味 着,在dedicate servers里,当你有大量的用户连接(比如,同一时间超过5000个用户连上来),你的系统负担就会相当大。而这种情况shared servers就可以处理的相对好一些,因为加入同时有5000个用户连上来而且我们知道一般只有1%的连接是active,那我们只需要设置50个 shared servers就可以把所有的用户请求处理得很好,并节省了系统资源。

作为一个好处,shared servers可以用来控制concurrent。要知道用户的并发数和系统的处理能力决不是成正比的(可以下面的图),当用户并发数超过一个阀值,系统 的处理能力会明显下降。通过shared servers可以控制系统的concurrent不超过这个阀值。

在引入PGA的自动管理以前,shared servers是要比dedicated servers节省内存的,然后在自动管理的PGA引入之后,shared servers的这个优势已经不像我们想象的那么不明显了。

dedicate servers一个server process为了一个较大的request而长时间的工作而不影响其它的users,然而在shared servers,一些较大的request会影响其它的用户。

还需要考虑其他的因素,比如,如果在前端使用了weblogic的connecting pool,那么你在database level再使用shared servers可能就不是很必要,因为这时你的用户连接已经在weblogic层面上得到了控制。

shared servers还有一个所谓的伪死锁的问题,这点大家参考一下tom的新书就知道了。

关于dedicated servers和shared servers的话题我们就讨论这么多,最后给大家一个小提示:其实dedicated servers和shared servers是可以并存的,实际上,即使你使用了shared servers,某些管理操作也是必须在dedicated 模式下来做的,比如startup或shutdown database。如果你实在难以选择,如果你的应用可能一部分是OLTP的(用户量也很大),一部分是DW的,其实你可以考虑同时使用 dedicated servers和shared servers。

"

查看运行情况:

idle> show parameter shared_server mts_servers

NAME_COL_PLUS_SHOW_PARAM TYPE
---------------------------------------------------------------- -----------
VALUE_COL_PLUS_SHOW_PARAM
-----------------------------------------------------------------------------------------------------------------------------------
max_shared_servers integer
20
shared_server_sessions integer
165
shared_servers integer
1

--如果VALUE_COL_PLUS_SHOW_PARAM大于0为dedicated模式
idle> select p.program,s.server from v$session s , v$process p
2 where s.paddr = p.addr
3 ;

PROGRAM SERVER
------------------------------------------------ ---------
oracle@infa (PMON) DEDICATED
oracle@infa (DBW0) DEDICATED
oracle@infa (LGWR) DEDICATED
oracle@infa (CKPT) DEDICATED
oracle@infa (SMON) DEDICATED
oracle@infa (RECO) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED
oracle@infa (TNS V1-V3) DEDICATED

15 rows selected.

模式切换:

客户端建立的连接。
如果服务器是专用模式,客户端再怎么修改也没有用。
服务器切换专有和共享模式的方法是修改参数文件中的参数。

sample:

trace:http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14231/manproc.htm#sthref630

大多数情况下我们更倾向或习惯专用模式,两种模式下,对sga等分配都会有不同,所以如果转换成mts模式,别忘了sga也是需要调整的。最典型的 是mts模式需要较大的large_pool_size。如果真想转换还是仔细看看oracle关于mts的文档。共享连接只是把连接SESSION信息 放在LARGE POOL,所以LARGE POOL要大一些。而专用连接的SESION信息放在PGA。

Note:
1. 如果是dedicated server,则客户端只能创建dedicated server connection
2. 如果是shared server,则客户端能创建dedicated server connection和shared server connection,只要在service name中指定server=dedicated or server=shared.

转载于:https://www.cnblogs.com/xzpp/p/3395155.html

Oracle 体系结构2 - 共享和专用服务器相关推荐

  1. oracle临时表经常被锁_5.性能测试 - Oracle体系结构和性能优化简介

    体系结构 Oracle体系结构示意图 Oracle服务器: Oracle服务器是一个数据库管理系统,它为信息管理提供了开放.综合和集成的方法,包括Oracle实例和 Oracle数据库. Oracle ...

  2. oracle awr报告生成_5.性能测试 - Oracle体系结构和性能优化简介

    体系结构 Oracle体系结构示意图 Oracle服务器: Oracle服务器是一个数据库管理系统,它为信息管理提供了开放.综合和集成的方法,包括Oracle实例和 Oracle数据库. Oracle ...

  3. Oracle体系结构之内存结构(SGA、PGA)

    Oracle体系结构之内存结构(SGA.PGA) 一.内存结构 SGA(System Global Area):由所有服务进程和后台进程共享: PGA(Program Global Area):由每个 ...

  4. Oracle DBA学习基础篇(一) Oracle体系结构 学习笔记

    这里是我通过Oracle DBA实战这本书学习的 Oracle体系结构,大部分是我对书中的内容做的总结,还有遇到不理解的知识点,通过查询资料做的整合.通过这篇博客希望可以让你对Oracle的一些内部原 ...

  5. ORACLE 体系结构知识总结

    ORACLE 体系结构 .Oracle 体系结构图: .1.ORACLE 实例 .1.1. Oracle 实例 Oracle实例包括内存结构和后台进程 System Global Area(SGA) ...

  6. oracle体系结构-内存管理

    一.Oracle体系结构概述 数据库--驻留在磁盘上的--各种磁盘文件(数据文件.控制文件.日志文件) 实例--驻留在内存--内存组件+进程---------------一旦数据库关闭,不存在了 数据 ...

  7. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  8. oracle实例的概念组成,oracle体系结构的两个基本概念:数据库和实例

    您可能感兴趣的话题: oracle 核心提示:要了解oracle体系结构必须先了解两个基本的概念: 数据库和实例. 要了解oracle体系结构必须先了解两个基本的概念: 数据库和实例. 一: 数据库 ...

  9. 干货分享 | 史上最全Oracle体系结构整理

    本文对Oracle体系结构做了详细的整理汇总,供大家参考学习. 一.Oracle组成 oracle分两块,oracle数据库软件和oracle数据库.oracle数据库软件位置通过以下命令可以找到: ...

最新文章

  1. ibatis调用sqlserver存储过程
  2. BugkuCTF-Misc:隐写2
  3. 盘点2020国内本科开设人工智能专业高校
  4. MySQL查询缓存总结
  5. mysql中的所有类型_mysql中常用的数据类型
  6. “无法找到运行搜索助理需要的一个文件”的解决办法
  7. 电脑怎么结束进程_小协漫谈 | 聊聊电脑卡顿那些事
  8. caffeine 时间轮的实现
  9. Centos无法卸载时处理办法
  10. 电机振动噪声(NVH)——整数槽和分数槽谐波分析
  11. c语言健康指数,C-AHI——中国汽车健康指数
  12. vue+cordova 实现第三方登录( QQ 微信 微博)之微博登录
  13. 多商户JAVA扫码点餐小程序源码SaaS模式
  14. ESS定时调度问题修复
  15. Linux文件内容查阅 - cat, tac, nl, more, less, head, tail, od
  16. mysql高级教程(一)
  17. 5 打印选课学生名单 (25 分)
  18. 《算法导论》习题5.3-1 ~ 5.3-7
  19. Mac Xnip 截图软件快捷键设置
  20. 模拟微博用户注册的程序【使用了HashSet集合实现】

热门文章

  1. 厉害了,史上最 “污” 技术解读。。
  2. 树莓派上利用 Tensorflow 实现小车的自动驾驶
  3. Consul和ZooKeeper的区别
  4. spring boot实战(第十篇)Spring boot Bean加载源码分析
  5. Android --- PagerAdapter的使用方法详细讲解
  6. Spring Data JPA_多表关联查询中应该注意的问题
  7. 接口java_JAVA 初识接口
  8. php读文阻塞,php socket编程 读完成后写阻塞
  9. silverlight 打开html_在Silverlight中嵌入HTML或aspx页面-阿里云开发者社区
  10. 数据中心成投资新宠 今年或再创历史纪录