首页>计算机>Oracle认证>学习教程>正文
ORACLE认证基础:ORACLE系统概述

www.zige365.com 2008-8-18 15:46:06 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
  ORACLE服务器程序:负责解释和处理应用中的SQL语句。

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

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

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

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

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

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

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

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

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

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

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

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

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

    一个或多个调度进程

    一个或多个共享服务器进程

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

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

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

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

    3.ORACLE运行

   1) 使用专用服务进程的ORACLE的运行

   在这种配置下,ORACLE运行过程如下:

   (1) 数据库服务器计算机当前正在运行ORACLE(后台进程)。

   (2) 在一客户工作站运行一个数据库应用(为用户进程),如SQL*PLUS。客户应用使用SQL*NET DRIVER建立对服务器的连接。

   (3) 数据库服务器计算机当前正运行合适的SQL*NET DRIVER,该机上接收器进程检出客户数据库应用的连接请求,并在该机上为用户进程建立专用服务器进程。

   (4) 用户发出单个SQL语句。

   (5) 专用服务器进程接收该语句,在此处有两种方法处理SQL语句:

    如果在共享池一共享SQL区中包含有相同SQL语句时,该服务器进程可利用已存在的共享SQL区执行客户的SQL语句。

  如果在共享池中没有一个SQL区包含有相同的SQL语句时,在共享池中为该语句分配一新的共享SQL区。

    在每一种情况,在会话的PGA中建立一个专用SQL区,专用服务器进程检查用户对查询数据的存取权限。
 
    (6) 如果需要,服务器进程从数据文件中检索数据块,或者可使用已存储在实例SGA中的缓冲存储区的数据块。

   (7) 服务器进程执行存储在共享SQL区中的SQL语句。数据首先在SGA中修改,由DBWR进程在最有效时将它写入磁盘。LGWR进程在在线日志文件中记录用户提交请求的事务。

   (8)如果请求成功,服务器将通过网络发送一信息。如果请求不成功,将发送相应的错误信息。

   (9)在整个过程中,其它的后台进程是运行的,同时注意需要干预的条件。另外,ORACLE管理其它事务,防止不同事务之间请求同一数据的竞争。

   2) 使用多线索服务器的ORACLE的运行

   在这种配置下,ORACLE运行过程如下:

   (1) 一数据库服务器计算机运行使用多线索服务器配置的ORACLE。

    (2) 在一客户工作站运行一数据库应用(在一用户进程中)。客户应用合适的SQL*NET驱动器试图建立到数据库服务器计算机的连接。

    (3) 数据库服务器计算机当前运行合适的SQL*NET驱动器,它的网络接收器进程检出用户进程的连接请求,并决定用户进程如何连接。如果用户是使用SQL*NET版本2,该网络接收器通知用户进程使用一个可用的调度进程的地址重新连接。

    (4) 用户发出单个SQL语句

    (5) 调度进程将用户进程的请求放入请求队列,该队列位于SGA中,可为所有调度进程共享。

    (6) 一个可用共享服务器检验公用调度进程请求队列,并从队列中检出下一个SQL语句。然后处理该SQL语句,同前一(5),(6)和(7)。注意:会话的专用SQL区是建立在SGA中。

    (7) 一当共享服务器进程完成SQL处理,该进程将结果放置发入该请求的调度进程的响应队列。

    (8) 调度进程检查它的响应队列,并将完成的请求送回请求的用户进程。

    4.数据库结构和空间管理

    一个ORACLE数据库是数据的集合,被处理成一个单位。一个ORACLE数据库有一个物理结构和一个逻辑结构。

    物理数据库结构(physical database structure)是由构成数据库的操作系统文件所决定。每一个ORACLE数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。

    逻辑数据库结构是用户所涉及的数据库结构。一个ORACLE数据库的逻辑结构由下列因素决定:

    一个或多个表空间

    数据库模式对象(即表、视图、索引、聚集、序列、存储过程)

    逻辑存储结构如表空间(dataspace)、段(segment)和范围将支配一个数据库的物理空间如何使用。模式对象(schema object)用它们之间的联系组成了一个数据库的关系设计。

    1) 物理结构

    (1) 数据文件

    每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。数据文件有下列特征:

    一个数据文件仅与一个数据库联系。

   一旦建立,数据文件不能改变大小

    一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。

    数据文件中的数据在需要时可以读取并存储在ORACLE内存储区中。例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。

    (2) 日志文件

    每一个数据库有两个或多个日志文件(redo log file)的组,每一个日志文件组用于收集数据库日志。日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改是记录在日志中。在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到该修改,所以从不会丢失已有操作成果。

   日志文件主要是保护数据库以防止故障。为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。

    日志文件中的信息仅在系统故障或介质故障恢复数据库时使用,这些故障阻止将数据库数据写入到数据库的数据文件。然而任何丢失的数据在下一次数据库打开时,ORACLE自动地应用日志文件中的信息来恢复数据库数据文件。

    (3) 控制文件

    每一ORACLE数据库有一个控制文件(control file),它记录数据库的物理结构,包含下列信息类型:

    数据库名;

    数据库数据文件和日志文件的名字和位置;

  数据库建立日期。

    为了安全起见,允许控制文件被镜象。

    每一次ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们必须被打开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。数据恢复时,也要使用控制文件。

    2) 逻辑结构

   数据库逻辑结构包含表空间、段、范围(extent)、数据块和模式对象。

   (1) 表空间

   一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TABLESPACE)。一个表空间可将相关的逻辑结构组合在一起。DBA可利用表空间作下列工作:

    控制数据库数据的磁盘分配。

    将确定的空间份额分配给数据库用户。

    通过使单个表空间在线或离线,控制数据的可用性。

    执行部分数据库后备或恢复操作。

    为提高性能,跨越设备分配数据存储。

    数据库、表空间和数据文件之间的关系如下图所示:

                                         Database

 



                         DTATAFILE1                

                         (2MB)              DATAFILE2          

                                            (2MB)              DATAFILE3

                                                               (2MB)

                             Driver1               Driver2

    每个数据库可逻辑划分为一个或多个表空间

    每一个表空间是由一个或多个数据文件组成,该表空间物理地存储表空间中全部逻辑结构的数据。DBA可以建立新的表空间,可为表空间增加数据文件或可删除数据文件,设置或更改缺省的段存储位置。

    每一个ORACLE数据库包含有一个名为SYSTEM的表空间,在数据库建立是自动建立。在该表空间中总包含有整个数据库的数据字典表。最小的数据库可只需要SYSTEM表空间。该表空间必须总是在线。表和存储的PL/SQL程序单元(过程、函数、包和触发器)的全部存储数据是存储在SYSTEM表空间中。如果这些PL/SQL对象是为数据库建的,DBA在SYSTEM表空间中需要规划这些对象所需要的空间。

    表空间利用增加数据文件扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。

    DBA可以使ORACLE数据库中任何表空间(除SYSTEM表空间外)在线(ONLINE)或离线(OFFLINE)。表空间通常是在线,以致它所包含的数据对数据库用户是可用的。当表空间为离线时,其数据不可使用。在下列情况下,DBA可以使其离线。

    使部分数据不可用,而剩余的部分允许正常存取

本新闻共5页,当前在第2页  1  2  3  4  5  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
我当时初学ORACLE认证时写的一些笔记
国外公司的Oracle DBA试题
Oracle常用函数列表速查
启动Oracle常见疑难问题分析
Oracle数据库中的“锁”学习小结