多线程(MTS)和专用服务器的区别

日期: 2008-08-03 来源:TechTarget中国 英文

  偶尔被问及数据库的共享模式和专用模式的区别,有一些模糊,故做一下区别分析:


  MTS(多线程服务)和专用模式的区别是:


  专用模式是专用服务进程为客户端进程做一对一处理,客户进程(不管什么程序连接到数据库)将直接在如TCP/IP套接词这样的一些网络管道上,与专用服务器连接。数据缓冲池中查找数据,处理sql。


  MTS模式是共享服务进程取代了专用模式的专用服务进程。客户进程将首先由分配器dispatche进程来分配客户端请到SGA中的请求队列,然后由共享服务进程来调出并处理,得出的结果(数据,返回代码等)响应 被共享服务进程放入到响应对列,等待分配器进程来传送给客户端进程。


  当我们发布


  sqlplus scott/tiger@tns


  其中tns是TNS服务名称,tns代表(transparent network substrate),它是内建于Oracle客户端的“平台”软件,它处理远程连接——允许对等通信。TNS连接串告诉Oracle软件如何连接到远程数据库。一般来说,运行在机器上的客户端软件将读取tnsname.ora文件。


  tns =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = jimmypeng)(PORT = 1521))
      )
      (CONNECT_DATA =
      (SERVICE_NAME = test)
      )
    )
 
  通过这个文件,客户端软件知道要连接谁,它将连接打开1521端口的服务端jimmypeng的tcp/ip套接字连接。


  服务端的net8配置好后,监听器也在运行,那么这个连接就可以接受了。服务端有个tns listener进程开启,当它接收到联入的连接请求时,负责检查这个请求,使用自己的配置文件,检查ip地址是否正确,或者是主机名是否正确,来判断是否接受请求或者是拒绝请求,并使我们完成连接。


  如果是专用模式,会由监听进程创建一个专用服务进程,最后由服务器进程接受客户端的请求。监听进程与请求脱钩 。


  如果是多线程模式,监听进程的行为将不同,监听器进程知道我们在数据库上的分配进程dispatcher。当接受到客户端请求时,监听器从可用的分配器池中选择一个分配进程。监听器把对客户端如何连接到分配器进程的信息发送给客户端。因为监听器是在服务端的一个主机名和端口上运行,所以必须做此事。但是分配器将接受主机上随机分配的端口上的连接。监听器知道这个随机分配的端口,并选择一个分配器。客户端然后与监听器断开并直接连接到这个分配端口上的分配器。对数据库就有了一个物理上的连接。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐

  • SAMBA实现Solaris和Windows之间的文件共享

    Samba提供了Unix系统和Windows之间的文件和打印机共享服务。OpenSolaris在系统安装的时候就已经包含了Samba,只需要简单的配置就可以成为Samba Server。那如何配置呢?

  • 多核与多线程技术的区别

    “多核”、”多线程”此二词已快成为当今处理器架构设计中的两大显学,可有人知此二者的实际差异?在执行设计时又是以何者为重?到底是该多核优先还是多线程提前?