ORACLE培训教材之第一讲_第1页
ORACLE培训教材之第一讲_第2页
ORACLE培训教材之第一讲_第3页
ORACLE培训教材之第一讲_第4页
ORACLE培训教材之第一讲_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.:.; 23/23ORACLE系统概述ORACLE公司自86年推出版本5开场,系统具有分布数据库处置功能.88年推出版本6,ORACLE RDBMS(V6.0)可带事务处置选项(TPO),提高了事务处置的速度.1992年推出了版本7,在ORACLE RDBMS中可带过程数据库选项(procedural database option)和并行效力器选项parallel server option,称为ORACLE7数据库管理系统,它释放了开放的关系型系统的真正潜力。ORACLE7的协同开发环境提供了新一代集成的软件生命周期开发环境,可用以实现高消费率、大型事务处置及客户/效力器构造的运用系统。

2、协同开发环境具有可移植性,支持多种数据来源、多种图形用户界面及多媒体、多民族言语、CASE等协同运用系统。ORACLE系统ORACLE产品构造及组成 ORACLE系统是由以RDBMS为中心的一批软件产品构成,其产品构造轮廓以下图所示:ORACLE*REPORTORACLE*FORMSSQL*PLUS用户编制的程序SQL*CALCSQL*GRAPHIC程序接口SQL执行程序ORACLE内核RDBMS操作系统数据字典DD数据库DBORACLE系统特点ORACLE公司于1979年,首先推出基于SQL规范的关系数据库产品,可在100多种硬件平台上运转所括微机、任务站、小型机、中型机和大型机,支持很多种

3、操作系统。用户的ORACLE运用可方便地从一种计算机配置移至另一种计算机配置上。ORACLE的分布式构造可将数据和运用驻留在多台计算机上,而相互间的通讯是透明的。1992年6月ORACLE公司推出的ORACLE7协同效力器数据库,使关系数据库技术迈上了新台阶。根据IDG国际数据集团1992年全球UNIX数据库市场报告,ORACLE占市场销售量50%。它之所以倍受用户喜欢是由于它有以下突出的特点:支持大数据库、多用户的高性能的事务处置。ORACLE支持最大数据库,其大小可到几百千兆,可充分利用硬件设备。支持大量用户同时在同一数据上执行各种数据运用,并使数据争用最小,保证数据一致性。系统维护具有高

4、的性能,ORACLE每天可延续24小时任务,正常的系统操作后备或个别计算机系统缺点不会中断数据库的运用。可控制数据库数据的可用性,可在数据库级或在子数据库级上控制。ORACLE遵守数据存取言语、操作系统、用户接口和网络通讯协议的工业规范。所以它是一个开放系统,维护了用户的投资。美国规范化和技术研讨所NIST对ORACLE7 SERVER进展检验,100%地与ANSI/ISO SQL89规范的二级相兼容。实施平安性控制和完好性控制。ORACLE为限制各监控数据存取提供系统可靠的平安性。ORACLE实施数据完好性,为可接受的数据指定规范。支持分布式数据库和分布处置。ORACLE为了充分利用计算机系

5、统和网络,允许将处置分为数据库效力器和客户运用程序,一切共享的数据管理由数据库管理系统的计算机处置,而运转数据库运用的任务站集中于解释和显示数据。经过网络衔接的计算机环境,ORACLE将存放在多台计算机上的数据组合成一个逻辑数据库,可被全部网络用户存取。分布式系统像集中式数据库一样具有透明性和数据一致性。具有可移植性、可兼容性和可衔接性。由于ORACLE软件可在许多不同的操作系统上运转,以致ORACLE上所开发的运用可移植到任何操作系统,只需很少修正或不需修正。ORACLE软件同工业规范相兼容,包括许多工业规范的操作系统,所开发运用系统可在任何操作系统上运转。可衔接性是指ORALCE允许不同类

6、型的计算机和操作系统经过网络可共享信息。ORACLE数据库系统的体系构造ORACLE数据库系统为具有管理ORACLE数据库功能的计算机系统。每一个运转的ORACLE数据库与一个ORACLE实例INSTANCE相联络。一个ORACLE实例为存取和控制一数据库的软件机制。每一次在数据库效力器上启动一数据库时,称为系统全局区SYSTEM GLOBAL AREA的一内存区简称SGA被分配,有一个或多个ORACLE进程被启动。该SGA 和 ORACLE进程的结合称为一个ORACLE数据库实例。一个实例的SGA和进程为管理数据库数据、为该数据库一个或多个用户效力而任务。在ORACLE系统中,首先是实例启动

7、,然后由实例装配MOUNT一数据库。在松耦合系统中,在具有ORACLE PARALLEL SERVER 选项时,单个数据库可被多个实例装配,即多个实例共享同一物理数据库。ORACLE实例的进程构造和内存构造进程构造进程是操作系统中的一种机制,它可执行一系列的操作步。在有些操作系统中运用作业(JOB)或义务(TASK)的术语。一个进程通常有它本人的公用存储区。ORACLE进程的体系构造设计使性能最大。ORACLE实例有两种类型:单进程实例和多进程实例。单进程ORACLE又称单用户ORACLE是一种数据库系统,一个进程执行全部ORACLE代码。由于ORACLE部分和客户运用程序不能分别以进程执行,

