Oracle数据库结构 - ch4

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第四讲Oracle数据库结构主要内容逻辑存储结构数据块(DataBlock)、区(Extent)、段(Segment)表空间(Tablespace)物理存储结构控制文件数据文件联机重做日志文件归档重做日志文件Oracle数据库结构数据库结构是指存储数据的方式。逻辑存储结构(逻辑数据库)用于描述在Oracle内部组织和管理数据的方式。物理存储结构(物理数据库)定义了Oracle外部,即操作系统中组织和管理数据的方式。逻辑存储结构逻辑数据库空间按照由小到大的顺序分别为数据块(DataBlock)、区(Extent)、段(Segment)和表空间(Tablespace)。逻辑数据库是由若干表空间组成,每个表空间由若干个段组成,每个段由若干区组成,每个区是由若干个连续的数据块组成,每个块是由若干字节组成。逻辑存储结构数据块(DataBlock)Oracle是以数据块为单位管理数据文件中的存储空间。数据块是数据库读写数据的最小I/O单位。块大小由初始化参数DB_BLOCK_SIZE指定。块空间管理方式:自动手工数据块(DataBlock)如果在创建表空间时使用的是本地管理方式,并且将段的存储空间管理方式设置为AUTO,Oracle将自动管理表空间中块的空闲存储空间。手工是设置PCTFREE和PCTUSED来定义。PCTFREE参数用于指定块中必须保留的最小空闲空间比例,小于该比例块将标记为不可用。PCTUSED参数用于指定块中已经使用的存储空间降低到指定的百分比时,这个块才被重新标记为可用状态。区(Extent)区是由物理上连续存放的块所构成的Oracle逻辑存储单位,由一个或多个区构成段。区是Oracle为段分配空间的最小单位。创建带有实际存储结构的数据库对象时,自动分配若干个区作为对象的初始存储空间。初始区的大小、后续区的大小和增加方式通过在DEFAULTSTORAGE子句设置参数INITIAL、NEXT和PCTINCREASE来指定。段(Segment)段由一个或多个区组成,是独立的逻辑存储结构,而不是存储空间分配的单位。段只属于一个特定的数据库对象。每当创建具有独立段的数据库对象时,Oracle将为它创建一个段,段中至少有一个初始区。根据数据库对象的不同也有不同类型的段:数据段:存放所有表的数据。索引段:保存的是索引中的索引条目。临时段:用来保存SQL语句分析和执行的中间结果。回滚段:记录每个事务修改数据时数据的旧值,不管这个事务是否提交。表空间(Tablespace)在逻辑上,Oracle数据库是由一个或多个表空间组成的,表空间被划分为一个个独立的段,数据库中创建的所有对象都必须保存在指定的表空间中。在物理上,一个表空间对应于操作系统中的一个或多个数据文件。一个对象的数据存储在表空间的任意一个数据文件中,也可将同一个对象的数据分布在表空间的多个数据文件中,还可以将同一个对象分布在多个表空间中(如对表进行分区后的分区表)。表空间与数据文件的关系一个表空间可以包含多个数据文件,但是一个数据文件只能属于一个表空间。表空间的分类1.用户定义表空间用于存储用户数据的普通表空间,它是根据实际应用由用户自己来建立的。2.SYSTEM表空间创建数据库时,自动创建SYSTEM表空间。SYSTEM表空间中存储数据库数据字典、所有PL/SQL程序的源代码和解析代码和数据库对象(如视图、对象类型说明、同义词和序列)的定义。表空间的分类3.撤消表空间用来在自动撤销管理方式下存储撤销信息的专用表空间。在撤销表空间中只能建立撤销段(回滚段)。任何数据库用户都不能在撤销表空间中创建数据库对象。4.临时表空间运行过程中要使用临时空间来保存SQL语句执行过程中产生的中间数据。物理数据库结构Oracle物理数据库是从操作系统的文件级来描述数据库。Oracle数据库是由若干个物理文件组成,每个物理文件由若干个操作系统物理块组成。四种类型的操作系统文件组成:控制文件数据文件联机重做日志文件归档重做日志文件控制文件(ControlFile)控制文件是一个记录数据库结构的二进制文件,在其中如下重要信息:数据库名,数据库建立的时间;数据文件名称、位置、联机/脱机状态信息;重做日志文件的名称和路径;表空间名称;当前日志序列号,日志历史记录;归档日志信息;最近检查点信息;备份信息等。控制文件(ControlFile)实例在加载数据库时读取控制文件,以找到自己所需的操作系统文件。控制文件必须在整个数据库打开期间始终保持可用状态。每个数据库必须至少拥有一个控制文件。一个数据库也可同时拥有多个相同的控制文件,但是一个控制文件只能属于一个数据库。控制文件信息可以从V$Controlfile中查询获得。数据文件(DataFile)数据文件是存储数据库数据的操作系统文件。Oracle通过为表空间创建数据文件来从硬盘中获取物理存储空间。一个数据库对象的数据可以全部保存在一个数据文件中,也可以分布在同一个表空间的多个数据文件中。组成表空间的数据文件的大小决定了表空间的大小。数据文件(DataFile)数据文件的查看:SQLselectnamefromv$datafile;NAME---------------------------------------------/u05/dbf/PROD/system01.dbf/u06/dbf/PROD/temp01.dbf/u04/dbf/PROD/users01.dbf/u09/dbf/PROD/rbs01.dbf/u06/dbf/PROD/applsys_indx01.dbf/u05/dbf/PROD/applsys_data01.dbf联机重做日志文件重做日志文件中以重做记录的形式记录了用户对数据库进行的所有修改操作。重做记录由一组变更向量组成,每个变更向量中记录了事务对数据库中某个数据块所做的修改。利用重做记录,在系统发生故障而导致数据库崩溃时,Oracle可以恢复丢失的数据修改操作信息。1、写入联机重做日志文件LGWR以循环方式写入联机重做日志。日志序列号1、写入联机重做日志文件当一个事务被提交时,LGWR进程把与该事务相关的所有重做记录全部写入当前重做日志文件中,同时生成一个系统变更号(SystemChangeNumber,SCN)。只有当某个事务所产生的重做记录全部被写入重做日志文件之后,Oracle才认为这个事务已经成功提交。SCN是数据库状态是否一致的标志。2、日志切换和日志序列号日志切换是指LGWR进程结束当前重做日志文件的使用,开始写入下一个重做日志文件的时刻。每当发生日志切换时,Oracle将会生成一个新的日志序列号,并将这个号码分配给即将开始使用的重做日志文件。日志序列号不会重复,在归档时一同保存。日志序列号表示日志文件使用的先后。3、多路重做日志文件多路重做日志文件是指同时保存一个重做日志文件的多个镜像文件,防止被破坏。这些完全相同的重做日志文件构成一个重做日志文件组,组中每个重做日志文件称为一个日志组成员。工作原理:归档重做日志文件归档是指在重做日志文件被覆盖之前,Oracle将已经写满的重做日志文件复制到指定的位置以文件形式存放,这类文件称为归档重做日志文件。归档重做日志文件主要用于进行数据库恢复和更新备份数据库,同时借用LogMiner工具可以得到数据库操作的历史信息。只有数据库处于归档模式中,才会执行归档操作。归档操作可以由后台进程ARCn自动完成,或由管理员手工通过命令来完成。1、归档过程2、数据库的归档模式数据库可以运行在归档模式或非归档模式下。数据库的归档模式将记录在控制文件中。如果将数据库设置为非归档模式,将不会对重做日志文件进行归档操作。当发生日志切换时,LGWR进程直接写入下一个可用的联机重做日志文件,联机重做日志文件中原有的重做记录将被覆盖。2、数据库的归档模式数据库在归档模式下,LGWR进程在写入下一个重做日志文件之前,必须等待该联机重做日志文件完成归档,否则LGWR进程将被挂起,数据库也停止运行。在归档重做日志文件中,记录了自从数据库置于归档模式后,用户对数据库所进行的所有修改操作。

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功