《第四章Oracle17091.docx》由会员分享,可在线阅读,更多相关《第四章Oracle17091.docx(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、ORACLE培训教讲义第四章Oracle 体系结构ORACLE数据库体系结构决定了oracle如何使用网络、磁盘和内存。包括实例(instance),文件(file)和进程(process不包括后台进程)三部分。实例:每一个运行的ORACLE数据库与一个ORACLE实例(INSTANCE)相联系。每一次在数据库服务器上启动一数据库时,称为系统全局区(SYSTEM GLOBAL AREA)的一内存区(简称SGA)被分配,有一个或多个ORACLE进程被启动。该SGA 和 ORACLE进程的结合称为一个ORACLE数据库实例。一个实例的SGA和进程为管理数据库数据、为该数据库一个或多个用户服务而工作
2、。在ORACLEE系统中,首首先是实例启启动,然后由由实例装配(MMOUNT)一一数据库。在在松耦合系统统中,在具有有ORACLLE PARRALLELL SERVVER 选项项时,单个数数据库可被多多个实例装配配,即多个实实例共享同一一物理数据库库。Oracle 体系结构password数据库实例后台进程Control fileRedo log fileparameterArchive log fileData file nData file 1ARCHLGWRPNONSMONDBWRShared pool Data dictionaryDatabase buffer poolRedo bu
3、ffer1 ORACLE实实例的进程结结构和内存结结构1) 进程结构进程是操作系统统中的一种机机制,它可执执行一系列的的操作步。在在有些操作系系统中使用作作业(JOBB)或任务(TAASK)的术术语。一个进进程通常有它它自己的专用用存储区。OORACLEE进程的体系系结构设计使使性能最大。ORACLE实实例有两种类类型:单进程程实例和多进进程实例。单进程ORACCLE(又称称单用户ORRACLE)是是一种数据库库系统,一个个进程执行全全部ORACCLE代码。由由于ORACCLE部分和和客户应用程程序不能分别别以进程执行行,所以ORRACLE的的代码和用户户的数据库应应用是单个进进程执行。在单进
4、程环境下下的ORACCLE 实例例,仅允许一一个用户可存存取。例如在在MS-DOOS上运行OORACLEE 。多进程ORACCLE实例(又又称多用户OORACLEE)使用多个个进程来执行行ORACLLE的不同部部分,对于每每一个连接的的用户都有一一个进程。在多进程系统中中,进程分为为两类:用户户进程和ORRACLE进进程。当一用用户运行一应应用程序,如如PRO*CC程序或一个个ORACLLE工具(如如SQL*PPLUS),为为用户运行的的应用建立一一个用户进程程。ORACCLE进程又又分为两类:服务器进程程和后台进程程。服务器进进程用于处理理连接到该实实例的用户进进程的请求。当当应用和ORRA
5、CELEE是在同一台台机器上运行行,而不再通通过网络,一一般将用户进进程和它相应应的服务器进进程组合成单单个的进程,可可降低系统开开销。然而,当当应用和ORRACLE运运行在不同的的机器上时,用用户进程经过过一个分离服服务器进程与与ORACLLE通信。它它可执行下列列任务:l 对应用所发出的的SQL语句句进行语法分分析和执行。l 从磁盘(数据文文件)中读入入必要的数据据块到SGAA的共享数据据库缓冲区(该该块不在缓冲冲区时)。l 将结果返回给应应用程序处理理。系统为了使性能能最好和协调调多个用户,在在多进程系统统中使用一些些附加进程,称称为后台进程程。在许多操操作系统中,后后台进程是在在实例启
6、动时时自动地建立立。一个ORRACLE实实例可以有许许多后台进程程,但它们不不是一直存在在。后台进程程的名字为:DBWR 数数据库写入程程序LGWR 日志志写入程序CKPT 检查查点SMON 系统统监控PMON 进进程监控ARCH 归档档RECO 恢复复LCKn 封锁锁Dnnn 调度度进程Snnn 服务务器每个后台进程与与ORACLLE数据库的的不同部分交交互。下面对后台进程程的功能作简简单介绍:DBWR进程:该进程执行行将缓冲区写写入数据文件件,是负责缓缓冲存储区管管理的一个OORACLEE后台进程。当当缓冲区中的的一缓冲区被被修改,它被被标志为“弄脏”,DBWRR的主要任务务是将“弄脏”的
7、缓冲区写写入磁盘,使使缓冲区保持持“干净”。由于缓冲冲存储区的缓缓冲区填入数数据库或被用用户进程弄脏脏,未用的缓缓冲区的数目目减少。当未未用的缓冲区区下降到很少少,以致用户户进程要从磁磁盘读入块到到内存存储区区时无法找到到未用的缓冲冲区时,DBBWR将管理理缓冲存储区区,使用户进进程总可得到到未用的缓冲冲区。ORACLE采采用LRU(LLEAST RECENNTLY UUSED)算算法(最近最最少使用算法法)保持内存存中的数据块块是最近使用用的,使I/O最小。在在下列情况预预示DBWRR 要将弄脏脏的缓冲区写写入磁盘:l 当一个服务器进进程将一缓冲冲区移入“弄脏”表,该弄脏脏表达到临界界长度时
8、,该该服务进程将将通知DBWWR进行写。该该临界长度是是为参数DBB-BLOCCK-WRIITE-BAATCH的值值的一半。l 当一个服务器进进程在LRUU表中查找DDB-BLOOCK-MAAX-SCAAN-CNTT缓冲区时,没没有查到未用用的缓冲区,它它停止查找并并通知DBWWR进行写。l 出现超时(每次次3秒),DDBWR 将将通知本身。l 当出现检查点时时,LGWRR将通知DBBWR在前两种情况下下,DBWRR将弄脏表中中的块写入磁磁盘,每次可可写的块数由由初始化参数数DB-BLLOCK-WWRITE-BATCHH所指定。如如果弄脏表中中没有该参数数指定块数的的缓冲区,DDBWR从LLU
9、R表中查查找另外一个个弄脏缓冲区区。如果DBWR在在三秒内未活活动,则出现现超时。在这这种情况下DDBWR对LLRU表查找找指定数目的的缓冲区,将将所找到任何何弄脏缓冲区区写入磁盘。每每当出现超时时,DBWRR查找一个新新的缓冲区组组。每次由DDBWR查找找的缓冲区的的数目是为寝寝化参数DBB-BLOCCK-WRIITE-BAATCH的值值的二倍。如如果数据库空空运转,DBBWR最终将将全部缓冲区区存储区写入入磁盘。在出现检查点时时,LGWRR指定一修改改缓冲区表必必须写入到磁磁盘。DBWWR将指定的的缓冲区写入入磁盘。在有些平台上,一一个实例可有有多个DBWWR。在这样样的实例中,一一些块可
10、写入入一磁盘,另另一些块可写写入其它磁盘盘。参数DBB-WRITTERS控制制DBWR进进程个数。LGWR进程:该进程将日日志缓冲区写写入磁盘上的的一个日志文文件,它是负负责管理日志志缓冲区的一一个ORACCLE后台进进程。LGWWR进程将自自上次写入磁磁盘以来的全全部日志项输输出,LGWWR输出:l 当用户进程提交交一事务时写写入一个提交交记录。l 每三秒将日志缓缓冲区输出。l 当日志缓冲区的的1/3已满满时将日志缓缓冲区输出。l 当DBWR将修修改缓冲区写写入磁盘时则则将日志缓冲冲区输出。LGWR进程同同步地写入到到活动的镜象象在线日志文文件组。如果果组中一个文文件被删除或或不可用,LLG
11、WR可继续地写写入该组的其其它文件。日志缓冲区是一一个循环缓冲冲区。当LGGWR将日志志缓冲区的日日志项写入日日志文件后,服服务器进程可可将新的日志志项写入到该该日志缓冲区区。LGWRR 通常写得得很快,可确确保日志缓冲冲区总有空间间可写入新的的日志项。注意:有时候当当需要更多的的日志缓冲区区时,LWGGR在一个事事务提交前就就将日志项写写出,而这些些日志项仅当当在以后事务务提交后才永永久化。ORACLE使使用快速提交交机制,当用用户发出COOMMIT语语句时,一个个COMMIIT记录立即即放入日志缓缓冲区,但相相应的数据缓缓冲区改变是是被延迟,直直到在更有效效时才将它们们写入数据文文件。当一
12、事事务提交时,被被赋给一个系系统修改号(SSCN),它它同事务日志志项一起记录录在日志中。由由于SCN记记录在日志中中,以致在并并行服务器选选项配置情况况下,恢复操操作可以同步步。CKPT进程:该进程在检检查点出现时时,对全部数数据文件的标标题进行修改改,指示该检检查点。在通通常的情况下下,该任务由由LGWR执执行。然而,如如果检查点明明显地降低系系统性能时,可可使CKPTT进程运行,将将原来由LGGWR进程执执行的检查点点的工作分离离出来,由CCKPT进程程实现。对于于许多应用情情况,CKPPT进程是不不必要的。只只有当数据库库有许多数据据文件,LGGWR在检查查点时明显地地降低性能才才使C
13、KPTT运行。CKKPT进程不不将块写入磁磁盘,该工作作是由DBWWR完成的。初始化参数CHHECKPOOINT-PPROCESSS控制CKKPT进程的的使能或使不不能。缺省时时为FALSSE,即为使使不能。SMON进程:该进程实例例启动时执行行实例恢复,还还负责清理不不再使用的临临时段。在具具有并行服务务器选项的环环境下,SMMON对有故故障CPU或或实例进行实实例恢复。SSMON进程程有规律地被被呼醒,检查查是否需要,或或者其它进程程发现需要时时可以被调用用。PMON进程:该进程在用用户进程出现现故障时执行行进程恢复,负负责清理内存存储区和释放放该进程所使使用的资源。例例:它要重置置活动事
14、务表表的状态,释释放封锁,将将该故障的进进程的ID从从活动进程表表中移去。PPMON还周周期地检查调调度进程(DDISPATTCHER)和和服务器进程程的状态,如如果已死,则则重新启动(不不包括有意删删除的进程)。PMON有规律律地被呼醒,检检查是否需要要,或者其它它进程发现需需要时可以被被调用。RECO进程:该进程是在在具有分布式式选项时所使使用的一个进进程,自动地地解决在分布布式事务中的的故障。一个个结点RECCO后台进程程自动地连接接到包含有悬悬而未决的分分布式事务的的其它数据库库中,RECCO自动地解解决所有的悬悬而不决的事事务。任何相相应于已处理理的悬而不决决的事务的行行将从每一个个
15、数据库的悬悬挂事务表中中删去。当一数据库服务务器的RECCO后台进程程试图建立同同一远程服务务器的通信,如如果远程服务务器是不可用用或者网络连连接不能建立立时,RECCO自动地在在一个时间间间隔之后再次次连接。RECO后台进进程仅当在允允许分布式事事务的系统中中出现,而且且DISTRRIBUTEED TRANNSACTIIONS参数数是大于0。ARCH进程:该进程将已已填满的在线线日志文件拷拷贝到指定的的存储设备。当当日志是为AARCHIVVELOG使使用方式、并并可自动地归归档时ARCCH进程才存存在。LCKn进程:是在具有并并行服务器选选件环境下使使用,可多至至10个进程程(LCK00,L
16、CK11,LCKK9),用于于实例间的封封锁。Dnnn进程(调调度进程):该进程允许许用户进程共共享有限的服服务器进程(SSERVERR PROCCESS)。没没有调度进程程时,每个用用户进程需要要一个专用服服务进程(DDEDICAATEDSEERVER PROCEESS)。对对于多线索服服务器(MUULTI-TTHREADDED SEERVER)可可支持多个用用户进程。如如果在系统中中具有大量用用户,多线索索服务器可支支持大量用户户,尤其在客客户_服务器器环境中。在一个数据库实实例中可建立立多个调度进进程。对每种种网络协议至至少建立一个个调度进程。数数据库管理员员根据操作系系统中每个进进程可
17、连接数数目的限制决决定启动的调调度程序的最最优数,在实实例运行时可可增加或删除除调度进程。多多线索服务器器需要SQLL*NET版版本2或更后后的版本。在在多线索服务务器的配置下下,一个网络络接收器进程程等待客户应应用连接请求求,并将每一一个发送到一一个调度进程程。如果不能能将客户应用用连接到一调调度进程时,网网络接收器进进程将启动一一个专用服务务器进程。该该网络接收器器进程不是OORACLEE实例的组成成部分,它是是处理与ORRACLE有有关的网络进进程的组成部部分。在实例例启动时,该该网络接收器器被打开,为为用户连接到到ORACLLE建立一通通信路径,然然后每一个调调度进程把连连接请求的调调
18、度进程的地地址给予于它它的接收器。当当一个用户进进程作连接请请求时,网络络接收器进程程分析请求并并决定该用户户是否可使用用一调度进程程。如果是,该该网络接收器器进程返回该该调度进程的的地址,之后后用户进程直直接连接到该该调度进程。有有些用户进程程不能调度进进程通信(如如果使用SQQL*NETT以前的版本本的用户),网网络接收器进进程不能将如如此用户连接接到一调度进进程。在这种种情况下,网网络接收器建建立一个专用用服务器进程程,建立一种种合适的连接接。2)、ORACCLE内存结结构ORACLE在在内存存储下下列信息:l 执行的程序代码码。l 连接的会话信息息l 程序执行期间所所需数据和共共享的信
19、息l 存储在外存储上上的缓冲信息息。ORACLE具具有下列基本本的内存结构构:l 软件代码区l 系统全局区,包包括数据库缓缓冲存储区、日日志缓冲区和和共享池.l 程序全局区,包包括栈区和数数据区.l 排序区软件代码区用于存储正在执执行的或可以以执行的程序序代码。软件区是只读,可可安装成共享享或非共享。OORACLEE系统程序是是可共享的,以以致多个ORRACLE用用户可存取它它,而不需要要在内存有多多个副本。用用户程序可以以共享也可以以不共享。系统全局区为一组由ORAACLE分配配的共享的内内存结构,可可包含一个数数据库实例的的数据或控制制信息。如果果多个用户同同时连接到同同一实例时,在在实例
20、的SGGA中数据可可为多个用户户所共享,所所以又称为共共享全局区。当当实例起动时时,SGA的的存储自动地地被分配;当当实例关闭时时,该存储被被回收。所有有连接到多进进程数据库实实例的全部用用户可自动地地被分配;当当实例关闭时时,该存储被被回收。所有有连接到多进进程数据库实实例的全部用用户可使用其其SGA中的的信息,但仅仅仅有几个进进程可写入信信息。在SGGA中存储信信息将内存划划分成几个区区:数据库缓缓冲存储区、日日志缓冲区、共共享池、请求求和响应队列列、数据字典典存储区和其其它各种信息息。程序全局区PGA是一个内内存区,包含含单个进程的的数据和控制制信息,所以以又称为进程程全局区(PPROC
21、ESSS GLOOBAL AAREA)。排序区排序需要内存空空间,ORAACLE利用用该内存排序序数据,这部部分空间称为为排序区。排排序区存在于于请求排序的的用户进程的的内存中,该该空间的大小小为适就排序序数据量的大大小,可增长长,但受初始始化参数SOORT-ARREA-SIIZER所限限制。2 ORACLE的的配置方案所有连接到ORRACLE的的用户必须执执行两个代码码模块可存取取一个ORAACLE数据据库实例:l 应用或ORACCLE工具:一数据库用用户执行一数数据库应用或或一个ORAACLE工具具,可向ORRACLE数数据库发出SSQL语句。l ORACLE服服务器程序:负责解释和和处理
22、应用中中的SQL语语句。在多进程实例中中,连接用户户的代码可按按下列三种方方案之一配置置:l 对于每一个用户户,其数据库库应用程序和和服务器程序序组合成单个个用户进程l 对于每一个用户户,其数据库库应用是由用用户进程所运运行,并有一一个专用服务务器进程。执执行ORACCLE服务器器的代码。这这样的配置称称为专用服务务器体系结构构l 执行数据库应用用的进程不同同于执行ORRACLE服服务器代码的的进程,而且且每一个服务务器进程(执执行ORACCLE服务器器代码)可服服务于多个用用户进程,这这样的配置称称为多线索服服务器体系结结构。1) USER/SEERVER进进程相结合的的结构在这种配置下,数
23、数据库应用和和ORACLLE服务器程程序是在同一一个进程中运运行,该进程程称为用户进进程。这种ORACLLE配置有时时称为单任务务ORACLLE(sinngle_ttask OORACLEE),该配置置适用于这样样的操作系统统,它可在同同一进程中的的数据库应用用和ORACCLE代码之之间维护一个个隔离,该隔隔离是为数据据安全性和完完整性所需。其其中程序接口口(proggram iinterfface)是是负责ORAACLE服务务器代码的隔隔离和保护,在在数据库应用用和ORACCLE用户程程序之间传送送数据。2) 使用专用服务器器进程的系统统结构使用专用服务器器进程的ORRACLE系系统在两台计
24、计算机上运行行。在这种系系统中,在一一计算机上用用户进程执行行数据库应用用,而在另一一台计算机上上的服务器进进程执行相应应的ORACCLE服务器器代码,这两两个进程是分分离的。为每每个用户进程程建立的不同同的服务器进进程称为专用用服务器进程程,因为该服服务器进程仅仅对相连的用用户进程起作作用。这种配配置又称为两两任务ORAACLE。每每一个连接到到ORACLLE的用户进进程有一个相相应的专用服服务进程。这这种系统结构构允许客户应应用是有工作作站上执行,通通过网络与运运行ORACCLE的计算算机通信。当当客户应用和和ORACLLE服务器代代码是在同一一台计算机上上执行时,这这种结构也可可用。3)
25、 多线索服务器的的系统结构多线索服务器配配置允许许多多用户进程共共享很少服务务器进程。在在没有多线索索服务器的配配置中,每一一个用户进程程需要自己的的专用服务器器进程。在具具有多线索服服务器的配置置中,许多用用户进程连接接到调度进程程,由调度进进程将客户请请求发送到一一个共享服务务器进程。多多线索服务器器配置的优点点是降低系统统开销,增加加用户个数。该系统中需要下下列类型的进进程:l 网络接收器进程程,将用户进进程连接到调调度进程和专专用服务器进进程。l 一个或多个调度度进程l 一个或多个共享享服务器进程程其中网络接收器器进程等待新新来的连接请请求,决定每每一用户进程程能否用共享享服务器进程程
26、。如果可以以使用,接收收器进程将一一调度进程的的地址返回给给用户进程。如如果用户进程程请求一专用用服务器,该该接收器进程程将建立一个个专用服务器器进程,将用用户进程连接接到该专用服服务器进程。对对于数据库客客户机所使用用的每种网络络协议至少配配置一个调度度进程,并启启动它。当用户作一次调调用时,调度度进程将请求求放置在SGGA的请求队队列中,由可可用的共享服服务器进程获获取。共享服服务器进程为为完成每一个个用户进程的的请求作所有有必要的数据据库调用。当当服务器完成成请求时,将将结果返回到到调度进程的的队列,然后后由调度进程程将完成的请请求返回给用用户进程。共享服务器进程程:除共享服服务器进程不
27、不是连接指定定的用户进程程外,共享服服务器进程和和专用服务器器进程提供相相同的功能,一一个共享服务务器进程在多多线索服务器器的配置中可可为任何客户户请求服务。一一个共享服务务器进程的SSGA不包含含有与用户相相关的数据,其其信息可为所所有共享服务务器进程存取取,它仅包含含栈空间、进进程指定变量量。所有与会会话有关的信信息是包含有有SGA中。每每一个共享服服务器进程可可存取全部会会话的数据空空间,以致任任何服务进程程可处理任何何会话的请求求。对于每一一个会话的数数据空间是在在SGA中分分配空间。ORACLE根根据请求队列列的长度可动动态地调整共共享服务器进进程。可建立立的共享服务务器进程将请请求
28、放到请求求队列。一个个用户请求是是对数据库的的一次程序接接口调用,为为SQL语句句。在SGAA中请求队列列对实例的全全部调度进程程是公用的。服服务器进程为为新请求检查查公用请求队队列,按先进进先出的原则则从队列检出出一个请求,然然后为完成该该请求对数据据库作必要的的调用。共享享服务器进程程将响应放在在调度进程的的响应队列。每每一个调度进进程在SGAA中有自己的的响应队列,每每个调度进程程负责将完成成的请求回送送给相应的用用户进程。3.ORACLLE运行1) 使用专用服务进进程的ORAACLE的运运行在这种配置下,OORACLEE运行过程如如下:(1) 数据库服务器计计算机当前正正在运行ORRA
29、CLE(后后台进程)。(2) 在一客户工作站站运行一个数数据库应用(为为用户进程),如如SQL*PPLUS。客客户应用使用用SQL*NNET DRRIVER建建立对服务器器的连接。(3) 数据库服务器计计算机当前正正运行合适的的SQL*NNET DRRIVER,该该机上接收器器进程检出客客户数据库应应用的连接请请求,并在该该机上为用户户进程建立专专用服务器进进程。(4) 用户发出单个SSQL语句。(5) 专用服务器进程程接收该语句句,在此处有有两种方法处处理SQL语语句:l 如果在共享池一一共享SQLL区中包含有有相同SQLL语句时,该该服务器进程程可利用已存存在的共享SSQL区执行行客户的S
30、QQL语句。l 如果在共享池中中没有一个SSQL区包含含有相同的SSQL语句时时,在共享池池中为该语句句分配一新的的共享SQLL区。在每一种情况,在在会话的PGGA中建立一一个专用SQQL区,专用用服务器进程程检查用户对对查询数据的的存取权限。(6) 如果需需要,服务器器进程从数据据文件中检索索数据块,或或者可使用已已存储在实例例SGA中的的缓冲存储区区的数据块。(7) 服务器器进程执行存存储在共享SSQL区中的的SQL语句句。数据首先先在SGA中中修改,由DDBWR进程程在最有效时时将它写入磁磁盘。LGWWR进程在在在线日志文件件中记录用户户提交请求的的事务。(8)如果请求求成功,服务务器将
31、通过网网络发送一信信息。如果请请求不成功,将将发送相应的的错误信息。(9)在整个过过程中,其它它的后台进程程是运行的,同同时注意需要要干预的条件件。另外,OORACLEE管理其它事事务,防止不不同事务之间间请求同一数数据的竞争。2) 使使用多线索服服务器的ORRACLE的的运行在这种配置下,OORACLEE运行过程如如下:(1) 一数据库服务器器计算机运行行使用多线索索服务器配置置的ORACCLE。(2) 在一客户工作站站运行一数据据库应用(在在一用户进程程中)。客户户应用合适的的SQL*NNET驱动器器试图建立到到数据库服务务器计算机的的连接。(3) 数据库服务器计计算机当前运运行合适的SS
32、QL*NEET驱动器,它它的网络接收收器进程检出出用户进程的的连接请求,并并决定用户进进程如何连接接。如果用户户是使用SQQL*NETT版本2,该该网络接收器器通知用户进进程使用一个个可用的调度度进程的地址址重新连接。(4) 用户发出单个SSQL语句(5) 调度进程将用户户进程的请求求放入请求队队列,该队列列位于SGAA中,可为所所有调度进程程共享。(6) 一个可用共享服服务器检验公公用调度进程程请求队列,并并从队列中检检出下一个SSQL语句。然然后处理该SSQL语句,同同前一(5),(66)和(7)。注注意:会话的的专用SQLL区是建立在在SGA中。(7) 一当共享服务器器进程完成SSQL处
33、理,该该进程将结果果放置发入该该请求的调度度进程的响应应队列。(8) 调度进程检查它它的响应队列列,并将完成成的请求送回回请求的用户户进程。4.数据库结构构和空间管理理一个ORACLLE数据库是是数据的集合合,被处理成成一个单位。一一个ORACCLE数据库库有一个物理理结构和一个个逻辑结构。物理数据库结构构(physsical databbase sstructture)是是由构成数据据库的操作系系统文件所决决定。每一个个ORACLLE数据库是是由三种类型型的文件组成成:数据文件件、日志文件件和控制文件件。数据库的的文件为数据据库信息提供供真正的物理理存储。逻辑数据库结构构是用户所涉涉及的数据
34、库库结构。一个个ORACLLE数据库的的逻辑结构由由下列因素决决定:l 一个或多个表空空间l 数据库模式对象象(即表、视视图、索引、聚聚集、序列、存存储过程)逻辑存储结构如如表空间(ddatasppace)、段段(segmment)和和范围将支配配一个数据库库的物理空间间如何使用。模模式对象(sschemaa objeect)用它它们之间的联联系组成了一一个数据库的的关系设计。1) 物理结构(1) 数据文件每一个ORACCLE数据库库有一个或多多个物理的数数据文件(ddata ffile)。一一个数据库的的数据文件包包含全部数据据库数据。逻逻辑数据库结结构(如表、索引引)的数据物理理地存储在数
35、数据库的数据据文件中。数数据文件有下下列特征:l 一个数据文件仅仅与一个数据据库联系。l 一旦建立,数据据文件不能改改变大小l 一个表空间(数数据库存储的的逻辑单位)由由一个或多个个数据文件组组成。 数据据文件中的数数据在需要时时可以读取并并存储在ORRACLE内内存储区中。例例如:用户要要存取数据库库一表的某些些数据,如果果请求信息不不在数据库的的内存存储区区内,则从相相应的数据文文件中读取并并存储在内存存。当修改和和插入新数据据时,不必立立刻写入数据据文件。为了了减少磁盘输输出的总数,提提高性能,数数据存储在内内存,然后由由ORACLLE后台进程程DBWR决决定如何将其其写入到相应应的数据
36、文件件。(2) 日志文件每一个数据库有有两个或多个个日志文件(redo log file)的组,每一个日志文件组用于收集数据库日志。日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改是记录在日志中。在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到该修改,所以从不会丢失已有操作成果。日志文件主要是是保护数据库库以防止故障障。为了防止止日志文件本本身的故障,OORACLEE允许镜象日日志(mirrroredd redoo log),以致可在在不同磁盘上上维护两个或或多个日志副副本。日志文件中的信信息仅在系统统故障或介质质故障恢复数数据库时使用用,这些故障障阻止将数据
37、据库数据写入入到数据库的的数据文件。然然而任何丢失失的数据在下下一次数据库库打开时,OORACLEE自动地应用用日志文件中中的信息来恢恢复数据库数数据文件。(3) 控制文件每一ORACLLE数据库有有一个控制文文件(conntrol file),它记录数数据库的物理理结构,包含含下列信息类类型:l 数据库名;l 数据库数据文件件和日志文件件的名字和位位置;l 数据库建立日期期。为了安全起见,允允许控制文件件被镜象。每一次ORACCLE数据库库的实例启动动时,它的控控制文件用于于标识数据库库和日志文件件,当着手数数据库操作时时它们必须被被打开。当数数据库的物理理组成更改时时,ORACCLE自动更更改该数据库库的控制文件件。数据恢复复时,也要使使用控制文件件。1 初始化参数文件件在启动一个实例例时,ORAACLE必须须读入一初始始化参数文件件(inittializzationn paraameterr filee),该参数数文件是一个个文本文件,包包含有实例配配置参数。这这些参数置成成特殊值,用用于初始ORRACLE实实例的许多内内存和进程设设置,该参数数文件包含:l 一个实例所启动动的数据库名名字l 在SGA中存储储结构使用多多少内存;l 在填满在线日志志文件后作什什么;l 数据库控制文件件的名字和位位置;l 在数据库中专用用回滚段的名名字。