欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Oracle9i数据库的体系结构.ppt

    • 资源ID:6513380       资源大小:301.99KB        全文页数:28页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Oracle9i数据库的体系结构.ppt

    大型数据库概论Introduction of Large Database第4章 Oracle9i数据库的体系结构,学习目标1、掌握 Oracle9i数据库的逻辑结构。2、掌握Oracle9i数据库的物理结构。3、掌握Oracle9i实例。,第4章 Oracle9i数据库的体系结构 Oracle9i数据库的体系结构体现为数据库的逻辑结构、物理结构和实例。逻辑结构包括表空间、段、区和数据块,物理结构包括初始化参数文件、数据文件、控制文件、重做日志文件等,而实例则是一组可以操作数据库的操作系统进程和内存区域。4.1 Oracle9i数据库的逻辑结构:包括Oracle9i数据库的表空间、段、区和数据块。4.1.1 表空间(Tablespace)1表空间的概念 一个Oracle9i数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间。,从物理结构上看,一个表空间由一个或多个数据文件组成,但一个数据文件只能属于一个表空间。任何数据库对象(如表、索引等)都被存储在一个表空间中,但可以存储在多个属于此表空间的数据文件中。从逻辑结构上看,一个表空间由一个或多个段组成,一个段可以分散在不同的数据文件中,但不能分散在不同的表空间中。段中的空间是以区为单位分配的,一个段可以包含一个或多个区,区必须在一个数据文件中存在。区是由一系列连续的数据块组成,数据块可由一个或多个操作系统块组成,它是Oracle服务器分配、读写操作的最小空间单位。,2使用表空间的好处 n将数据字典与用户数据分开,避免因字典对象和用户对象保存在同一数据文件中而产生I/O冲突。n将回滚数据与用户数据分开,避免由于硬盘损坏而导致永久性的数据丢失。n 将表空间的数据文件分散在不同的硬盘上,可以平均分布物理I/O操作。n 将某个表空间设置为脱机状态或联机状态,可以对数据库的一部分进行备份和恢复。n 将某个表空间设置为只读状态,可以将数据库的一部分设置为只读。n为某种特殊用途专门设置一个表空间(如临时表空间),可以优化表空间的使用效率。,3表空间的分类 系统表空间(System Tablespace)系统表空间是每个Oracle9i数据库所必须的,在创建数据库时自动创建且总是联机的,该表空间包含的数据文件称为系统数据文件。在系统表空间中存放的是诸如系统表空间名称、表空间所含数据文件等管理数据库自身所需的信息。临时表空间(Temporary Tablespace)临时表空间用于存放连接查询、索引、排序等操作时产生的临时数据。在一些访问繁忙的数据库中,可能存在多个临时表空间,例如Temp01、Temp02、Temp03等。,工具表空间(Tools Tablespace)工具表空间用于保存数据库工具软件所需的数据库对象,大多数DBA都将支持工具运行所需的表放在该表空间中。用户表空间(User Tablespace)用户表空间用于存放用户的私有信息,一般是由用户建立,是DBA允许用户存放数据库对象的地方。回滚表空间(Rollback Tablespace)回滚表空间用于存放数据库操作的恢复信息,简称RBS。,4表空间的状态 表空间可以有联机和脱机两种状态。联机表空间中的数据对于应用程序和数据库来说是可用的。如果试图使系统表空间处于脱机状态,Oracle9i会返回一个错误。脱机表空间中的数据对于应用程序和数据库来说是不可用的,不允许用户访问。4.1.2 段(Segment)1段的概念 段是由一个或多个区组成的逻辑存储单元,段中所有区大小的总和即是此段的大小。每个数据库对象可以一个段来存储数据。一个段只能从属于一个表空间,但它可以覆盖多个数据文件。,2段的分类:Oracle9i数据库常使用五种段:数据段、索引段、临时段、LOB段和回滚段。数据段:如果一个数据库有很多的用户并发操作,那么该数据库中表的可伸缩性、可用性是非常重要的。索引段:索引段中索引树存储了关键列的值,目的是可以根据指定的关键列值查找表中行的位置。若某个表有3个索引,则该表使用了3个不同的索引段。临时段:当执行CREATE INDEX、SELECT DISTINCT、SELECT GROUP BY等命令时,Oracle服务器就会在内存中执行排序操作。当排序需要的空间超过了内存中可用空间时,Oracle服务器将自动从用户默认的临时空间中指派段进行排序,被指派的段称为临时段,它用来存储排序操作的中间结果。一旦操作完毕,临时段的区间便退还给系统。,LOB段:若表中拥有CLOB、BLOB或NCLOB等大型对象数据类型的列时,可以使用LOB段存储相应的LOB值。回滚段:事务是一个单元的操作,这些操作要么全做,要么全不做,事务具有原子性、一致性、隔离性和持久性等特点。4.1.3 区(Extent):也称为区间,是数据库存储空间分配的一个逻辑单位,是表空间内连续分配的相邻的数据块。4.1.4 数据块(Block):是数据库中最小的、最基本的存储单元。Oracle数据块和操作系统块是不同的,操作系统块是操作系统能从磁盘读写的最小单元,Oracle数据块是Oracle能从磁盘读写的最小单元,为了保证存取的速度,Oracle数据块是操作系统块的整数倍。,4.2 Oracle9i数据库的物理结构 从物理结构角度来讲,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所示。show parameters db_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.3 Oracle9i实例4.3.1 实例的概念:由一组操作系统进程和内存区域组成,图4.5是Oracle9i实例的组成示意图。一个数据库可以被多个实例访问,每个实例都用SID(System Identifier,系统标识符)进行标识。决定实例的参数存储在初始化参数文件中,启动实例时需要读取初始化参数文件,运行实例时可以由DBA修改这些参数,但所作的修改只在下一次启动时才生效。4.3.2 实例的内存结构 实例的内存结构是组成实例的进程进行自身对话或与其它进程进行对话的内存区域。Oracle使用系统全局区SGA(System Global Area)和程序全局区PGA(Program Gloabal Area)两种内存结构。1系统全局区(SGA):启动一个Oracle9i实例时,系统便分配一个SGA。SGA能被该实例的所有进程共享,是Oracle9i实例的主要部分。在数据库非安装阶段,创建实例时分配SGA,关闭实例时释放SGA。,图4.5 Oracle9i实例的组成示意图,SGA主要由共享池、数据库高速缓存区、重做日志缓冲区、Java程序缓冲区和大块内存池等组成。共享池(Shared Pool)共享池是SGA中最关键的一块内存区域,用来缓存PL/SQL程序单元、SQL语句的解析版本和执行计划以及数据字典信息等。共享池包括库缓存区和数据字典缓存区,前者存储与PL/SQL执行和解析有关的信息,后者存储用于分析SQL语句的数据字典信息。共享池的大小取决于初始化参数文件中的shared_pool_size参数,以字节为单位。太小的共享池会扼杀性能使系统停止,太大的共享池会消耗大量的CPU时间来管理这个共享池,为此共享池的大小应适中。,数据库高速缓存区(Database Buffer Cache)数据库高速缓存区是用来存储频繁访问数据的区域,由内存中若干缓存器构成,每个缓存器的大小和数据库块相匹配。高速缓存区中缓存器的数量可由初始化参数文件中的db_block_buffers参数设定,数据库高速缓存区又可分为默认缓冲器池(Default pool)、保持缓冲器池(Keep pool)和再生缓冲器池(Recycle pool)。一般地,对长期保存的频繁访问的模式对象使用保持缓冲器池,对要尽快从内存中排除的模式对象使用再生缓冲器池,频繁扫描的大表经常存入再生缓冲器池。保持和再生缓冲器池的大小由设置初始化参数文件中的buffer_pool_keep和buffer_pool_recycle参数进行控制,而默认缓冲池的大小为高速缓存区的大小减去保持缓冲器池和再生缓冲器池后剩余的部分。,重做日志缓冲区(Redo Log Buffer)事务对数据库的修改在记录到重做日志文件之前必须首先放到重做日志缓冲区中。重做日志缓冲区是专为此开辟的一块内存区域,其中的内容将被日志书写进程LGWR随时写入重做日志文件。重做日志缓存区是一个循环缓存区,使用时从顶端向底端写入数据,然后再返回到缓冲区的起始点循环写入。重做日志缓冲区的大小(以字节为单位)由初始化参数文件中的log_buffer参数决定。Java程序缓冲区(Java Pool)Oracle 8i以后的版本在内核中加入了对Java的支持,Java程序缓冲区就是为Java 程序保留的,如果不用Java程序就没有必要改变该缓冲区的默认大小。大块内存池(Large Pool):得名不是因为大,而是因为它用来分配比共享池更大的内存。在进行语句并行查询和备份时,往往要使用到大块内存池。,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 日志书写进程将重做日志缓冲区的数据写入重做日志文件,LGWR是一个必须和前台用户进程通信的进程。当数据被修改时,系统会产生一个重做日志并记录在重做日志缓冲区内;数据被提交时,LGWR必须将重做日志缓冲区内的数据写入日志数据文件,然后通知前台进程提交成功,并由前台进程通知用户。由此可见,LGWR承担了维护系统数据完整性的任务。3系统监视进程SMON 系统监视进程主要包含清除临时空间、系统启动时完成系统实例恢复、自动合并数据文件中相邻的自由空间块、从不可用的文件中恢复事务的活动、缩减回滚段和使回滚段脱机等工作。4进程监视进程PMON 进程监视进程主要用于清除失败的用户进程,释放用户进程所用的资源。例如PMON将回滚未提交的工作、释放锁、释放分配给失败进程的SGA资源。,5检查点进程CKPT 检查点进程用于同步数据文件、控制文件和日志文件。由于DBWR/LGWR的工作原理,有可能造成了数据文件、控制文件和日志文件的不一致,这就需要CKPT进程来同步。CKPT进程会更新数据文件和控制文件的头部信息。在初始化参数文件中设置checkpoint_process参数为TRUE,即可启用检查点进程CKPT。6归档进程ARCH 当数据库以归档方式运行时,Oracle9i会启动ARCH进程,当重做日志文件被写满时,日志文件进行切换,旧的重做日志文件就被ARCH进程复制到一个或多个特定的目录或远程机器上,这些被复制的重做日志文件称为归档日志文件。7恢复进程RECO RECO进程负责建立与远程服务器的通信,自动解决所有未知的有疑问的分布式事务。,

    注意事项

    本文(Oracle9i数据库的体系结构.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开