当前位置:首页 > IT计算机/网络 > 数据库 > Oracle9i体系结构
Oracle9i体系结构作者:DanielLiuPDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l整个Oracle数据库服务器主要由两个部分组成:数据库和实例。l数据库:-是Oracle用于保存数据的一系列物理结构和逻辑结构。l实例:-是由服务器在运行过程中的内存结构和一系列进程组成的。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构lOracle数据库服务器实例数据库Oracle进程SGA区物理存储逻辑存储后台进程服务进程数据文件控制文件日志文件初始化文件密码文件归档文件表空间段区块PDF文件使用pdfFactory试用版本创建ÿÿwww.fineprint.com.cnOracle9i体系结构lOracle数据库的物理结构l数据库从文件角度看,是由数据文件,控制文件,重做日志文件,归档日志文件,密码文件,和初始化文件组成的。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l其中:-数据文件:用来存放数据库中的数据,也包括数据库中的一些脚本;-控制文件:记录了数据库的物理结构;-重做日志文件:记录了数据库操作的信息;-归档日志文件:用于保存重做日志文件,因为重做日志文件本身是循环使用的,所以需要通过归档日志文件将日志信息进行保存;-密码文件:用于记录SYSDBA用户的密码信息;-初始化文件:用于系统启动时,使用这些参数进行初始化。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l1.数据文件l数据库中的数据在物理上都保存在操作系统的文件中,这些操作系统的文件就是数据文件。在Linux系统下主要物理文件存放在:-$ORACLE_HOME\Ora9i\oradata目录下。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l一个表空间在物理上对应于一个或多个数据文件,而一个数据文件只能属于一个表空间。l一个数据库的对象保存在一个表空间中,而该对象可以存放在一个表空间对应的数据文件中,也可以存放在表空间对应的多个数据文件中。当表空间的存储空间不足时,可以通过增加数据文件大小或添加新数据文件来扩充存储空间。l数据文件(DataFile)用于存储数据库数据,包括系统数据(数据字典)、用户数据(表、索引、簇)、UNDO数据等PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l注:-少量的大数据文件要优于大量小的数据文件。建议数据文件的尺寸不要超过500MB.PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l2.控制文件l每个数据库都必须包含一个控制文件。l控制文件是一个二进制格式的文件,其中记录了数据库名称,相关的数据文件和联机重做日志文件的名称和位置,数据库创建的时标,当前日志的序号,以及检验点信息等内容。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l在加载数据库阶段,Oracle实例首先会读取控制文件中的内容,如果控制文件无效,则系统根本无法加载数据库。l因为控制文件的重要性,用户在建立控制文件时一般会将文件在不同的磁盘上建立一些副本。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l3.日志文件l在oracle中,事务对数据库所做的更改会以重做日志记录的形式存放在重做日志缓存中,在提交事务时,由LGWR进程将缓存中与该事务有关的重做记录全部写入重做日志文件。l除了提交事务的时候,在其他特定的条件下,LGWR进程也会将重做记录写入到重做日志文件中。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l由此可以看出重做日志文件的重要性,因为数据库的修改发生后,首先将这些记录存放在日志文件中,而不是数据文件中。l如果数据库启动时数据文件与日志文件不一致,则可以通过重做将数据还原到一致的状态。l因为重做日志的重要性,所以一般可以将相同的日志文件建立一个文件组,将同一个文件组中的文件放在不同的磁盘上建立副本。l重做日志将循环使用。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构lOracle9i的逻辑结构lOracle9i的逻辑结构是按照层次进行管理的,从小到大分别为:块,区,段和表空间。其中小的逻辑结构包含在大的逻辑结构中。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l1.块l块是Oracle进行逻辑管理的最基本的单元,数据库进行读写都是以块为单位进行的。在数据库创建时设置的块就不再改变了。l数据块尺寸是由初始化参数db_block_size确定的,其取值一般为2KB,4KB,8KB,16KB,32KB并且在建立了数据库之后该初始化参数的值不能改变。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l2.区l区是一系列由连续的块组成的空间。l每一次系统分配和回收空间都是以区为单位进行的。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l3.段l用户在数据库中创建一个具有实际存储结构的对象时,系统都会为该对象分配一个段,这个对象的所有数据都保存在这个段中。l每个段可能由很多的区组成,如果存储空间不够可以分配新的区以满足需要。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l段基本可以分为以下四种l数据段(DataSegment)l用于存放表的数据。l索引段(IndexSegment)l用于存放索引的数据,索引段与索引也是一一对应关系,并且名称相同。l回滚段(RollbackSegment)l用于存放事务所修改数据的旧值。l临时段(TemporarySegment)l用于存放数据库操作所产生的临时数据。PDF文件使用pdfFactory试用版本创建ÀÝ3Ýwww.fineprint.com.cnOracle9i体系结构l4.表空间l表空间是最高一级的逻辑存储结构。l一个段属于某个表空间,则它和它包含的区都将存放在这个表空间中。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构lOracle9i安装完毕后自动建立9个默认的表空间:l名称主要作用lCWMLITE用于联机分析处理(OLAP)lDRSYS用于存放与工作空间设置有关的信息lEXAMPLE实例表空间,存放实例信息lINDEX索引表空间,存放数据库索引信息lSYSTEM系统表空间,存放表空间名称、所含数据文件等管理信息lTEMP临时表空间,存储临时表lTOOLS工具表空间,存放数据库工具软件所需的数据库对象lUNDOTBS回滚表空间,存放数据库恢复信息lUSERS用户表空间,存放用户私有信息PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构lOracle9i系统的存储结构l一、Oracle实例l实例:是一组内存结构和后台进程的集合。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构lOracle实例启动后,将在内存中创建一个内存结构。l内存结构中存储着数据库运行过程中所要处理的一些数据。它主要包括几方面的数据:-缓存的数据,-解析后的SQL或PL/SQL程序代码,-用户的会话信息,-后台进程所需的共享信息和数据。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l实例的内存结构可以分成两部分:lSGA(系统全局区)和PGA(程序全局区)PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构lSGA区lSGA区中保存着Oracle系统与所有数据库用户的共享信息,包括数据管理,重做日志管理,SQL程序分析时必需的一些共享信息。lSGA区中的内存结构包括:-数据库缓存,重做日志缓存,共享池,Java池和大型池。-其中共享池又包括库缓存,数据字典缓存,其他控制结构。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l1.数据库缓存l数据库缓存是SGA区中的一部分,它保存了最近从数据文件中读取的数据块。l如果用户再次查询这些数据块中的数据,就可以直接从缓存中找到返回给用户,从而提高了速度。l另外,当用户对数据进行修改时,首先对缓存中的数据进行修改,等待某一个时机,通过DBWn进程写回数据文件。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l综上所述:-数据库缓冲区中的缓存块可以分为3种类型:l脏数据,空闲数据块和命中缓存块。-其中:l脏数据:是指内容与相应数据块不一致的缓冲区;l空闲数据块:是指内容与数据块一致或不包含数据的缓冲区;l命中缓冲区:是指服务器进程正在存取的缓冲区。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l换个角度,数据库缓存又被分为3个独立的缓存池:-KEEP缓存池,RECYCLE缓存池和DEFAULT缓存池。l其中:-KEEP缓存池始终保留在数据库缓存中,不会被换出。-RECYCLE缓存池一旦使用完毕立即被换出。-DEFAULT缓存池是一些未指定缓存池的对象的存放处。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l2.重做日志缓存l重做日志缓存是用来缓存对数据库进行修改以后的重做日志记录。l这些缓存的记录将在某些特定条件下被后台进程LGWR写入重做日志文件。l重做日志缓存也像重做日志文件一样是循环使用的。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l3.共享池l共享池中主要包括库缓存和数据字典缓存。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l库缓存:l用于缓存已经解析过SQL代码的一些信息。这样如果有会话需要再次执行这些代码就可以直接使用,不必重新解析。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l数据字典缓存l用于缓存一些数据字典中的信息,因为这些信息是系统操作经常会用到的数据,所以需要有这个缓存对其保存,提高系统的访问效率。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOracle9i体系结构l大缓冲池(LargePool)和JAVA(JavaPool)池是SGA可选的内存结构:-大缓冲池用于为大内存操作提供相对独立的内存空间。lJAVA池用于存放JAVA代码,其尺寸由初始化参数JAVA_POOL_SIZE定义。PDF文件使用pdfFactory试用版本创建ÀÝÝwww.fineprint.com.cnOra
本文标题:Oracle9i体系结构
链接地址:https://www.777doc.com/doc-9619 .html