Oracle数据库的配置方案完全分析

本文从几大方面详细讲述了Oracle数据库的配置方案。

所有连接到Oracle的用户必须执行两个代码模块:

应用或Oracle工具:一数据库用户执行一数据库应用或一个Oracle工具,可向Oracle数据库发出SQL语句。

Oracle服务器程序:负责解释和处理应用中的SQL语句。

在多进程实例中,连接用户的代码可按下列三种方案之一配置:

1、对于每一个用户,其数据库应用程序和服务器程序组合成单个用户进程;

2、对于每一个用户,其数据库应用是由用户进程所运行,并有一个专用服务器进程。执行Oracle服务器的代码。这样的配置称为专用服务器体系结构;

3、执行数据库应用的进程不同于执行Oracle服务器代码的进程,而且每一个服务器进程(执行Oracle服务器代码)可服务于多个用户进程,这样的配置称为多线索服务器体系结构。

1) USER/SERVER进程相结合的结构:

在这种配置下,数据库应用和Oracle服务器程序是在同一个进程中运行,该进程称为用户进程。

这种Oracle配置有时称为单任务Oracle(single_task Oracle),该配置适用于这样的操作系统,它可在同一进程中的数据库应用和Oracle代码之间维护一个隔离,该隔离是为数据安全性和完整性所需。其中程序接口(program interface)是负责Oracle服务器代码的隔离和保护,在数据库应用和Oracle用户程序之间传送数据。

2) 使用专用服务器进程的系统结构:

使用专用服务器进程的Oracle系统在两台计算机上运行。在这种系统中,在一计算机上用户进程执行数据库应用,而在另一台计算机上的服务器进程执行相应的Oracle服务器代码,这两个进程是分离的。为每个用户进程建立的不同的服务器进程称为专用服务器进程,因为该服务器进程仅对相连的用户进程起作用。这种配置又称为两任务Oracle。每一个连接到Oracle的用户进程有一个相应的专用服务进程。这种系统结构允许客户应用是有工作站上执行,通过网络与运行Oracle的计算机通信。当客户应用和Oracle服务器代码是在同一台计算机上执行时,这种结构也可用。

3) 多线索服务器的系统结构:

多线索服务器配置允许许多用户进程共享很少服务器进程。在没有多线索服务器的配置中,每一个用户进程需要自己的专用服务器进程。在具有多线索服务器的配置中,许多用户进程连接到调度进程,由调度进程将客户请求发送到一个共享服务器进程。多线索服务器配置的优点是降低系统开销,增加用户个数。

该系统中需要下列类型的进程:

1、网络接收器进程,将用户进程连接到调度进程和专用服务器进程。

2、一个或多个调度进程。

3、一个或多个共享服务器进程。

其中网络接收器进程等待新来的连接请求,决定每一用户进程能否用共享服务器进程。如果可以使用,接收器进程将一调度进程的地址返回给用户进程。如果用户进程请求一专用服务器,该接收器进程将建立一个专用服务器进程,将用户进程连接到该专用服务器进程。对于数据库客户机所使用的每种网络协议至少配置一个调度进程,并启动它。

当用户作一次调用时,调度进程将请求放置在SGA的请求队列中,由可用的共享服务器进程获取。共享服务器进程为完成每一个用户进程的请求作所有必要的数据库调用。当服务器完成请求时,将结果返回到调度进程的队列,然后由调度进程将完成的请求返回给用户进程。

共享服务器进程:除共享服务器进程不是连接指定的用户进程外,共享服务器进程和专用服务器进程提供相同的功能,一个共享服务器进程在多线索服务器的配置中可为任何客户请求服务。一个共享服务器进程的SGA不包含有与用户相关的数据,其信息可为所有共享服务器进程存取,它仅包含栈空间、进程指定变量。所有与会话有关的信息是包含有SGA中。每一个共享服务器进程可存取全部会话的数据空间,以致任何服务进程可处理任何会话的请求。对于每一个会话的数据空间是在SGA中分配空间。

Oracle根据请求队列的长度可动态地调整共享服务器进程。可建立的共享服务器进程将请求放到请求队列。一个用户请求是对数据库的一次程序接口调用,为SQL语句。在SGA中请求队列对实例的全部调度进程是公用的。服务器进程为新请求 检查公用请求队列,按先进先出的原则从队列检出一个请求,然后为完成该请求对数据库作必要的调用。共享服务器进程将响应放在调度进程的响应队列。每一个调度进程在SGA中有自己的响应队列,每个调度进程负责将完成的请求回送给相应的用户进程。