8、所以ORACLE的代码和用户的数据库运用是单个进程执行。在单进程环境下的ORACLE 实例,仅允许一个用户可存取。例如在MS-DOS上运转ORACLE 。多进程ORACLE实例又称多用户ORACLE运用多个进程来执行ORACLE的不同部分,对于每一个衔接的用户都有一个进程。在多进程系统中,进程分为两类:用户进程和ORACLE进程。当一用户运转一运用程序,如PRO*C程序或一个ORACLE工具如SQL*PLUS,为用户运转的运用建立一个用户进程。ORACLE进程又分为两类:效力器进程和后台进程。效力器进程用于处置衔接到该实例的用户进程的恳求。当运用和ORACELE是在同一台机器上运转,而不再经过

9、网络,普通将用户进程和它相应的效力器进程组合成单个的进程,可降低系统开销。然而,当运用和ORACLE运转在不同的机器上时,用户进程经过一个分别效力器进程与ORACLE通讯。它可执行以下义务:对运用所发出的SQL语句进展语法分析和执行。从磁盘数据文件中读入必要的数据块到SGA的共享数据库缓冲区该块不在缓冲区时。将结果前往给运用程序处置。系统为了使性能最好和协调多个用户,在多进程系统中运用一些附加进程,称为后台进程。在许多操作系统中,后台进程是在实例启动时自动地建立。一个ORACLE实例可以有许多后台进程,但它们不是不断存在。后台进程的名字为:DBWR 数据库写入程序LGWR 日志写入程序CKPT

10、 检查点SMON 系统监控PMON 进程监控ARCH 归档RECO 恢复LCKn 封锁Dnnn 调度进程Snnn 效力器每个后台进程与ORACLE数据库的不同部分交互。下面对后台进程的功能作简单引见:DBWR进程:该进程执行将缓冲区写入数据文件,是担任缓冲存储区管理的一个ORACLE后台进程。当缓冲区中的一缓冲区被修正,它被标志为“弄脏,DBWR的主要义务是将“弄脏的缓冲区写入磁盘,使缓冲区坚持“干净。由于缓冲存储区的缓冲区填入数据库或被用户进程弄脏,未用的缓冲区的数目减少。当未用的缓冲区下降到很少,以致用户进程要从磁盘读入块到内存存储区时无法找到未用的缓冲区时,DBWR将管理缓冲存储区,运用

11、户进程总可得到未用的缓冲区。ORACLE采用LRULEAST RECENTLY USED算法最近最少运用算法坚持内存中的数据块是最近运用的,使I/O最小。在以下情况预示DBWR 要将弄脏的缓冲区写入磁盘:当一个效力器进程将一缓冲区移入“弄脏表,该弄脏表到达临界长度时,该效力进程将通知DBWR进展写。该临界长度是为参数DB-BLOCK-WRITE-BATCH的值的一半。当一个效力器进程在LRU表中查找DB-BLOCK-MAX-SCAN-CNT缓冲区时,没有查到未用的缓冲区,它停顿查找并通知DBWR进展写。出现超时每次3秒,DBWR 将通知本身。当出现检查点时,LGWR将通知DBWR在前两种情况下

12、,DBWR将弄脏表中的块写入磁盘,每次可写的块数由初始化参数DB-BLOCK-WRITE-BATCH所指定。假设弄脏表中没有该参数指定块数的缓冲区,DBWR从LUR表中查找另外一个弄脏缓冲区。假设DBWR在三秒内未活动,那么出现超时。在这种情况下DBWR对LRU表查找指定数目的缓冲区,将所找到任何弄脏缓冲区写入磁盘。每当出现超时,DBWR查找一个新的缓冲区组。每次由DBWR查找的缓冲区的数目是为寝化参数DB-BLOCK-WRITE-BATCH的值的二倍。假设数据库空运转,DBWR最终将全部缓冲区存储区写入磁盘。在出现检查点时,LGWR指定一修正缓冲区表必需写入到磁盘。DBWR将指定的缓冲区写入

13、磁盘。在有些平台上,一个实例可有多个DBWR。在这样的实例中,一些块可写入一磁盘,另一些块可写入其它磁盘。参数DB-WRITERS控制DBWR进程个数。LGWR进程:该进程将日志缓冲区写入磁盘上的一个日志文件,它是担任管理日志缓冲区的一个ORACLE后台进程。LGWR进程将自上次写入磁盘以来的全部日志项输出,LGWR输出:当用户进程提交一事务时写入一个提交记录。每三秒将日志缓冲区输出。当日志缓冲区的1/3已满时将日志缓冲区输出。当DBWR将修正缓冲区写入磁盘时那么将日志缓冲区输出。LGWR进程同步地写入到活动的镜象在线日志文件组。假设组中一个文件被删除或不可用,LGWR可继续地写入该组的其它文

14、件。日志缓冲区是一个循环缓冲区。当LGWR将日志缓冲区的日志项写入日志文件后,效力器进程可将新的日志项写入到该日志缓冲区。LGWR 通常写得很快,可确保日志缓冲区总有空间可写入新的日志项。留意:有时候当需求更多的日志缓冲区时,LWGR在一个事务提交前就将日志项写出,而这些日志项仅当在以后事务提交后才永久化。ORACLE运用快速提交机制,当用户发出COMMIT语句时,一个COMMIT记录立刻放入日志缓冲区,但相应的数据缓冲区改动是被延迟,直到在更有效时才将它们写入数据文件。当一事务提交时,被赋给一个系统修正号SCN,它同事务日志项一同记录在日志中。由于SCN记录在日志中,以致在并行效力器选项配置

