Oracle9i数据库的体系结构.ppt_第1页
Oracle9i数据库的体系结构.ppt_第2页
Oracle9i数据库的体系结构.ppt_第3页
Oracle9i数据库的体系结构.ppt_第4页
Oracle9i数据库的体系结构.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

大型数据库概论IntroductionofLargeDatabase第4章Oracle9i数据库的体系结构,学习目标1、掌握Oracle9i数据库的逻辑结构。2、掌握Oracle9i数据库的物理结构。3、掌握Oracle9i实例。,第4章Oracle9i数据库的体系结构Oracle9i数据库的体系结构体现为数据库的逻辑结构、物理结构和实例。逻辑结构包括表空间、段、区和数据块,物理结构包括初始化参数文件、数据文件、控制文件、重做日志文件等,而实例则是一组可以操作数据库的操作系统进程和内存区域。4.1Oracle9i数据库的逻辑结构:包括Oracle9i数据库的表空间、段、区和数据块。4.1.1表空间(Tablespace)1表空间的概念一个Oracle9i数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间。,从物理结构上看,一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。任何数据库对象(如表、索引等)都被存储在一个表空间中,但可以存储在多个属于此表空间的数据文件中。从逻辑结构上看,一个表空间由一个或多个段组成,一个段可以分散在不同的数据文件中,但不能分散在不同的表空间中。段中的空间是以区为单位分配的,一个段可以包含一个或多个区,区必须在一个数据文件中存在。区是由一系列连续的数据块组成,数据块可由一个或多个操作系统块组成,它是Oracle服务器分配、读写操作的最小空间单位。,2使用表空间的好处n将数据字典与用户数据分开,避免因字典对象和用户对象保存在同一数据文件中而产生I/O冲突。n将回滚数据与用户数据分开,避免由于硬盘损坏而导致永久性的数据丢失。n将表空间的数据文件分散在不同的硬盘上,可以平均分布物理I/O操作。n将某个表空间设置为脱机状态或联机状态,可以对数据库的一部分进行备份和恢复。n将某个表空间设置为只读状态,可以将数据库的一部分设置为只读。n为某种特殊用途专门设置一个表空间(如临时表空间),可以优化表空间的使用效率。,3表空间的分类系统表空间(SystemTablespace)系统表空间是每个Oracle9i数据库所必须的,在创建数据库时自动创建且总是联机的,该表空间包含的数据文件称为系统数据文件。在系统表空间中存放的是诸如系统表空间名称、表空间所含数据文件等管理数据库自身所需的信息。临时表空间(TemporaryTablespace)临时表空间用于存放连接查询、索引、排序等操作时产生的临时数据。在一些访问繁忙的数据库中,可能存在多个临时表空间,例如Temp01、Temp02、Temp03等。,工具表空间(ToolsTablespace)工具表空间用于保存数据库工具软件所需的数据库对象,大多数DBA都将支持工具运行所需的表放在该表空间中。用户表空间(UserTablespace)用户表空间用于存放用户的私有信息,一般是由用户建立,是DBA允许用户存放数据库对象的地方。回滚表空间(RollbackTablespace)回滚表空间用于存放数据库操作的恢复信息,简称RBS。,4表空间的状态表空间可以有联机和脱机两种状态。联机表空间中的数据对于应用程序和数据库来说是可用的。如果试图使系统表空间处于脱机状态,Oracle9i会返回一个错误。脱机表空间中的数据对于应用程序和数据库来说是不可用的,不允许用户访问。4.1.2段(Segment)1段的概念段是由一个或多个区组成的逻辑存储单元,段中所有区大小的总和即是此段的大小。每个数据库对象可以一个段来存储数据。一个段只能从属于一个表空间,但它可以覆盖多个数据文件。,2段的分类:Oracle9i数据库常使用五种段:数据段、索引段、临时段、LOB段和回滚段。数据段:如果一个数据库有很多的用户并发操作,那么该数据库中表的可伸缩性、可用性是非常重要的。索引段:索引段中索引树存储了关键列的值,目的是可以根据指定的关键列值查找表中行的位置。若某个表有3个索引,则该表使用了3个不同的索引段。临时段:当执行CREATEINDEX、SELECTDISTINCT、SELECTGROUPBY等命令时,Oracle服务器就会在内存中执行排序操作。当排序需要的空间超过了内存中可用空间时,Oracle服务器将自动从用户默认的临时空间中指派段进行排序,被指派的段称为临时段,它用来存储排序操作的中间结果。一旦操作完毕,临时段的区间便退还给系统。,LOB段:若表中拥有CLOB、BLOB或NCLOB等大型对象数据类型的列时,可以使用LOB段存储相应的LOB值。回滚段:事务是一个单元的操作,这些操作要么全做,要么全不做,事务具有原子性、一致性、隔离性和持久性等特点。4.1.3区(Extent):也称为区间,是数据库存储空间分配的一个逻辑单位,是表空间内连续分配的相邻的数据块。4.1.4数据块(Block):是数据库中最小的、最基本的存储单元。Oracle数据块和操作系统块是不同的,操作系统块是操作系统能从磁盘读写的最小单元,Oracle数据块是Oracle能从磁盘读写的最小单元,为了保证存取的速度,Oracle数据块是操作系统块的整数倍。,4.2Oracle9i数据库的物理结构从物理结构角度来讲,Oracle9i数据库指的是操作系统文件的集合,包括初始化参数文件、数据文件、控制文件和重做日志文件等,这些文件用来存储和管理相关数据。4.2.1初始化参数文件init.ora初始化参数文件用于初始化创建的实例,是一个包含配置例程数据的ASCII文件。一个数据库包括一个初始化参数文件,名为init.ora,默认存放在E:oracleadmindb_namepfile下(本机Oracle9i的安装路径为E:oracle)。1初始化参数文件的主要内容n定制数据库使用的内存大小。n定制数据库实例的回滚段。n定制数据库使用的控制文件。n定制数据库使用的联机日志文件。,2初始化参数文件的主要参数初始化参数文件中的参数通常可分为导出参数、操作系统参数和变量参数等三种类型:n导出参数:其值由其它参数计算而得,一般不得更改。如参数SESSIONS的默认值由PROCESSES计算而得。n操作系统参数:这类参数依赖于主机的操作系统。如缓冲区的大小参数DB_BLOCK_SIZE的默认值由操作系统决定。n变量参数:有些变量参数不影响系统的性能,如参数OPEN_CURSORS=300时,表示当用户进程打开第301个游标时出错;而有些变量参数会影响系统的性能,如增加参数DB_BLOCK_SIZE的值,将会改进系统的性能。,初始化参数文件中的主要参数意义如下:ninstance_name:指定例程名,本例为test。ndb_name:指定数据库名,本例为test。ncontrol_files:指定一个或多个控制文件名,默认为3,最大8。nopen_cursors:指定游标的最大个数,本例为300。nbackground_dump_dest:指定实例进程LGWR、DBWR写入跟踪文件的路径名。nprocesses:指定可同时连接到一个Oracle服务器上的操作系统用户进程的最大数量,本例为150。ndb_block_size:指定一个Oracle9i数据库块的大小,本例8192。,3查看初始化参数文件查看初始化参数文件有以下三种方法:使用记事本等ASCII文本编辑工具,打开初始化参数文件如图4.2所示。,图4.2使用记事体查看初始化参数文件,使用PL/SQL命令,以下脚本运行结果如图4.3所示。showparametersdb_block_size;,图4.3使用PL/SQL命令查看初始化参数文件,使用企业管理器。选择“例程”“配置”“一般信息”“所有初始化参数”,结果如图4.4所示。,图4.4使用企业管理器查看初始化参数文件,4.2.2数据文件数据文件是存储数据库所有数据的文件,是数据库最基本、最主要的文件,逻辑数据库结构(如表、索引等)的数据物理地存储在数据库的数据文件中。默认情况下数据文件以用户名命名,其后缀名为DBF。例如,若用户名称是SYSTEM,则该数据文件的名称是SYSTEM.DBF;若有多个数据文件,则数据文件的名称是SYSTEM01.DBF、SYSTEM02.DBF、SYSTEM03.DBF等。数据文件包括下列类型的数据:n表数据。n索引数据。n数据字典定义。n回滚事务所需的信息。n存储过程、函数和数据包的代码。n用来排序的临时数据。,4.2.3控制文件:记录了数据库名和建立日期、所有数据文件和日志文件的名字和位置等控制信息,用于Oracle9i数据库实例启动时标识数据库和日志文件。一个数据库至少包括两个控制文件,控制文件只能由Oracle9i服务器操作,任何用户(包括DBA)都不能直接编辑控制文件。若某数据库的所有控制文件都损坏了,则该数据库就不能使用。控制文件的命名是CONTROL01.CTL、CONTROL02.CTL、CONTROL03.CTL等。控制文件中包括的信息有:n数据库名。n表空间信息。n所有数据文件的名字和位置。n所有日志文件的名字和位置。n当前日志序列号。n检查点信息。n关于日志和归档的当前状态信息。,4.2.4重做日志文件重做日志文件用于收集数据库日志,记录了所有事务对数据所作的修改,出现故障时如果未能将修改数据永久地写入数据文件,则可利用日志得到该修改,所以系统不会丢失已有操作成果。一组相同的联机重做日志文件集合称为联机重做日志文件组。一个数据库至少包括两个联机重做日志文件组。重做日志文件的命名是REDO01、REDO02、REDO03等。重做日志文件通常采用循环记录的方式进行运作,其大小、个数和存储位置对数据库性能,尤其是对数据库的备份和恢复具有非常重要的影响。,4.3Oracle9i实例4.3.1实例的概念:由一组操作系统进程和内存区域组成,图4.5是Oracle9i实例的组成示意图。一个数据库可以被多个实例访问,每个实例都用SID(SystemIdentifier,系统标识符)进行标识。决定实例的参数存储在初始化参数文件中,启动实例时需要读取初始化参数文件,运行实例时可以由DBA修改这些参数,但所作的修改只在下一次启动时才生效。4.3.2实例的内存结构实例的内存结构是组成实例的进程进行自身对话或与其它进程进行对话的内存区域。Oracle使用系统全局区SGA(SystemGlobalArea)和程序全局区PGA(ProgramGloabalArea)两种内存结构。1系统全局区(SGA):启动一个Oracle9i实例时,系统便分配一个SGA。SGA能被该实例的所有进程共享,是Oracle9i实例的主要部分。在数据库非安装阶段,创建实例时分配SGA,关闭实例时释放SGA。,图4.5Oracle9i实例的组成示意图,SGA主要由共享池、数据库高速缓存区、重做日志缓冲区、Java程序缓冲区和大块内存池等组成。共享池(SharedPool)共享池是SGA中最关键的一块内存区域,用来缓存PL/SQL程序单元、SQL语句的解析版本和执行计划以及数据字典信息等。共享池包括库缓存区和数据字典缓存区,前者存储与PL/SQL执行和解析有关的信息,后者存储用于分析SQL语句的数据字典信息。共享池的大小取决于初始化参数文件中的shared_pool_size参数,以字节为单位。太小的共享池会扼杀性能使系统停止,太大的共享池会消耗大量的CPU时间来管理这个共享池,为此共享池的大小应适中。,数据库高速缓存区(DatabaseBufferCache)数据库高速缓存区是用来存储频繁访问数据的区域,由内存中若干缓存器构成,每个缓存器的大小和数据库块相匹配。高速缓存区中缓存器的数量可由初始化参数文件中的db_block_buffers参数设定,数据库高速缓存区又可分为默认缓冲器池(Defaultpool)、保持缓冲器池(Keeppool)和再生缓冲器池(Recyclepool)。一般地,对长期保存的频繁访问的模式对象使用保持缓冲器池,对要尽快从内存中排除的模式对象使用再生缓冲器池,频繁扫描的大表经常存入再生缓冲器池。保持和再生缓冲器池的大小由设置初始化参数文件中的buffer_pool_keep和buffer_pool_recycle参数进行控制,而默认缓冲池的大小为高速缓存区的大小减去保持缓冲器池和再生缓冲器池后剩余的部分。,重做日志缓冲区(RedoLogBuffer)事务对数据库的修改在记录到重做日志文件之前必须首先放到重做日志缓冲区中。重做日志缓冲区是专为此开辟的一块内存区域,其中的内容将被日志书写进程LGWR随时写入重做日志文件。重做日志缓存区是一个循环缓存区,使用时从顶端向底端写入数据,然后再返回到缓冲区的起始点循环写入。重做日志缓冲区的大小(以字节为单位)由初始化参数文件中的log_buffer参数决定。Java程序缓冲区(JavaPool)Oracle8i以后的版本在内核中加入了对Java的支持,Java程序缓冲区就是为Java程序保留的,如果不用Java程序就没有必要改变该缓冲区的默认大小。大块内存池(LargePool):得名不是因为大,而是因为它用来分配比共享池更大的内存。在进行语句并行查询和备份时,往往要使用到大块内存池。,2程序全局区(PGA)程序全局区是单个Oracle进程使用的内存区域,它含有单个进程工作时需要的数据和控制信息,PGA是非共享的,只有进程本身才能够访问它自己的PGA区。4.3.3实例的进程Oracle9i实例的进程用于提高数据库的性能和可靠性,管理数据库的读写、恢复和监视,允许多个用户共同使用并为这些并发用户提供各种服务。Oracle9i实例包括DBWR、LGWR、SMON、PMON、CKPT、ARCH、RECO等进程。1数据库书写进程DBWR数据库书写进程将修改过的数据缓冲区的数据写入对应数据文件,并且维护系统内的空缓冲区。DBWR是一个很底层的工作进程,它批量地把缓冲区的数据写入磁盘。和任何前台用户的进程几乎没有什么关系,也不受它们的控制。DBWR后台进程在如DBWR超时、系统中没有多的空缓冲区用来存放数据和CKPT进程触发DBWR等主要条件下工作。,2日志书写进程LGWR日志书写进程将重做日志缓冲区

温馨提示

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

评论

0/150

提交评论