part1。Oracle。par3 连接Oracle处理请求的方式; >.专用服务器<dedicated server> Oracle会在客户端登陆时创建一个新的进程。称为专用服务器配置。在该客户当前的会话中仅为该用户提供服务。对于每个会话都会出现一个新的专用服务器。会话与服务器存在一对一的映射。在定义中。此专用服务器不是实例的一部分。客户进程通过某种网络通道/*如TCP/IP socket*/与此专用服务器直接通信。并由此服务器进程接收和执行SQL。该进程对该客户的SQL调用提供相应的响应; 专用服务器配置: 客户连接请求 to 专用服务器 to/*by内存访问*/ SGA to 实例 to 数据库 to/*by磁盘 I/O*/ 专用服务器。。。; >.共享服务器<shared server> Oracle还可以接受另一种方式的连接。共享服务器<shared server>。正式的说法是多线程服务器<Multi-Threaded Server,MTS>。在共享服务器中。Oracle会使用一个"共享进程"池为大量用户提供服务。这是一种连接池机制。采用共享服务器模式。共享进程会与数据库一同启动; 共享服务器请求的方式: 客户链接 to 调度器 to SGA to 请求队列 to 共享服务器 to 响应队列 to 调度器 to 客户端。。; //请求队列和响应队列都在SGA中做出响应。。; >.重大区别 共享服务器连接中。与数据库连接的客户进程不会与共享服务器直接通信。在这个连接方式中。Oracle使用一个或一组称为调度器<dispatcher,也称分派器>的进程。专用服务器中。客户进程会与专用服务器直接通信; TCP/IP连接的基本原理 在TCP/IP连接上建立一个基于网络的连接请求。此时客户端在一台机器上而数据库驻留在另一台机器上。客户使用Oracle客户软件<Oracle提供的一组应用程序接口Application Programming Interface,API>建立一个请求。尝试连接到数据库。如客户发出如下命令: sqlplus scott/tiger@ora10g.localdmain 这里。客户使用SQL*Plus。scott/tiger为用户名/密码。ora10g.localdmain是一个TNS服务名。TNS代表透明网络底层<Transparent Network Substrate,TNS>。这是Oracle客户中处理远程链接的"基础"软件。。; 建立一条专用服务器连接时。 监听器进程会创建一个专用服务器。 在UNIX中通过fork()exec()系统调用实现。这个 新的专用服务器进程继承了监听器建立的连接而实现与数据库的物理连接; //在UNIX中调用fork()以实现在初始化后创建新的进程; 在Windows中。监听器进程请求数据库进程为连接建立一个新的线程。之后客户会"重定向"到该线程以建立物理连接; 若发出的请求是共享服务器连接时。 监听器在接收到连接请求后。从已知的可用的调度器池中选择一个调度器进程。之后监听器会在向客户返回的连接信息中描述了如何与调度器进程连接。至此。监听器的工作结束。客户与监听器连接断开并与调度器直接连接以建立同数据库的物理连接; //可能的话。监听器会把连接"转发"给调度器进程。这依赖于不同的操作系统和数据库版本; |
part1。Oracle。par3
最新推荐文章于 2024-08-25 20:29:32 发布