所有连接到ORACLE的用户必须执行两个代码模块可存取一个ORACLE数据库实例
应用或ORACLE工具一数据库用户执行一数据库应用或一个ORACLE工具可向ORACLE数据库发出SQL语句
ORACLE服务器程序负责解释和处理应用中的SQL语句
在多进程实例中连接用户的代码可按下列三种方案之一配置对于每一个用户其数据库应用程序和服务器程序组合成单个用户进程
对于每一个用户其数据库应用是由用户进程所运行并有一个专用服务器进程执行ORACLE服务器的代码这样的配置称为专用服务器体系结构; 执行数据库应用的进程不同于执行ORACLE服务器代码的进程而且每一个服务器进程(执行ORACLE服务器代码)可服务于多个用户进程这样的配置称为多线索服务器体系结构
) USER/SERVER进程相结合的结构
在这种配置下数据库应用和ORACLE服务器程序是在同一个进程中运行该进程称为用户进程
这种ORACLE配置有时称为单任务ORACLE(single_task ORACLE)该配置适用于这样的操作系统它可在同一进程中的数据库应用和ORACLE代码之间维护一个隔离该隔离是为数据安全性和完整性所需其中程序接口(program interface)是负责ORACLE服务器代码的隔离和保护在数据库应用和ORACLE用户程序之间传送数据
) 使用专用服务器进程的系统结构
使用专用服务器进程的ORACLE系统在两台计算机上运行在这种系统中在一计算机上用户进程执行数据库应用而在另一台计算机上的服务器进程执行相应的ORACLE服务器代码这两个进程是分离的为每个用户进程建立的不同的服务器进程称为专用服务器进程因为该服务器进程仅对相连的用户进程起作用这种配置又称为两任务ORACLE每一个连接到ORACLE的用户进程有一个相应的专用服务进程这种系统结构允许客户应用是有工作站上执行通过网络与运行ORACLE的计算机通信当客户应用和ORACLE服务器代码是在同一台计算机上执行时这种结构也可用
) 多线索服务器的系统结构
多线索服务器配置允许许多用户进程共享很少服务器进程在没有多线索服务器的配置中每一个用户进程需要自己的专用服务器进程在具有多线索服务器的配置中许多用户进程连接到调度进程由调度进程将客户请求发送到一个共享服务器进程多线索服务器配置的优点是降低系统开销增加用户个数
该系统中需要下列类型的进程
网络接收器进程将用户进程连接到调度进程和专用服务器进程
一个或多个调度进程
一个或多个共享服务器进程
其中网络接收器进程等待新来的连接请求决定每一用户进程能否用共享服务器进程如果可以使用接收器进程将一调度进程的地址返回给用户进程如果用户进程请求一专用服务器该接收器进程将建立一个专用服务器进程将用户进程连接到该专用服务器进程对于数据库客户机所使用的每种网络协议至少配置一个调度进程并启动它
当用户作一次调用时调度进程将请求放置在SGA的请求队列中由可用的共享服务器进程获取共享服务器进程为完成每一个用户进程的请求作所有必要的数据库调用当服务器完成请求时将结果返回到调度进程的队列然后由调度进程将完成的请求返回给用户进程
共享服务器进程除共享服务器进程不是连接指定的用户进程外共享服务器进程和专用服务器进程提供相同的功能一个共享服务器进程在多线索服务器的配置中可为任何客户请求服务一个共享服务器进程的SGA不包含有与用户相关的数据其信息可为所有共享服务器进程存取它仅包含栈空间进程指定变量所有与会话有关的信息是包含有SGA中每一个共享服务器进程可存取全部会话的数据空间以致任何服务进程可处理任何会话的请求对于每一个会话的数据空间是在SGA中分配空间
ORACLE根据请求队列的长度可动态地调整共享服务器进程可建立的共享服务器进程将请求放到请求队列一个用户请求是对数据库的一次程序接口调用为SQL语句在SGA中请求队列对实例的全部调度进程是公用的服务器进程为新请求 检查公用请求队列按先进先出的原则从队列检出一个请求然后为完成该请求对数据库作必要的调用共享服务器进程将响应放在调度进程的响应队列每一个调度进程在SGA中有自己的响应队列每个调度进程负责将完成的请求回送给相应的用户进程