第章Oracle数据库的体系结构_第1页
第章Oracle数据库的体系结构_第2页
第章Oracle数据库的体系结构_第3页
第章Oracle数据库的体系结构_第4页
第章Oracle数据库的体系结构_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第2章Oracle数据库的体系结构2.1Oracle数据库的物理存储结构Oracle数据库的物理存储结构由存储在磁盘中的操作系统文件组成。包括构成数据库的各种物理文件,包括数据文件,控制文件,重演日志文件,归档重演日志文件,参数文件,警告、跟踪日志文件和备份文件等。Oracle数据库存储结构

物理存储结构数据文件(DataFile)重做日志文件(RedoLogFile)控制文件(ControlFile)逻辑存储结构表空间(TableSpace)段(Segment)区(Extent)块(Block)Oracle数据库文件类型及其关联2.1.1数据文件(DataFile)数据库中所有的数据最终都保存在数据文件中。每个Oracle数据库都有一个或多个物理数据文件数据文件中包括表数据索引数据数据字典定义回滚事务所需的信息存储过程、函数和数据包的代码用来排序的临时数据一个数据文件只能与一个数据库相关联(N:1)。可以对数据文件设置一些特性,在数据库空间用完的情况下可以自动扩展。一个或多个数据文件构成了一个数据库存储的逻辑单元——表空间(tablespace)。

