设为首页 收藏本站
查看: 731|回复: 0

[经验分享] 再述oracle数据库体系结构 之五:Oracle连接配置结构

[复制链接]

尚未签到

发表于 2016-7-25 13:21:28 | 显示全部楼层 |阅读模式
  第九篇 再述oracle数据库体系结构 之五:Oracle连接配置结构
  Oracle数据库的连接结构有三种:
1) 组合用户与服务器结构:在这种连接方式中,客户端与服务器同处一台机器中,对于每一个用户,其库应用程序与服务器程序组合成单个服务器进程。
2) 专用服务器(Dedicated Server)结构:在这种方式中,对于每一个用户,其数据库应用是由用户进程所运行,并有一个专用服务器进程为之服务,执行Oracle服务器代码。
3) 多线程服务器(Multithreaded Server)体系结构:在这种方式中,一个或多个客户应用程序共享一组服务器进程,与专用服务器不同的是,客户和服务器进程不是一对一的关系,而是由调度进程对多个服务器进程进行调度,以服务来自客户应用的连接请求。
  专用服务器
  DSC0000.jpg
专用服务器的工作过程:
1) 客户端通过oracle net向监听器发连接请求
2) 监听器收到请求并将此请求导向服务器,服务器向用户返回一个连接成功信息,并为此用户创建一个专用服务器进程
3) 客户直接与该专用服务器进程进行交互,处理SQL,并且服务器在该会话的PGA中建立一个专用SQL区。
如果客户端要求建立专用服务器连接方式,可以修改客户羰的网络配置文件tnsnames.ora或修改连接描述串。增加关键字“Server=DEDICATED”,如:
prod=
    (DESCRIPTION=
      (ADDRESSLIST=
        (ADDRESS=
          (PROTOCOL=TCP)(HOST=192.168.0.3)(PORT=1521)
          (SERVER=DEDICATED)
        )
      )
      (CONNECT_DATA=(SID=PROD)
     )
    )
还必须修改SQLNET.ORA文件,增加“USE_DEDICATED_SERVER=TRUE”
  多线程服务器体系结构
DSC0001.jpg
  专用服务器结构中,一个服务器进程只为一个客户服务。这样的话,如果有一千个客户,就需要有一千个对应的服务器进程,就会耗费大量的系统资源。为了支持对于可伸缩性的需求,在oracle7中引入了多线程服务器(MTS,也称为共享服务器)。下面说明共享服务器建立连接的过程,以级与建立专用服务器连接过程的不同:
1) 客户通过网络与监听器联系
2) 监听器检测到请求,基于Oracle net结构来确定是否与多线程服务器连接。监听器将客户请求导向相应的调度程序。
3) 监听器通过使客户与调度程序了解对方的网络地址,从面完成了双方的介绍。
4) 一旦客户与调度程序知道如何找到对方,它们就直接通信,不要需要监听器。客户直接将操作请求发送给高度程序。
5) 调度程序将客户请求放在SGA的请求队列中。
6) 下一个可用的共享服务器进程从请求队列中读取请求,进行相应的工作。
7) 共享服务器进程将结果存放在提交相应请求的调度程序的响应队列中。
8) 调度程序从响应队列中读取数据并将结果送组客户。
  
有几个概念在这里作个补充说明:
1) 监听器(Listener):为一个或多个实例“监听”连接请求,它是oracle客户与服务器的中介。监听器不是Oracle实例的一部分,它的作用是将连接的请求导向相应的实例。
2) 调度程序(dispatcher):在MTS体系结构中,监听器与调度程序联系,调度程序负责调度MTS中的各个共享服务器进程。
  
 多线程服务器的设置参数有:
MTS_SERVICE:多线程服务器名称,一般为数据库名
MTS_DISPATCHERS:初始调度器个数
MTS_MAX_DISPATCHERS:调度器最大个数
MTS_SERVERS:共享服务器个数
MTS_MAX_SERVERS:最大共享服务器个数
多线程服务器的设置是通过对以上各个参数的设置完成的。格式如下:
MTS_SERVICE=RS
MTS_SERVERS=10
MTS_MAX_SERVERS=100
MTS_DISPATCHERS="(PROTOCOL=TCP)(POOL=YES)(MULT=YES)"
MTS_DISPATCHERS="(PROTOCOL=IPX)(POOL=YES)(MULT=YES)"
MTS_DISPATCHERS="(PROTOCOL=IPC)(POOL=YES)(MULT=YES)"
MTS_MAX_DISPATCHERS=100
  
有关多线程服务器的数据字典如下:
V$MTS
V$DISPATCHER
V$SHARED_SERVER
V$CIRCULT
各字典的详细说明请参考Oracle文档。
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-249271-1-1.html 上篇帖子: oracle零碎要点---oracle em的web访问地址忘了 下篇帖子: 不安装Oracle客户端用PL/SQL连接Oracle服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表