15、情况下,恢复操作可以同步。CKPT进程:该进程在检查点出现时,对全部数据文件的标题进展修正,指示该检查点。在通常的情况下,该义务由LGWR执行。然而,假设检查点明显地降低系统性能时,可使CKPT进程运转,将原来由LGWR进程执行的检查点的任务分别出来,由CKPT进程实现。对于许多运用情况,CKPT进程是不用要的。只需当数据库有许多数据文件,LGWR在检查点时明显地降低性能才使CKPT运转。CKPT进程不将块写入磁盘,该任务是由DBWR完成的。初始化参数CHECKPOINT-PROCESS控制CKPT进程的使能或使不能。缺省时为FALSE,即为使不能。SMON进程:该进程实例启动时执行实例恢复,

16、还担任清理不再运用的暂时段。在具有并行效力器选项的环境下,SMON对有缺点CPU或实例进展实例恢复。SMON进程有规律地被呼醒,检查能否需求,或者其它进程发现需求时可以被调用。PMON进程:该进程在用户进程出现缺点时执行进程恢复,担任清理内存储区和释放该进程所运用的资源。例:它要重置活动事务表的形状,释放封锁,将该缺点的进程的ID从活动进程表中移去。PMON还周期地检查调度进程DISPATCHER和效力器进程的形状,假设已死,那么重新启动不包括有意删除的进程。PMON有规律地被呼醒,检查能否需求,或者其它进程发现需求时可以被调用。RECO进程:该进程是在具有分布式选项时所运用的一个进程,自动地

17、处理在分布式事务中的缺点。一个结点RECO后台进程自动地衔接到包含有悬而未决的分布式事务的其它数据库中,RECO自动地处理一切的悬而不决的事务。任何相应于已处置的悬而不决的事务的行将从每一个数据库的悬挂事务表中删去。当一数据库效力器的RECO后台进程试图建立同一远程效力器的通讯,假设远程效力器是不可用或者网络衔接不能建立时,RECO自动地在一个时间间隔之后再次衔接。RECO后台进程仅当在允许分布式事务的系统中出现,而且DISTRIBUTED TRANSACTIONS参数是大于0。ARCH进程:该进程将已填满的在线日志文件拷贝到指定的存储设备。当日志是为ARCHIVELOG运用方式、并可自动地归

18、档时ARCH进程才存在。LCKn进程:是在具有并行效力器选件环境下运用,可多至10个进程LCK0,LCK1,LCK9,用于实例间的封锁。Dnnn进程调度进程:该进程允许用户进程共享有限的效力器进程SERVER PROCESS。没有调度进程时,每个用户进程需求一个公用效力进程DEDICATEDSERVER PROCESS。对于多线索效力器MULTI-THREADED SERVER可支持多个用户进程。假设在系统中具有大量用户,多线索效力器可支持大量用户,尤其在客户_效力器环境中。在一个数据库实例中可建立多个调度进程。对每种网络协议至少建立一个调度进程。数据库管理员根据操作系统中每个进程可衔接数目的

19、限制决议启动的调度程序的最优数,在实例运转时可添加或删除调度进程。多线索效力器需求SQL*NET版本2或更后的版本。在多线索效力器的配置下,一个网络接纳器进程等待客户运用衔接恳求,并将每一个发送到一个调度进程。假设不能将客户运用衔接到一调度进程时,网络接纳器进程将启动一个公用效力器进程。该网络接纳器进程不是ORACLE实例的组成部分,它是处置与ORACLE有关的网络进程的组成部分。在实例启动时,该网络接纳器被翻开,为用户衔接到ORACLE建立一通讯途径,然后每一个调度进程把衔接恳求的调度进程的地址给予于它的接纳器。当一个用户进程作衔接恳求时,网络接纳器进程分析恳求并决议该用户能否可运用一调度进

20、程。假设是,该网络接纳器进程前往该调度进程的地址,之后用户进程直接衔接到该调度进程。有些用户进程不能调度进程通讯假设运用SQL*NET以前的版本的用户,网络接纳器进程不能将如此用户衔接到一调度进程。在这种情况下,网络接纳器建立一个公用效力器进程,建立一种适宜的衔接。2、ORACLE内存构造ORACLE在内存存储以下信息:执行的程序代码。衔接的会话信息程序执行期间所需数据和共享的信息存储在外存储上的缓冲信息。ORACLE具有以下根本的内存构造:软件代码区系统全局区,包括数据库缓冲存储区、日志缓冲区和共享池.程序全局区,包括栈区和数据区.排序区软件代码区用于存储正在执行的或可以执行的程序代码。软件

21、区是只读,可安装成共享或非共享。ORACLE系统程序是可共享的,以致多个ORACLE用户可存取它,而不需求在内存有多个副本。用户程序可以共享也可以不共享。系统全局区为一组由ORACLE分配的共享的内存构造,可包含一个数据库实例的数据或控制信息。假设多个用户同时衔接到同一实例时,在实例的SGA中数据可为多个用户所共享,所以又称为共享全局区。当实例起动时,SGA的存储自动地被分配;当实例封锁时,该存储被回收。一切衔接到多进程数据库实例的全部用户可自动地被分配;当实例封锁时,该存储被回收。一切衔接到多进程数据库实例的全部用户可运用其SGA中的信息,但仅仅有几个进程可写入信息。在SGA中存储信息将内存

22、划分成几个区:数据库缓冲存储区、日志缓冲区、共享池、恳求和呼应队列、数据字典存储区和其它各种信息。程序全局区PGA是一个内存区,包含单个进程的数据和控制信息,所以又称为进程全局区PROCESS GLOBAL AREA。排序区排序需求内存空间,ORACLE利用该内存排序数据,这部分空间称为排序区。排序区存在于恳求排序的用户进程的内存中,该空间的大小为适就排序数据量的大小,可增长,但受初始化参数SORT-AREA-SIZER所限制。ORACLE的配置方案一切衔接到ORACLE的用户必需执行两个代码模块可存取一个ORACLE数据库实例:运用或ORACLE工具:一数据库用户执行一数据库运用或一个ORA

