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

下载本文档

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

文档简介

专题二Oracle的体系结构(重点),1.体系结构概述2.逻辑存储结构3.物理存储结构4.实例的内存结构5.实例的进程结构6.数据字典,1.体系结构概述,完整的Oracle数据库系统通常由两个部分组成:实例(INSTANCE)+数据库(DATABASE)数据库是由一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)。实例是由一组Oracle后台进程/线程以及在服务器分配的共享内存区。数据库和实例之间的关系:数据库可以由多个实例装载和打开实例可以在任何时间装载和打开一个数据库一个实例在其生存期最多只能装载和打开一个数据库,1.体系结构概述,在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台进程),然后由这个实例来访问和控制磁盘中的数据文件。,Oracle实例和数据库,2.逻辑存储结构,逻辑存储单元从小到大依次为:数据块(DataBlocks)盘区(Extent)段(Segments)表空间(TableSpaces),数据库的逻辑存储组成,2.逻辑存储结构,2.1数据块(DataBlocks)数据块是Oracle用来管理存储空间的最小单元,也是执行数据库输入输出操作时的最小单位。数据块的组成:块头部、表目录、行目录、空闲空间、行空间。,SQLselectname,valuefromV$parameterwherename=db_block_size;NAMEVALUE-db_block_size8192,2.逻辑存储结构,2.2盘区盘区是Oracle存储分配的最小单位。盘区是由一系列物理上连续存放的数据块所构成的Oracle存储结构,由一个或多个数据块组成一个盘区,而一个或多个盘区组成一个段。当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。,2.逻辑存储结构,2.3段段是由一系列盘区组成,它也不再是存储空间的分配单位,而是一个独立的逻辑存储结构。对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将为它创建一个段。在Oracle中,不同类型的数据库对象拥有不同类型的段。根据段中存放的数据库对象类型,将段分为几种类型:数据段、索引段、临时段、回退段和LOB段。,2.逻辑存储结构,2.4表空间表空间是在Oracle中可以使用的最大的逻辑存储结构,在数据库中建立的所有内容都被存储在表空间中。一个表空间由一个或多个数据文件组成,一个数据文件只可以属于一个表空间,这是逻辑与物理的统一。存储空间在物理上表现为数据文件,在逻辑上表现为表空间。表空间的大小等于构成该表空间的所有数据文件的大小之和。数据库的大小等于其中所有表空间的大小之和。,2.逻辑存储结构,2.4表空间在创建数据库时,Oracle会自动创建一些默认的表空间,其中除了用于存储用户数据的普通表空间外,还有SYSTEM表空间、撤销表空间、临时表空间。(1).SYSTEM表空间(SYSAUX表空间加以辅助),用于存储:数据字典、内部系统表基表PL/SQL程序的源代码和解析代码数据库对象的定义,2.逻辑存储结构,2.4表空间(2).撤销表空间,专门用来在自动撤销管理方式下存储撤销信息,即回退信息。(3).临时表空间。在实例运行过程中,Oracle使用一些临时空间来保存SQL语句执行过程中所产生的临时数据。,2.逻辑存储结构,3.物理存储结构,物理存储结构并不是独立存在的,它与数据库逻辑存储结构之间有着不可分割的联系。从整体上看,Oracle的数据在逻辑上存储在表空间中,而物理上存储在表空间所对应的数据文件中。,物理存储结构与逻辑存储结构之间的关系,3.物理存储结构,3.1数据文件数据库物理存储结构主要包括3类物理文件:数据文件(datafile)(*.dbf)控制文件(controlfile)(*.ctl)重做日志文件(redologfile)(*.log)及一些参数文件,查看数据库文件命令:SQLselectnamefromv$datafile;,3.物理存储结构,数据文件大致分为以下几类:系统数据文件(SYSTEM01.DBF、SYSTEMAUX01.DBF)存放系统表和数据字典。撤销段文件(UNDOTBS01.DBF):存放撤销段数据文件,在数据修改中存储修改之前的记录。用户数据文件(USER01.DBF、EXAMPLE01.DBF):存放用户数据。,注意:临时表空间所对应的临时数据文件是一类比较特殊的数据文件。临时文件的信息只能通过数据字典视图DBA_TEMP_FILE和动态性能视图V$TEMPFILE来查看;不能像普通数据文件一样通过DBA_DATA_FILES和V$DATAFILE视图来查看。,3.物理存储结构,3.2控制文件数据库控制文件是一个很小的二进制文件,在其中包含了关于数据库物理结构的重要信息。通过在加载数据库时读取控制文件,Oracle才能找到自己所需的操作系统文件(数据文件、重做日志文件等)。控制文件对于数据库的成功启动和正常运行是至关重要的。在加载数据库时,实例必须首先找到数据库的控制文件。如果控制文件正常,实例才能加载并打开数据库。但是如果控制文件中记录了错误的信息,或者实例无法找到一个可用的控制文件,数据库将无法加载,当然也法打开。,3.物理存储结构,3.2控制文件在数据库运行过程中,Oracle会不断更新控制文件的内容,因此控制文件必须在整个数据库打开期间保持可用状态。如果由于某种原因导致控制文件不可用,则数据库将崩溃。每个数据库必须至少拥有一个控制文件,一个数据库可以同时拥有多个控制文件,但是一个控制文件只能属于一个数据库。控制文件中的主要信息包括:数据库的名字、检查点信息、数据库创建的时间戳、所有的数据文件、重做日志文件、归档日志文件信息和备份信息等。,3.物理存储结构,3.2控制文件控制文件信息可以从V$controfile中查询获得,3.物理存储结构,3.3重做日志文件重做日志文件是记录数据库中所有修改信息的文件重做日志文件记录两类数据:1.修改前的数据2.修改后的数据当满足一定条件时先将修改操作所产生的重做记录写入重做日志文件中,然后才将内存中的修改结果成批的写入数据文件,最后再提交事务。重做日志文件是由重做记录组成的,重做记录是由修改向量组成的。当用户执行一条update语句对某一个表中的记录进行修改时,会生成一条记录。这条记录用多个向量记录下了被这条语句修改过的各个数据块中的信息。,3.物理存储结构,3.3重做日志文件一旦数据库崩溃,Oracle服务器就使用重做日志文件中的记录来进行数据库的恢复工作。引入重做日志文件的目的就是数据库的恢复。Oracle使用了多组(group)重做日志。重做日志写进程(LGWR)在任意时刻只能写一组重做日志组,LGWR后台进程正在写的重做日志组称作当前(current)重做日志组。LGWR把完全相同的信息从重做日志缓冲区(redologbuffer)中复制到该组的每个重做日志文件中。它是以循环的方式写重做日志组的。当LGWR写满了一组重做日志时,它就开始写下一组重做日志。这称为日志切换。当写满了最后一组时,LGWR开始写第一组重做日志。,3.物理存储结构,3.3重做日志文件Oracle用以上这种循环的操作方式的确解决了为了提高数据库系统的效率而产生日志文件不够大的难题。但这种循环操作的方式本身又带来了另一个严重的问题。那就是当LGWR循环写了一圈之后再写重做日志文件组中的文件时,这些重做日志中的信息就要被覆盖掉,从这时起Oracle数据库就无法保证数据库崩溃后能恢复全部提交的数据。为了解决这一问题,Oracle引入了归档(archive)日志的结构。,3.物理存储结构,3.4其他文件除了上述三种类型的文件外,Oracle还提供了其他一些类型的文件,如:归档日志文件参数文件密码文件预警日志文件后台或用户跟踪文件P27-30,4.实例的内存结构,内存结构是Oracle数据库体系结构中最为重要的部分之一,内存也是影响数据库性能的主要因素。在Oracle数据库中,服务器内存的大小将直接影响数据库的运行速度,特别是多个用户连接数据库时,服务器必须有足够的内存支持,否则有的用户可能连接不到服务器,或查询速度明显下降。在Oracle系统的体系结构中,有许多不同的内存区域。不同的内存区域用于不同的目的。Oracle的服务器进程和许多后台进程负责在内存区域中写入、更新、读取和删除数据。,4.实例的内存结构,Oracle的2个主要的内存结构系统全局区(SystemGlobalArea,SGA)程序全局区(ProgramGlobalArea,PGA),4.实例的内存结构,4.1系统全局区SGA位于系统的共享内存段中,SGA区中的数据可以被所有的服务和后台进程共享。如果多个用户连接到同一个数据库实例,则实例的SGA区中的数据可被多个用户共享。在数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA被回收。SGA区中的主要包含如下内存结构:数据缓存区、共享池、重做日志缓存、Java池和大型池等结构。,4.实例的内存结构,4.1系统全局区SGA,4.实例的内存结构,4.2程序全局区PGA程序全局区(PGA)是保存特定服务进程的数据和控制信息的内存结构,这个内存结构是非共享的,只有服务进程本身才能够访问它自己的PGA区。每个服务进程都有它自己的PGA区。包含如下结构:私有SQL工作区会话内存区,5.实例的进程结构,进程是操作系统中一个独立的可以调度的活动,用于完成指定的任务。进程与程序的区别在于前者是一个动态概念,后者是一个静态实体。程序仅仅是指令的有序集合,而进程则强调执行过程。进程可以动态地创建,当完成任务后即会消亡。,5.实例的进程结构,Oracle的进程包括三类:用户进程服务器进程后台进程,5.实例的进程结构,服务器进程、用户进程和后台进程之间的关系,5.实例的进程结构,5.1用户进程用户执行一个Oracle应用程序或启动一个Oracle工具(如SQL*Plus)时,创建一个用户进程来执行相应的用户任务。,相关概念:(1)连接:是一个用户进程与数据库实例之间的一条通信路径,这条通信路径通过操作系统平台中的进程间通信机制或网络连接来实现。(2)会话:是一个用户到数据库的指定连接。例如当一个用户启动SQL*Plus,并输入正确的用户名和密码连接到一个数据库库后,就为该用户创建了一个会话。会话在用户连接到实例的过程中始终存在,直到用户断开连接或终止应用程序为止。,会话是通过连接来建立的;同一个用户可以通过建立多个连接来创建到Oracle数据库的多个会话。,5.实例的进程结构,5.2服务器进程服务器进程就是代表客户会话完成工作的进程。负责在用户进程和Oracle实例之间调度请求和响应。应用向数据库发送的SQL语句就是由这些进程接收并执行。当用户进程提交查询之后,服务器进程则负责执行该查询语句,即将数据从磁盘读入缓存,获取查询结果,然后向用户进程返回结果。即使响应出现了某些错误,服务器进程也会把错误信息发回用户进程,以便用户进程进行合适的处理。在Oracle数据库中可以同时存在两种类型的服务器进程:专用服务器进程:只能为一个用户进程提供服务。共享服务进程:可以为多个用户进程提供服务。,5.实例的进程结构,5.3后台进程Oracle实例包括两部分:SGA和一组后台进程。在任意一个刻,Oracle数据库可以处理多个并发用户请求,进行复杂的数据操作,与此同时还要维护数据库系统使其始终具有良好的性能。为了完成这些任务,Oracle具有一组后台进程保证数据库运行所需的实际维护任务。,5.实例的进程结构,中心后台进程,5.实例的进程结构,Oracle的实例所必需的后台进程:DBWR(数据写进程)LGWR(日志写进程)CKPT(检查点进程)SMON(系统监视进程)PMON(进程监视进程),此外,常用的其他进程:ARCn(归档进程)RECO(恢复进程)Dnnn(调度进程),数据字典是由一系列对于用户而言是只读的基础表和视图组成,它保存了关于数据库本身以及其中存储的所有对象的基本信息。对数据字典的管理和维护由Oracle系统负责,任何数据库用户都无法对数据字典中的内容进行修改,但是用户可以查看数据字典中的内容。数据字典中的信息是通过表和视图的形式组织起来的,数据字典和视图都保存在SYSTEM表空间中。视图好比一本关于当前Oracle数据库的参考手册,可以通过SELECT语句查询。,6.数据字典,Oracle中的数据字典有静态和动态之分。静态数据字典:在用户访问数据字典时不会发生改变,主要是由表和视图组成,数据字典中的表是不能直接被访问的,但是可以访问数据字典中的视图。静态数据字典中的视图分为三类,它们分别由三个前缀够成:user_*、all_*、dba_*。动态数据字典:依赖数据库运行的性能的,反映数据库运行的一些内在信息,会不断进行更新。,6.数据字典,静态数据字典3类视图:user_*该视图存储了关于当前用户所拥有的对象的信息。(即

温馨提示

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

评论

0/150

提交评论