时间: 2024-09-01 04:02:18

Oracle数据库的配置方案完全分析的相关文章

Oracle数据库服务器IO高的分析方案和案例探讨

Oracle数据库服务器IO高的分析方案和案例探讨   > >                &     

oracle数据库-做一个基于Oracle数据库的系统进程研究与分析的论文有以下几个问题求大神指点下感激不尽

问题描述 做一个基于Oracle数据库的系统进程研究与分析的论文有以下几个问题求大神指点下感激不尽 1.系统进程和后台进程的区别 2.系统调优和进程调优区别 3.系统进程研究分析的是什么

Oracle数据库的SQL性能问题分析

在Oracle 10.2.0.4数据库中,有一个SQL执行缓慢,超过数分钟无结果,等待事件又是空闲的 SQL*Net message事件,最后只好强行中断. 这个SQL是一个普通的UPDATE语句,where子句中多张表 关联,关联的表都是临时表. update t_fund_product_info set is_valid = 'N' where prdt_id not in (select a.prdt_id from tmp_crm_DX_PRDT_FOR_INFO a, tmp_crm

oracle数据库tns配置方法详解_oracle

TNS简要介绍与应用 Oracle中TNS的完整定义:transparence Network Substrate透明网络底层,监听服务是它重要的一部分,不是全部,不要把TNS当作只是监听器. TNS是Oracle Net的一部分,专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,必须配置TNS,当然在少数情况下,不用配置TNS也可以连接Oracle数据库,比如通过JDBC.如果通过TNS连接Oracle,那么客户端必须安装Oracle client

oracle数据库性能优化方案精髓整理收集回顾

oracle数据库性能优化总体法则: 一.减少数据访问(减少硬盘房访问次数) 二.返回更少的数据(减少网络传输或磁盘访问) 三.减少交互次数(减少网络传输) 四.减少服务器开销(减少cpu及内存开销) 五.利用更多的资源(增加资源) ===================具体说明================= 一.减少数据访问(减少硬盘房访问次数) 1.减少数据访问 1.1.创建并使用正确的索引 索引会大大增加DML(增删改)的开销[合理的索引会大大提高效率100倍.1000倍,但不合理的索

Oracle数据库设计开发阶段性能优化策略

引言 Oracle是目前使用最为广泛的大型数据库管理系统,提高Oracle数据库系统的运行效率,是整个计算机信息系统高效运转的前提和保证.影响Oracle数据库应用系统性能的因素很多,既有软件方面的因素,也包括数据运行的硬件环境.网络环境.数据库管理和维护方面的因素等.数据库系统设计开发阶段是Oracle应用优化的最佳阶段,也是主动优化阶段,能达到以最小成本获得最大性能增益的目的.通过对其逻辑存储结构和物理存储结构设计进行优化,使之在满足需求条件下,时空开销性能最佳,可以解决数据库系统运行过程中

下载Oracle数据库中的Blob二进制文件,实例!

oracle|二进制|数据|数据库|下载 将Oracle数据库中HR方案下的TESTFILEUPLOAD表中的文件下载至系统临时目录. void downloadFile()??{???OracleConnection objOcon = new OracleConnection("user id=system;Data Source=tsems;password=system"); ???OracleCommand objOcmd = new OracleCommand(); ???

Oracle数据库TNS常见错误的解决方法汇总_oracle

TNS是Oracle Net的一部分,是专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,就必须配置TNS.本文主要讲述了Oracle数据库TNS常见错误的解决方法如下: 1.ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏.若是前者,使用命令net start OracleOraHome10gTNSListener(名字可能有出入)即可;如果是后者,则使用"Net Configuration Assistant"

Oracle数据库中的控制文件管理以及常用参数设置_oracle

一.控制文件 作用:         二进制文件         记录了数据库当前实例的结构和行为,数据文件日志文件的信息,维护数据库一致性         参数文件中定义了控制文件的位置和大小         很小的二进制文件,一般不超过100m         mount阶段open以后,一直在用         一套控制文件只能连接一个database         分散放置,至少一份,至多八份 相关视图:         v$controlfile ---- 列出实例的所有控制文件的名