23、CLE工具,可向ORACLE数据库发出SQL语句。ORACLE效力器程序:担任解释和处置运用中的SQL语句。在多进程实例中,衔接用户的代码可按以下三种方案之一配置:对于每一个用户,其数据库运用程序和效力器程序组合成单个用户进程对于每一个用户,其数据库运用是由用户进程所运转,并有一个公用效力器进程。执行ORACLE效力器的代码。这样的配置称为公用效力器体系构造执行数据库运用的进程不同于执行ORACLE效力器代码的进程,而且每一个效力器进程执行ORACLE效力器代码可效力于多个用户进程,这样的配置称为多线索效力器体系构造。USER/SERVER进程相结合的构造在这种配置下,数据库运用和ORACLE

24、效力器程序是在同一个进程中运转,该进程称为用户进程。这种ORACLE配置有时称为单义务ORACLEsingle_task ORACLE,该配置适用于这样的操作系统,它可在同一进程中的数据库运用和ORACLE代码之间维护一个隔离,该隔离是为数据平安性和完好性所需。其中程序接口program interface是担任ORACLE效力器代码的隔离和维护,在数据库运用和ORACLE用户程序之间传送数据。运用公用效力器进程的系统构造运用公用效力器进程的ORACLE系统在两台计算机上运转。在这种系统中,在一计算机上用户进程执行数据库运用,而在另一台计算机上的效力器进程执行相应的ORACLE效力器代码,这两

25、个进程是分别的。为每个用户进程建立的不同的效力器进程称为公用效力器进程,由于该效力器进程仅对相连的用户进程起作用。这种配置又称为两义务ORACLE。每一个衔接到ORACLE的用户进程有一个相应的公用效力进程。这种系统构造允许客户运用是有任务站上执行,经过网络与运转ORACLE的计算机通讯。当客户运用和ORACLE效力器代码是在同一台计算机上执行时,这种构造也可用。多线索效力器的系统构造多线索效力器配置允许许多用户进程共享很少效力器进程。在没有多线索效力器的配置中,每一个用户进程需求本人的公用效力器进程。在具有多线索效力器的配置中,许多用户进程衔接到调度进程,由调度进程将客户恳求发送到一个共享效

26、力器进程。多线索效力器配置的优点是降低系统开销,添加用户个数。该系统中需求以下类型的进程:网络接纳器进程,将用户进程衔接到调度进程和公用效力器进程。一个或多个调度进程一个或多个共享效力器进程其中网络接纳器进程等待新来的衔接恳求,决议每一用户进程能否用共享效力器进程。假设可以运用,接纳器进程将一调度进程的地址前往给用户进程。假设用户进程恳求一公用效力器,该接纳器进程将建立一个公用效力器进程,将用户进程衔接到该公用效力器进程。对于数据库客户机所运用的每种网络协议至少配置一个调度进程,并启动它。当用户作一次调用时,调度进程将恳求放置在SGA的恳求队列中,由可用的共享效力器进程获取。共享效力器进程为完

27、成每一个用户进程的恳求作一切必要的数据库调用。当效力器完成恳求时,将结果前往到调度进程的队列,然后由调度进程将完成的恳求前往给用户进程。共享效力器进程:除共享效力器进程不是衔接指定的用户进程外,共享效力器进程和公用效力器进程提供一样的功能,一个共享效力器进程在多线索效力器的配置中可为任何客户恳求效力。一个共享效力器进程的SGA不包含有与用户相关的数据,其信息可为一切共享效力器进程存取,它仅包含栈空间、进程指定变量。一切与会话有关的信息是包含有SGA中。每一个共享效力器进程可存取全部会话的数据空间,以致任何效力进程可处置任何会话的恳求。对于每一个会话的数据空间是在SGA中分配空间。ORACLE根

28、据恳求队列的长度可动态地调整共享效力器进程。可建立的共享效力器进程将恳求放到恳求队列。一个用户恳求是对数据库的一次程序接口调用,为SQL语句。在SGA中恳求队列对实例的全部调度进程是公用的。效力器进程为新恳求检查公用恳求队列,按先进先出的原那么从队列检出一个恳求,然后为完成该恳求对数据库作必要的调用。共享效力器进程将呼应放在调度进程的呼应队列。每一个调度进程在SGA中有本人的呼应队列,每个调度进程担任将完成的恳求回送给相应的用户进程。3.ORACLE运转运用公用效力进程的ORACLE的运转在这种配置下,ORACLE运转过程如下:数据库效力器计算机当前正在运转ORACLE后台进程。在一客户任务站

29、运转一个数据库运用为用户进程,如SQL*PLUS。客户运用运用SQL*NET DRIVER建立对效力器的衔接。数据库效力器计算机当前正运转适宜的SQL*NET DRIVER,该机上接纳器进程检出客户数据库运用的衔接恳求,并在该机上为用户进程建立公用效力器进程。用户发出单个SQL语句。公用效力器进程接纳该语句,在此处有两种方法处置SQL语句:假设在共享池一共享SQL区中包含有一样SQL语句时,该效力器进程可利用已存在的共享SQL区执行客户的SQL语句。假设在共享池中没有一个SQL区包含有一样的SQL语句时,在共享池中为该语句分配一新的共享SQL区。在每一种情况,在会话的PGA中建立一个公用SQL