提示:表空间是数据库存储的逻辑单位。数据库文件如果离开了表空间将失去意义,而表空间如果离开了数据文件将失去物理基础数据文件的特点例:使用数据字典dba_data_files查看表空间system所对应的数据文件的部分信息。SQL>descdba_data_files;SQL>selectfile_name,tablespace_name,autoextensiblefromdba_data_fileswheretablespace_name=‘SYSTEM’;dba_data_files表结构:查询执行结果:2.1.2控制文件数据库控制文件(controlfile)是一个很小的二进制文件,用于维护数据库的全局物理结构,它存放着数据库中数据文件和日志文件的信息。创建数据库时,同时就提供了与之对应的控制文件。每一个控制文件只能与一个Oracle数据库相关联。控制文件包含了数据库实例在启动和正常操作时,访问数据库所需的关于数据库的信息。一旦损坏,数据库将无法正常工作查询当前数据库的控制文件信息(使用数据字典:V$controlfile)提示:Oracle一般会默认创建3个包含相同信息的控制文件,分别存储在不同磁盘互为镜像,以防其中之一受损时,数据库可以调用其他控制文件继续工作SQL>columnnameformata50;SQL>selectnamefromV$controlfile;控制文件包包含的信息息数据库名称称数据库创建建的时间戳戳相关的数据据文件、重重演日志文文件的名称称和位置表空间信息息数据文件脱脱机范围日志历史归档日志信信息备份组和备备份块信息息备份数据文文件和重演演日志信息息数据文件拷拷贝信息当前日志序序列数检查点(checkpoint)信息息2.1.3重做做日志文件件每一个Oracle数据库都都有一个由由两个或多多个重演日日志文件(redologfile)构成成的文件组组,这组重重演日志文文件合称为为数据库的的重演日志志。一个重演日日志文件是是由重做条条目(redoentry,也叫重重做记录)组成的。。重演日志的的主要功能能是记录下下所有数据据的改变。。重演日志文文件中的信信息可以用用在数据库库从系统失失败或者介介质失败的的恢复之中中。记录数据库库所有修改改信息的文文件,简称称日志文件件,是数据库最最重要的文文件之一。。其中修改信信息包括数据的修改改信息或者数据库结构构的修改信息等等。为了确保日日志文件的的安全,在在实际应用用中,允许许对日志文文件进行镜镜像,它们们构成一个个日志文件件组,同一一个族的日日志文件最最好放在不不同的磁盘盘中。Oracle中的多多个日志文文件组是循循环使用的的。当所有有的日志文文件组的空空间都被填填满后,系系统将重新新切换到第第一个日志志文件组,,发生日志志切换时,,日志文件件组中已有有的信息是是否被覆盖盖取决于系系统运行的的模式(归归档模式和和非归档模模式。)日志文件组组2.1.4其他他文件1.归档重重演日志文文件归档重演日日志文件(archivelogfile)就是对对写满的重重演日志文文件进行复复制并保存存而生成的的文件。可以通过设设置数据库库为归档模模式(ARCHIVELOGmode)下来来自动地保保存日志文文件。归档档进程(ARCO)在后台负负责把写满满的重演日日志文件复复制到归档档日志目标标中。归档档日志文件件在数据库库恢复时起起决定性作作用。2.参数数文件(parameterfile)参数文件包包含了一组组关于数据据库和实例例的配置参参数。主要要包括数据据库名和控控制文件所所在路径。。有文本参参数文件((parameterFile,简称Pfile。ini<SID>.ora)和服务器器参数文件件(ServerParameterFile,简称Spfile,spfile<SID>.ora)两种类型型。Oracle推荐用户使使用一个服服务器参数数文件作为为维护初始始化参数的的动态手段段。一个服服务器参数数文件允许许用户在一一个服务器器端的磁盘盘文件里持持久地保存存和管理初初始化参数数。3.警警告、跟踪踪日志文件件每一个服务务器和后台台进程都可可以写入一一个相关的的跟踪文件件(tracefile)。当一个个进程发现现了一个内内部错误的的时候,它它把关于错错误的信息息转储到它它的跟踪文文件里。写写入到跟踪踪文件的一一部分信息息是给数据据库管理员员使用的,,而其他信信息是给Oracle支持服服务的。跟跟踪文件信信息还可以以用于调整整应用程序序和实例。。警告文件(alertfile)是是一种特殊殊的跟踪文文件,一个个数据库的的警告文件件就是包括括按时间排排序的消息息和错误的的记录。4.备备份文件用户管理的的备份和恢恢复实际上上就是要求求用户在试试图恢复备备份的时候候先还原备备份文件。。服务器管管理的备份份和恢复管管理了备份份过程,例例如,调度度备份及恢恢复过程就就是在需要要恢复的时时候施加正正确的备份份文件。主要的逻辑辑存储结构构:表空间各种段数据段索引段临时段回滚段区间数据块2.2Oracle数据据库的逻辑辑存储结构构表空间段数据块数据块数据库表空间段区区………Oracle数据库的逻辑结构表空间是Oracle中最大大的逻辑存存储结构,,它与物理理上的一个个或多个数数据文件相相对应,每每个Oracle数数据库都至至少拥有一一个表空间间。表空间的大大小等于构构成表空间间的所有数数据文件大大小的总和和。表空间用于于存储用户户在数据库库中创建的的所有的内内容。2.2.1表空间间(Tablespace)表空间与数数据文件的的关系一个表空间间与硬盘上上的一个或或多个物理理数据文件件相对应。。例:通过数数据字典dba_tablespaces,查查看当前数数据库的所所有表空间间的名称SQL>selecttablespace_namefromdba_tablespaces;Oracle自动创创建的表空空间的说明明:见P23页中表表2-1系统表空间间临时表空间间工具表空间间用户表空间间数据库索引引表空间回滚表空间间主要的数据据库表空间间Oracle允许在在逐个表空空间基础上上控制数据据库数据的的可用性在联机表空空间中的数数据对于应应用程序和和数据库来来说是可用用的在脱机表空空间中的数数据对于应应用程序和和数据库来来说是不可可用的,即即使当数据据库是可用用的也是如如此。联机和脱机机表空间永久表空间间和临时表表空间在Oracle数据据库中,大大多数表空空间是永久久表空间。。永久表空空间存储单单个SQL请求和事事务中必须须存留的信信息。Oracle还允许许在数据库库中创建临临时表空间间。临时表表空间使事事务能够用用于处理复复杂SQL操作的大大量临时工工作空间,,如存储查查询、连接接查询和建建立索引等等。段是一组盘区区,是Oracle管理理数据库对象象的单位。是是终端用户能能处理的最小小单位。Oracle为段分配的的空间是以数数据区为单位位的,当断的的数据区已满满,Oracle围棋分分配另一个数数据区。段的数据区可可以是不连续续的磁盘空间间。段可以分为::数据段、索索引段、临时时段、回退段段四种类型。。段段(Segment)1.数据段用于存储表中中的数据。数数据段的名称称与表的名称称相同。系统统为分区表的的每个分区分分配一个数据据段。2.索引段用于存储表中中国的所有索索引信息。索索引段的名称称与索引相同同。分区索引引的每一个分分区对应一个个索引段。3.临时表临时段用于存存储临时数据据。排序或者者汇总时所产产生的临时数数据都存储在在临时段中,,该段由系统统在用户的临临时表空间中中自动创建,,兵在排序或或者汇总结束束是自动消除除。4.回退段用于存储用户户数据被修改改之前的值。。用于用户进进行回退(恢恢复)操作时时使用。每个个Oracle数据库至至少拥有一个个回退段。区区(EXtent)区时磁盘空间间分配的最小小单位,由一一个或多个数数据块组成。。当段中的所所有空间被使使用完后,系系统将自动为为该段分配一一个新的区。。段所包含的区区的个数由::minextents和maxextents参数决定定。数数据块是用来管理存存储空间的最最基本的单位位,也是最小小的逻辑存储储单位。块头部:包含含数据块中的的饿一般属性性信息,如物物理地址、所所属断的类型型等。表目录:用来来存储相关对对象的信息。。行目录:用来来存储数据块块中有效的行行信息。空闲空间:数数据块中还没没有使用的存存储空间。行空间:数数据块中已使使用的存储空空间块头部表目录行目录空闲空间行空间块头部信息区块的默认大小小,由db_block_size参数在数数据库创建时时指定,一旦旦数据库创建建成功后无法法修改。表表空间、段、、分区和数据据块的关系图图2.3Oracle数据库系统统结构与实例例Oracle数据库系统统结构包括::Oracle实例(Instance)、数据据库文件、用用户进程、服服务器进程,,以及其他文文件如:密码码文件、和归归档文件(ArchiveLogFile)等。Oracle数据库管理理系统包括::Oracle数据库和和Oracle实例Oracle数据库是一一组相关的操操作系统文件件的集合2.3.1Oracle数据库系系统结构LibrarycacheDatadictcacheOracle数据库系统统结构Oracle系统结构构图2.3.2Oracle数据库库实例Oracle实例由一些些内存区和后后台进程组成成。内存区域域主要包括::数据库高速速缓存、共享享池、流池以以及其他可选选内存区(如如java池池)。后台进进程主要由::系统监控进进程(SMON)、进程程监控(PMON)、数数据库写进程程(DBWR)、日志写写进程(LGWR)、检检验点进程(CKPT)、其他进程程(如ARCn进程、RECO进程程)1.实例例和数据库之之间的关系2.Oracle实实例与参数文文件每个实例都要要用称为SID(systemidentifier,系统标识识符)的符号号来标识决定实例的大大小及组成的的参数存储在在初始化参数数文件(init.ora)中,启启动实例时读读取这个文件件,在运行时时可由数据库库管理员修改改对该文件的任任何修改都只只有在数据库库下一次启动动时才起作用用2.3.3Oracle数据库库系统的内存存结构1.系统全局局区(SGA)主要部分分组成数据库高速缓缓存区共享池重做日志缓存存区大缓存池固定的SGA。缓冲区域共享区域系统全局区(SGA)软件代码区域栈空间会话信息其他区程序全局区(PGA)Oracle内存结构图数据库高速缓缓存区

(DatabaseBufferCache)图2.8数数据库高高速缓存区用于存储从磁磁盘数据文件件中读取的数数据,供所有有用户共享,,以提高数据据库的整体效效率共享池Sharepool图2.9共共享池中中的内存结构构用于保存最近近执行的SQL语句、PL/SQL程序的数据据字典信息,,以用于系统统对其进行语语法分析、编编译和执行的的内存区域。。重做日志缓存存区用于在内存中中存储未被刷刷新写入联机机重做日志文文件的重做信信息是Oracle在循环方方式下使用的的先进先出的的缓冲区大小可在初始始化参数文件件中由logbuffer参数设设定,以字节节为单位大缓存池是Oracle的一个可可选内存区,,主要用于多多线程的服务务器或备份还还原等操作固定的SGA用于存储极大大量的值。为为了对实例进进行操作,这这些值需要在在内部进行记记录。程序全局区(PGA)独立于SGA,不会出现现在SGA中中。由操作系系统在本地分分配。在系统全局区区可用的共享享内存连接到Oracle数据据库的进程的的私有的内存存区--程序序全局区(PGA)程序全局区不不能共享程序全局区含含有单个进程程工作时需要要的数据、控控制信息、进进程会话变量量和内部数组组等2.3.4Oracle数据库库系统的后台台进程图2.10典型的的Oracle后台进程程集合在NT服务器器上,后台进进程的执行是是作为OracleService的多线程程实现的,它它允许Oracle进程程更有效地使使用共享内存存地址空间,,从而减少了了NT操操作系统处理理。Oracle数据库启动动时,会启动动多个Oracle后台台进程,用于于异步执行不不同的特定任任务。通过查查询数据字典典v$bgprocess可以查看看它们的相关关信息。DBWn进进程:数据库写入进进程,负责将将数据缓冲区区中的数据写写入数据文件件。其主要有有以下几个作作用:管理数据缓冲冲区,一遍用用户进程总能能找到空闲的的缓冲区。将所有修改后后的缓冲区数数据(dirtydata)写入入数据文件。。使用LRU算算法将最近使使用过的块保保留在内存中中。通过延迟些来来优化磁盘I/O读写。。DBWn进程程最多可以启启动20个,,分别命名为为DBW0,,DBW1…….DBW9,DBWa,,,DBWj。由参参数db_writer_processes决定。LGWR进进程日志写入进程程,负责管理理日志缓冲区区的后台进程程。将日志志信息同步的的写入在线日日志文件组中中。若整个日日志文件组均均无法使用,,则进程会被被挂起,直至至问题被解决决。CKPT进进程检验点进程。。一般在发生生日志切换时时自动产生,,用于缩短实实例恢复所需需要的时间。。在检查点期期间,该进程程更新控制文文件与数据文文件的标题,,从而反映最最近成功SCN(系统更更改号)。参数Log_checkpoint_timeout::设置检查点点产生的时间间间隔,默认认1800秒秒。参数Log_checkpoint_interval:设置一个个检查点需要要填充的日志志文件块的数数目。默认为为0。SMON进程程:系统监控控进程,所负负责的工作有有:数据库实例故故障恢复管理和维护表表空间中的空空闲空间系统启动期间间,回收所有有表空间中的的临时段PMON进程程:用户进程程监控进程,,负责用户进进程故障恢复复,清理释放放用户进程的的内存区域。。周期性检查查调度进程和和服务器进程程状态。ARCn进程程:归档进程程。用于将邪邪门的日志文文件复制到归归档日志文件件中,防止日日志文件组中中的日志信息息被覆盖或者者破坏。运行行在数据库服服务器归档模模式下。RECO进程程:存在于分分布式数据库库系统中,用用于自动解决决在分布式数数据库系统中中出现的事务务故障。主要要负责事务回回滚,保持分分布式系统中中数据的一致致性。数数据库字典典Oracle数据库字典典(datadictionary),是存存储在数据库库中的所有对对象信息的知知识库,Oracle数数据库管理系系统使用数据据字典获取对对象信息和安安全信息。而而用户和数据据库系统管理理员则用数据据字典查询数数据库信息。。数据字典中保保存有数据库库中对象和段段的信息,如如:表、索引引、视图、包包、存储过程程以及与用户户、权限、角角色、审计和和约束等相关关的信息数据字典试只只读的,用户户不能修改数数据信息和结结构。数据字典主要要有:user视图,all视图,,dba视图图,v$视图图,GV$视视图。详见P32表2-2。2.4Oracle数据库的应应用结构主要的应用结结构有:多磁盘结构磁盘映像系统统客户/服务器器系统多线程服务器器系统并行数据库系系统分布式数据库库系统OracleWebServer系统多多磁盘结结构图2.14多磁盘盘结构上的Oracle服务器磁磁盘映像像系统磁盘映像的好好处。磁盘映像可以以作为磁盘失失效时的备份份来使用。可以改进系统统的性能客客户/服服务器系统应用程序运行行在客户端的的工作站上,,Oracle数据库运运行在服务器器上,二者通通过以太网连连接在一起。。为了使客户户和服务器易易于连接,Oracle提供了SQL*Net的高层网络络协议。在客客户/服务器器环境下,所所有客户都安安装了SQL*Net客客户端软件,,服务器则安安装相应的服服务端软件。。SQL*Net提供了了一个程序代代码的公用接接口,而不用用考虑其底层层的实现。基于客户/服服务器的Oracle系系统图2.15基基于于客客户户//服服务务器器的的Oracle系系统统客户户机机与与服服务务器器通通信信必必须须进进行行的的几几步步操操作作服务务器器必必须须配配置置成成通通过过网网络络接接受受通通信信。。服务务器器必必须须识识别别哪哪个个数数据据库库允允许许网网络络登登录录。。服务务器器必必须须运运行行SQL*Net。。客户户机机必必须须配配置置成成通通过过网网络络进进行行通通信信。。客户户机机必必须须有有充充足足的的内内存存和和磁磁盘盘资资源源可可供供使使用用。。客户户机机必必须须已已安安装装有有SQL*Net,,并并指指定定一一个个连连接接字字符符串串。。三层层模模式式的的Oracle系系统统computerserver客户户机机1客户户机机2数据据库库服服务务器器应用用程程序序服服务务器器图2.16三三层层模模式式的的Oracle系系统统三层层配配置置的的优优点点可量量测测性性有利利于于应应用用程程序序的的执执行行易于于分分布布式式处处理理提高高了了性性能能能简简化化对对客客户户机机的的维维护护多多线线程程服服务务器器系系统统多线线程程服服务务器器(MTS)允允许许多多用用户户会会话话共共享享一一组组服服务务器器进进程程,,因因而而减减少少了了支支持持大大量量用用户户所所必必要要的的资资源源开开销销。。同同时时,,多多线线程程服服务务器器的的体体系系结结构构也也允允许许降降低低这这些些服服务务器器会会话话的的全全部部空空闲闲时时间间。。多线线程程服服务务器器的的体体系系结结构构不不同同于于专专用用服服务务器器。。共享享服服务务器器进进程程不不直直接接与与调调度度器器或或服服务务器器进进程程交交互互,,而而是是监监控控请请求求队队列列。。多线线程程服服务务器器的的下下列列参参数数进进行行设设置置mts_dispatchersmts_serversmts_max_servers可以以通通过过在在SQL*Plus中中查查询询动动态态视视图图V$SESSION来来确确定定当当前前连连接接到到启启动动数数据据库库的的类类型型,,若若结结果果是是DEDICATED,,则则目目前前是是专专用用服服务务器器配配置置;;若若结结果果是是SHARED,,则则目目前前是是多多线线程程服服务务器器。。查询询命命令令为为::{SELECTserverFROMV$SESSIONWHEREaudsid=USERENV('SESSIONID');}并并行行数数据据库库系系统统配置置针针对对一一个个Oracle实实例例访访问问的的数数据据库库针对对两两个个或或两两个个以以上上数数据据库库实实例例(服服务务器器)访访问问同同一一个个数数据据库库----Oracle并并行行服服务务器器(oracleparallelserver,,OPS)3个独独立的的Oracle实例例共享享同一一数据据库文文件图2.18Oracle并并行服服务器器并行服服务器器的好好处可以增增加数数据库库资源源的数数量或或净值值数量量允许数数据库库为更更多的的用户户处理理更多多的工工作提供了了一种种对灾灾难进进行恢恢复的的手段段可以根根据执执行的的进程程的类类型对对用户户进行行分组组,并并且大大量占占用CPU的用用户可可以留留在与与常规规联机机处理理事务务相分分离的的一个个主机机上设计使使用并并行数数据库库时需需要注注意的的问题题可以使使用不不同的的初始始化参参数配配置在在并行行服务务器数数据库库上运运行的的各种种实例例。用户可可以把把系统统设计计为使使用具具有一一个或或多个个富余余实例例的并并行服服务器器,以以便在在主实实例不不可获获取时时仍能能支持持自己己的所所有用用户。。如果硬硬件可可以支支持足足够的的节点点,可可以在在相同同的数数据库库上使使用并并行服服务器器的伸伸缩特特性及及故障障恢复复能力力。设计使使用并并行数数据库库时需需要注注意的的问题题在设计计多实实例数数据库库时,,在伸伸缩特特性及及故障障恢复复能力力这两两个功功能之之间进进行明明确的的区分分是非非常重重要的的。需要做做好准准备修修改单单实例例数据据库使使用的的初始始化参参数文文件中中的参参数,,以使使并行行服务务器使使用的的多个个实例例可以以成功功地相相互作作用。。在并行行方式式下启启动一一个实实例的的两种种方法法需要将将初始始化文文件中中的parallelserver设为true。通过过在SQL*Plus的STARTUP命令中中包括括PARALLEL或SHARED关键字字。在数据据库管管理器器总控控台的的实例例管理理屏上上使用用SHARED单选按按钮。。分分布布式数数据库库系统统分布式式数据据库系系统是是作为为一个个单独独的数数据库库但位位于不不同场场所的的系统统。这这些场场所可可以在在任何何地方方,可可以在在紧邻邻的办办公室室,也也可以以在地地球的的另一一端。。在一一个由由不同同节点点连接接起来来的网网络环环境中中,分分布式式数据据库担担当一一个单单独的的系统统。在在一个个分布布式环环境中中,不不同服服务器器(主主机)上的的数据据库彼彼此共共享数数据。。每个个服务务器既既能在在物理理上分分离,,又可可以保保持彼彼此间间的逻逻辑关关系。。分布式式数据据库系系统图2.19分分布式式数据据库系系统分布式式事务务会的的好处处其他服服务器器上的的数据据库可可以被被更新新,并并且这这些事事务可可以与与其他他事务务组成成一个个逻辑辑单元元数据库库对2PC的使使用接收的的数据据库的的3种种响应应方式式准备好好———已准准备好好进行行更新新只读———没没有准准备的的必要要退出———子子处理理不能能执行行更新新2.4.7OracleWebserver系统统随着网网络技技术的的迅猛猛发展展,数数据库库技术术也面面临着着一场场深刻刻的变变革OracleWebServer相当当于一一个简简单请请求传传送者者的角角色OracleWebServer支持持用内内建的的过程程创建建HTML文档档OracleWebServer的基基本组组成及及功能能Web监听听器在Oracle主机机上的的HTTP引擎擎,它它接受受并管管理服服务请请求,,它可可以监监听多多个远远程客客户的的服务务请求求并把把这些些请求求交给给Web请请求代代理器器Web

温馨提示

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

评论

0/150

提交评论