30、区,公用效力器进程检查用户对查询数据的存取权限。(6) 假设需求,效力器进程从数据文件中检索数据块,或者可运用已存储在实例SGA中的缓冲存储区的数据块。(7) 效力器进程执行存储在共享SQL区中的SQL语句。数据首先在SGA中修正,由DBWR进程在最有效时将它写入磁盘。LGWR进程在在线日志文件中记录用户提交恳求的事务。8假设恳求胜利,效力器将经过网络发送一信息。假设恳求不胜利,将发送相应的错误信息。9在整个过程中,其它的后台进程是运转的,同时留意需求干涉的条件。另外,ORACLE管理其它事务,防止不同事务之间恳求同一数据的竞争。2) 运用多线索效力器的ORACLE的运转在这种配置下,ORAC

31、LE运转过程如下:一数据库效力器计算机运转运用多线索效力器配置的ORACLE。在一客户任务站运转一数据库运用在一用户进程中。客户运用适宜的SQL*NET驱动器试图建立到数据库效力器计算机的衔接。数据库效力器计算机当前运转适宜的SQL*NET驱动器,它的网络接纳器进程检出用户进程的衔接恳求,并决议用户进程如何衔接。假设用户是运用SQL*NET版本2,该网络接纳器通知用户进程运用一个可用的调度进程的地址重新衔接。用户发出单个SQL语句调度进程将用户进程的恳求放入恳求队列,该队列位于SGA中,可为一切调度进程共享。一个可用共享效力器检验公用调度进程恳求队列,并从队列中检出下一个SQL语句。然后处置该

32、SQL语句,同前一5,6和7。留意:会话的公用SQL区是建立在SGA中。一当共享效力器进程完成SQL处置,该进程将结果放置发入该恳求的调度进程的呼应队列。调度进程检查它的呼应队列,并将完成的恳求送回恳求的用户进程。4.数据库构造和空间管理一个ORACLE数据库是数据的集合,被处置成一个单位。一个ORACLE数据库有一个物理构造和一个逻辑构造。物理数据库构造physical database structure是由构成数据库的操作系统文件所决议。每一个ORACLE数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。逻辑数据库构造是用户所涉及的数

33、据库构造。一个ORACLE数据库的逻辑构造由以下要素决议:一个或多个表空间数据库方式对象即表、视图、索引、聚集、序列、存储过程逻辑存储构造如表空间(dataspace)、段(segment)和范围将支配一个数据库的物理空间如何运用。方式对象(schema object)用它们之间的联络组成了一个数据库的关系设计。物理构造数据文件每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库构造(如表、索引)的数据物理地存储在数据库的数据文件中。数据文件有以下特征:一个数据文件仅与一个数据库联络。一旦建立,数据文件不能改动大小一个表空

34、间数据库存储的逻辑单位由一个或多个数据文件组成。 数据文件中的数据在需求时可以读取并存储在ORACLE内存储区中。例如:用户要存取数据库一表的某些数据,假设恳求信息不在数据库的内存存储区内,那么从相应的数据文件中读取并存储在内存。当修正和插入新数据时,不用立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由ORACLE后台进程DBWR决议如何将其写入到相应的数据文件。日志文件每一个数据库有两个或多个日志文件redo log file的组,每一个日志文件组用于搜集数据库日志。日志的主要功能是记录对数据所作的修正,所以对数据库作的全部修正是记录在日志中。在出现缺点时,假设不能

35、将修正数据永久地写入数据文件,那么可利用日志得到该修正,所以从不会丧失已有操作成果。日志文件主要是维护数据库以防止缺点。为了防止日志文件本身的缺点,ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。日志文件中的信息仅在系统缺点或介质缺点恢复数据库时运用,这些缺点阻止将数据库数据写入到数据库的数据文件。然而任何丧失的数据在下一次数据库翻开时,ORACLE自动地运用日志文件中的信息来恢复数据库数据文件。控制文件每一ORACLE数据库有一个控制文件(control file),它记录数据库的物理构造,包含以下信息类型:数据库名;数据库数据文件和

36、日志文件的名字和位置;数据库建立日期。为了平安起见,允许控制文件被镜象。每一次ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们必需被翻开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。数据恢复时,也要运用控制文件。逻辑构造数据库逻辑构造包含表空间、段、范围(extent)、数据块和方式对象。表空间一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间TABLESPACE。一个表空间可将相关的逻辑构造组合在一同。DBA可利用表空间作以下任务:控制数据库数据的磁盘分配。将确定的空间份额分配给数据库用户。经过使单个表空间在线或离线,控

37、制数据的可用性。执行部分数据库后备或恢复操作。为提高性能,跨越设备分配数据存储。数据库、表空间和数据文件之间的关系如以下图所示: Database SYSTEM DATA Tablespace Tablespace DTATAFILE1 (2MB) DATAFILE2 (2MB) DATAFILE3 (2MB) Driver1 Driver2。每个数据库可逻辑划分为一个或多个表空间。每一个表空间是由一个或多个数据文件组成,该表空间物理地存储表空间中全部逻辑构造的数据。DBA可以建立新的表空间,可为表空间添加数据文件或可删除数据文件,设置或更改缺省的段存储位置。每一个ORACLE数据库包含有一个

38、名为SYSTEM的表空间,在数据库建立是自动建立。在该表空间中总包含有整个数据库的数据字典表。最小的数据库可只需求SYSTEM表空间。该表空间必需总是在线。表和存储的PL/SQL程序单元过程、函数、包和触发器的全部存储数据是存储在SYSTEM表空间中。假设这些PL/SQL对象是为数据库建的,DBA在SYSTEM表空间中需求规划这些对象所需求的空间。表空间利用添加数据文件扩展表空间,表空间的大小为组成该表空间的数据文件大小的和。DBA可以使ORACLE数据库中任何表空间除SYSTEM表空间外在线ONLINE或离线OFFLINE。表空间通常是在线,以致它所包含的数据对数据库用户是可用的。当表空间为

39、离线时,其数据不可运用。在以下情况下,DBA可以使其离线。使部分数据不可用,而剩余的部分允许正常存取。执行离线的表空间后备。为了修正或维护一运用,使它和它的一组表暂时不可用。包含有正在活动的回滚段的表空间不能被离线,仅当回滚段不正在运用时,该表空间才可离线。在数据字典中记录表空间的形状,在线还是离线。假设在数据库封锁时一表空间为离线,那么在下次数据库装配和重新翻开后,它依然坚持离线。当出现某些错误时,一个表空间可自动地由在线改动为离线。经过运用多个表空间,将不同类型的数据分开,更方便DBA来管理数据库。ORACLE数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间想联

40、络。当为一表空间建立一数据文件时,ORACLE建立该文件,分配指定的磁盘空间容量。在数据文件初时建立后,所分配的磁盘不包含任何数据。表空间可以在线或离线。在ORACLE中还允许单独数据文件在线或离线。段、范围和数据块ORACLE经过段、范围和数据块逻辑数据构造可更细地控制磁盘空间的运用。段段SEGMENT包含表空间中一种指定类型的逻辑存储构造,是由一组范围组成。在ORACLE数据库中有几种类型的段:数据段、牵引段、回滚段和暂时段。数据段:对于每一个非聚集的表有一数据段,表的一切数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。索引段:每一个索引有一索引段,存储索引数据。回

41、滚段:是由DBA建立,用于暂时存储要吊销的信息,这些信息用于生成读一致性数据库信息、在数据库恢复时运用、回滚未提交的事务。暂时段:当一个SQL语句需求暂时任务区时,由ORACLE建立。当语句执行终了,暂时段的范围退回给系统。ORACLE对一切段的空间分配,以范围为单位。范围一个范围EXTENT是数据库存储空间分配的一个逻辑单位,它由延续数据块所组成。每一个段是由一个或多个范围组成。当一段中间一切空间已完全运用时,ORACLE为该段分配一个新的范围。为了维护的目的,在数据库的每一段含有段标题块segment header block阐明段的特征以及该段中的范围目录。数据块数据块data bloc

42、k是ORACLE管理数据文件中存储空间的单位,为数据库运用的I/O的最小单位,其大小可不同于操作系统的规范I/O块大小。数据块的格式:公用的变长标题表目录行目录未用空间行数据方式和方式对象一个方式(schema)为方式对象(scehma object)的一个集合,每一个数据库用户对应一个方式。方式对象为直接援用数据库数据的逻辑构造,方式对象包含如表、视图、索引、聚集、序列、同义词、数据库链、过程和包等构造。方式对象是逻辑数据存储构造,每一种方式对象在磁盘上没有一个相应文件存储其信息。一个方式对象逻辑地存储在数据库的一个表空间中,每一个对象的数据物理地包含在表空间的一个或多个数据文件中。表表ta

43、ble为数据库中数据存储的根本单位,其数据按行、列存储。每个表具有一表名和列的集合。每一列有一个列名、数据类型、宽度或精度、比例。一行是对应单个记录的列信息的集合。视图一个视图view)是由一个或多个表或其他视图中的数据的一种定制的表示,是用一个查询定义,所以可以为是一个存储的查询stored query或是一个虚表(virtual table)。视图可在运用表的许多地方运用。由于视图是由表导出的,视图和表存在许多类似,视图象表最多可定义254列。视图可以被查询,而在修正、插入或删除时具有一定的限制,在视图上执行的全部操作真正地影响视图的根本表中的数据,遭到根本表的完好性约束和触发器的限制。视

44、图与表不同,一个视图不分配任何存储空间,视图不真正地包含数据。由查询定义的视图相应于视图援用表中的数据。视图只在数据字典中存储其定义。引入视图有以下益处:。经过限制对表的行预定义集合的存取,为表提供附加的平安性。隐藏数据复杂性。为用户简化命令。为根本表的数据提供另一种观念。可将运用隔离根本表定义的修正。用于不用视图无法表示的查询。可用于保管复杂查询。聚集聚集cluster是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一同,并且它们经常一同运用。这些公共列构成聚集码。例如:EMP表各DEPT表共享DEPTNO列,所以EMP表和DEPT表可聚集在一同,聚集码的列为DEP

45、TNO列,该聚集将每个部门的全部职工行各该部门的行物理地存储在同一数据块中。索引索引(index)是与表和聚集相关的一种选择构造。索引是为提高数据检索的性能而建立,利用它可快速地确定指定的信息。ORACLE索引为表数据提供快速存取途径。索引适用于一范围的行查询或指定行的查询。索引可建立在一表的一列或多列上,一旦建立,由ORACLE自动维护和运用,对用户是完全透明的。索引是逻辑地和物理地独立于数据,它们的建立或删除对表没有影响,运用可继续处置。索引数据的检索性能几乎坚持常数,而当一表上存在许多索引时,修正、删除和插入操作的性能会下降。索引有独一索引各非独一索引。独一索引保证表中没有两行在定义索引

46、的列上具有反复值。ORACLE在独一码上自动地定义独一索引实施UNIQUE完好性约束。组合索引是在表的某个列上所建立的一索引。组全索引可加快SELECT语句的检索速度,在其WHERE子句中可援用组合索引的全部或主要部分 。所以在定义中给出列的次序,将经常存取的或选择最多的列放在首位。在建立索引时,将在表空间自动地建立一索引段,索引段空间分配和保管空间的运用受以下方式控制:索引段范围的分配常驻该索引段的存储参数控制。其数据块中未用空间可受该段的PCTFREE参数设置所控制。序列生成器序列生成器(sequence generator)产生序列号。在多用户环境下该序列生成器特别有用,可生成各前往序列

47、号而不需求磁盘I/O或事务封锁。序列号为ORACLE整数,最多可有38个数字。一个序列定义指出普通讯息:序列的名字、上升或下降、序列号之间间距和其它信息。对一切序列确实的定义以行存储在SYSTEM表空间中的数据字典表中,所以一切序列定义总是可用。由援用序列号的SQL语句运用序列号,可生成一个新的序列号或运用当前序列号。一旦在用户会话中的SQL语句生成一序列号,该序列号仅为该会话可用。序列号生成是独立于表,所以同一序列生成器可用于一个和多个表。所生成序列号可用于生成独一的主码。同义词一个同义词(synonym)为任何表、视图、快照、序列、过程、函数或包的别名,其定义存储在数据字典中。同义词因平安

48、性和方便缘由而经常运用,可用于:可屏蔽对象的名字及其持有者。为分布式数据库的远程对象提供位置透明性。为用户简化SQL语句。有两种同义词:公用和公用。一个公用同义词为命名为PUBLIC特殊用户组所持有,可为数据库中每一个用户所存取。一个公用同义词是包含在指定用户的方式中,仅为该用户和授权的用户所运用。杂凑杂凑hashing是存储表数据一种可选择的方法,用以改良数据检索的性能。要运用杂凑,就要建立杂凑聚集,将表装入到该聚集。在骠凑聚集中的表行根据杂凑函数的结果进展物理学存储和检索。杂凑函数用于生成一个数值的分布,该数值称为杂凑值,它是基于指定的聚集码值。程序单元程序单元program unit是指

49、存储过程、函数和包PACKAGE。一个过程和函数,是由SQL语句和PL/SQL语句组合在一同,为执行某一个义务的一个可执行单位。一个过程或函数可被建立,在数据库中存储其编译方式,可由用户或数据库运用所执行。过程和函数差别在函数总前往单个值给调用者,而过程没有值前往给调用者。包提供相关的过程、函数、变量和其它包构造封装起来并存贮在一同的一种方法,允许管理者和运用开发者利用该方法组织如此的程序routine,来提供更多的功能和提高性能。数据库链数据库链是一个命名的对象,阐明从一数据库到另一数据库的一途径PATH。在分布式数据库中,对全局对象名援用时,数据库链隐式地运用。三、数据库和实例的启动和封锁

50、一个ORACLE数据库没有必要对一切用户总是可用,数据库管理员可启动数据库,以致它被翻开。在数据库翻开情况下,用户可存取数据库中的信息。当数据库不运用时,DBA可封锁它,封锁后的数据库,用户不能存取其信息。数据库的启动和封锁是非常重要的管理功能,经过以INTERNAL衔接到ORACLE的才干来维护。以INTERNAL 衔接到ORACLE需求有以下先决条件:该用户的操作系统账号具有运用INTERNAL衔接的操作系统特权。对INTERNAL数据库有一口令,该用户知道其口令。另外:当用户以INTERNAL衔接时,可衔接到公用效力器,而且是平安衔接。数据库启动 启动数据库并使它可用有三步操作:启动一个

51、实例;装配数据库翻开数据库启动一个实例启动一实例的处置包含分配一个SGA数据库信息运用的内存共享区和后台进程的建立。实例起动的执行先于该实例装配一数据库。假设仅启动实例,那么没有数据库与内存储构造和进程相联络。装配一数据库装配数据库是将一数据库与已启动的实例相联。当实例安装一数据库之后,该数据库坚持封锁,仅DBA可存取。翻开一数据库翻开一数据库是使数据库可以进展正常数据库操作的处置。当一数据库翻开一切用户可衔接到该数据库用存取其信息。在数据库翻开时,在线数据文件和在线日志文件也被翻开。假设一表空间在上一次数据库封锁时为离线,在数据库再次翻开时,该表空间与它所相联的数据文件还是离线的。数据库和实

52、例的封锁封锁一实例以及它所衔接的数据库也有三步操作:封锁数据库数据库停顿的第一步是封锁数据库。当数据库封锁后,一切在SGA中的数据库数据和恢复数据相应地写入到数据文件和日志文件。在这操作之后,一切联机数据文件和联机的日志文件也被封锁,任何离线表空间中数据文件夹是已封锁的。在数据库封锁后但还安装时,控制文件仍坚持翻开。卸下数据库停顿数据库的第二步是从实例卸下数据库。在数据库卸下后,在计算机内存中仅保管实例。在数据库卸下后,数据库的控制文件也被封锁。停顿实例停顿数据库的最后一步是停顿实例。当实例停顿后,SAG是从内存中吊销,后台进程被中止。初始化参数文件在启动一个实例时,ORACLE必需读入一初始

53、化参数文件initialization parameter file,该参数文件是一个文本文件,包含有实例配置参数。这些参数置成特殊值,用于初始ORACLE实例的许多内存和进程设置,该参数文件包含:一个实例所启动的数据库名字在SGA中存储构造运用多少内存;在填满在线日志文件后作什么;数据库控制文件的名字和位置;在数据库中公用回滚段的名字。四、数据字典的运用数据字典是ORACLE数据库的最重要的部分之一,是由一组只读的表及其视图所组成。它提供有关该数据库的信息,可提供的信息如下:ORACLE用户的名字;每一个用户所授的特权和角色;方式对象的名字表、视图、快照、索引、聚集、同义词、序列、过程、函数

54、、包及触发器等;关于完好性约束的信息;列的缺省值;有关数据库中对象的空间分布及当前运用情况;审计信息如谁存取或修正各种对象;其它普通的数据库信息。可用SQL存取数据字典,由于数据字典为只读,允许查询。数据字典的构造数据库数据字典是由根本表和用户可存取的视图组成。根本表:数据字典的根底是一组根本表组成,存储相关的数据库的信息。这些信息仅由ORACLE读和写,它们很少被ORACLE用户直接存取。用户可存取视图:数据字典包含用户可存取视图,可概括地方便地显示数据字典的根本表的信息。视图将根本表中信息解码成可用信息。数据字典的运用当数据库翻开时,数据字典总是可用,它驻留在SYSTEM表空间中。数据字典

55、包含视图集,在许多情况下,每一视图集有三种视图包含有类似信息,彼此以 前缀 相区别,前缀 USER、ALL和DBA。前缀为USER的视图,为用 视图,是在用户的方式内。前缀为ALL的视图,为扩展的用户视图为用户可存取的视图。前缀为DBA的视图为DBA的视图为全部用户可存取的视图。在数据库中ORACLE还维护了一组虚表记录当前数据库的活动,这些表称为动态性能表。动态性能表不是真正的表,许多用户不能存取,DBA可查询这些表,可以建立视图,给其它用户授予存取视图权。五、事务管理事务 一个事务为任务的一个逻辑单位,由一个或多个SQL语句组成。一个事务是一个原子单位,构成事务的全部SQL语句的结果可被全

56、部提交或者全部回滚。一个事务由第一个可执行SQL语句开场,以提交或回滚终了,可以是显式的,也可是隐式的执行DDL语句。在执行一个SQL语句出现错误时,该语句一切影响被回滚,好似该语句没有被执行一样,但它不会引起当前事务先前的任务的丧失。ORACLE的事务管理 在ORACLE中一个事务是由一个可执行的SQL语句开场,一个可执行SQL语句产生对实例的调用。在事务开场时,被赋给一个可用回滚段,记录该事务的回滚项。一个事务以以下任何一个出现而终了。当COMMIT或ROLLBACK没有SAVEPOINT子句语句发出。一个DDL语句被执行。在DDL语句执行前、后都隐式地提交。用户吊销对ORACLE的衔接当

57、前事务提交。用户进程异常中止当前事务回滚。提交事务 提交一事务,即将在事务中由SQL语句所执行的改动永久化。在提交前,ORACLE已有以下情况:在SGA的回滚段缓冲区已生成回滚段记录,回滚信息包含有所修正值的老值。在SGA的日志缓冲区已生成日志项。这些改动在事务提交前可进入磁盘。对SGA的数据库缓冲区已作修正,这些修正在事务真正提交之前可进入磁盘。在事务提交之后,有以下情况:对于与回滚段相关的内部事务表记录提交事务,并赋给一个相应的独一系统修正号SCN,记录在表中。在SGA的日志缓冲区中日志项由LGWR进程写入到在线日志文件, 这是构成提交事务的原子事务。在行上和表上的封锁被释放。该事务标志为

58、完成 。留意:对于提交事务的数据修正不用由DBWR后台进程立刻写入数据文件,可继续存储在SGA的数据库缓冲区中,在最有效时将其写入数据文件。回滚事务 回滚事务的含义是吊销未提交事务中的SQL语句所作的对数据修正。ORALCE允许吊销未提交的整个事务,也允许吊销部分。在回滚整个事务没有援用保管点时,有以下情况:在事务中一切SQL语句作的全部修正,利用相应的回滚段被吊销。一切数据的事务封锁被释放。事务终了。当事务回滚到一保管点具有SAVEPOINT时,有以下情况:仅在该保管点之后执行的语句被吊销。该指定的保管点依然被保管,该保管点之后所建立的保管点被删除。自该保管点之后所获取的全部表封锁和行封锁被

59、释放,但指定的保管点以前所获取的全部数据封锁继续坚持。该事务仍可继续。保管点 保管点savepoint是在一事务范围内的中间标志,经常用于将一个长的事务划分为小的部分。保管点可标志长事务中的任何点,允答应回滚该点之后的任务。在运用程序中经常运用保管点;例如一过程包含几个函数,在每个函数前可建立一个保管点,假设函数失败,很容易前往到每一个函数开场的情况。在回滚到一个保管点之后,该坚持点之后所获得的数据封锁被释放。六、数据库触发器触发器引见 数据库触发器(database trigger)是存储在数据库中的过程,当表被修正时它隐式地被激发执行。在ORACLE中允许在对表发出INSERT、UPDAT

60、E或DELETE语句时隐式地执行所定义的过程,这些过程称为数据库触发器。触发器存储在数据库中,并与所相关表分别存储。触发器仅可在表上定义。在许多情况中触发器用于提供很高级的公用数据库管理系统,来补充ORACLE的规范功能。触发器普通用于:自动地生成导出的列值;防止无效的事务;实施更复杂的平安性检查在分布式数据库中实施跨越结点的援用完好性;实施复杂的事务规那么;提供透明事件日志;提供高级的审计;维护同步表复制;搜集关于存取表的统计。留意:数据库触发器与SQL*FORMS触发器之间的差别。数据库触发器是定义在表上,存储在数据库中,当对表执行INSERT、UPDATE或DELETE语句时被激发,不论

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论