资源预览内容
第1页 / 共22页
第2页 / 共22页
第3页 / 共22页
第4页 / 共22页
第5页 / 共22页
第6页 / 共22页
第7页 / 共22页
第8页 / 共22页
第9页 / 共22页
第10页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
数据库基本原理目录概述.41逻辑结构51.1 存储关系61.1.1 存储结构61.1.2 如何存储表数据 71.2 表空间(tablespace) 81.2.1 常用表空间 81.2.2 表空间和数据文件的关系 91.3 段(Segment) 101.4 数据区(Extent) 111.5 数据块(Data Blocks 112物理结构122.1 数据文件132.2 日志文件142.3 控制文件152.4 参数文件153 实例(instance) 164内存164.1SGA161.1.1 数据库高速缓冲区(Database Buffer Cache 171.1.2 重做日志缓冲区(Redo Log Buffer 181.1.3 共享池(Shared Pool 181.1.4 大池(Large Pool 181.1.5 JAVA 池(Java Pool 191.1.6 流池(Streams Pool) 194.2 PGA194.2.1 、Private SQL Area(私有 SQL区域)204.2.2 SQL Work Area s(工作区域) 204.3 PGA与 SGA的区别:205 oracle后台进程215.1 DBWn散据库写入进程)215.2 SMON (系统监控、实例监控进程) 225.3 PMON (进程#理)225.4 CKPT(检查点进程) 22概述什么是oracle?平常所说的 Oracle或Oracle数据库指的 是Oracle数据库管理系统.。Oracle数据库管理系统是管理数据 库访问的计算机软件,它由Oracle数据库和Oracle实例构成。 Oracle系统体系结构由三部分组成:逻辑结构、物理结构和实 例。oracle服务器是一个数据库管理系统,它包括一个oracle实例(动态)和一个oracle数据库(静态)。oracle实例是一个运行 的概念(如操作系统的进程),提供了一种访问oracle数据库的方式,始终打开一个,弁且只能打开一个oracle数据库,oracle实例有SGA和一些后台服务进程组成,在后台服务进程当中,DBWn (数据库写入进程)、SMON (系统监控、实例监控进程)PMON (进程清理)、 CKPT (检查点进程)LGWR (日志写进 程)是必备的后台进程。1逻辑结构Oracle的逻辑结构是一种层次结构。主要由:表空间、 段、区和数据块等概念组成。逻辑结构是面向用户的,用户使 用Oracle开发应用程序使用的就是逻辑结构。数据库存储层次 结构及其构成关系,结构对象也从数据块到表空间形成了不同层 次的粒度关系。1.1 存储关系Oracle数据库逻辑上是由一个或多个表空间组成的,表空 间物理上是由一个或多个数据文件组成的;而在逻辑上表空间 又是由一个或多个段组成的。在Oracle数据库中,通过为每种不同的数据对象分配不同的段,来保存数据。例如 EMP表的所 有数据会存放在EMP段中。在Oracle数据库中,段是由一个 或多个区组成的,而区又是由连续存储的数据块所组成的。块则是数据库的I/O最小的单位。1.1.1 存储结构逻辑物理Oracle数据作数据库可划分为被称为表空间的逻辑存储单元。每一个表 空间可以包含很多的 Oracle逻辑数据块。DB_BLOCK_SIZ参数 指定了逻辑块的大小。逻辑块的大小范围为2 KB至32 KB,默认大小为8 KR特定数目的相邻逻辑块构成了一个区。为特定 逻辑结构分配 的一组区构成了一个段。 Oracle数据块是逻辑 I/O的最小单位。1.1.2 如何存储表数据创建表时,就会创建段来保存表数据。表空间包含一组 段。从逻辑上讲,表包含由列值组成的行。行最终将以行片段 的形式存储在数据库块中。之所以称为行片段,是因为某些情 况下,不可以在一个位置存储一整行。当插入行由于太长而不 适合单个块时,或者由于更新而导致现有行大小超出了行的当前空间时,就会发生这种情况。如可停鹿夫t7程1.2 表空间(tablespace )Oracle数据库(tablespace)是由若干个表空间构成的。任 何数据库对象在存储时都必须存储在某个表空间中O表空间对 应于若干个磁盘文件,即表空间是由一个或多个磁盘文件构成的。表空间相当于操作系统中的文件夹,也是数据库逻辑结构 与物理文件之间的一个映 射。每个数据库至少有一个表空间, 表空间的大小等于所有从属于它的数据文件大小的总和。1.2.1 常用表空间(1)系统表空间:存放系统数据,系统表空间在数据库创建 时自动创建。表空间名称为 SYSTEM存放数据字典和视图以及 数据库结构等重要系统数据信息,在运行时如果SYSTEM空间不足,对数据库影响会比较大,虽然在系统运行过程中可以通 过命令扩充空间,但还是会影响数据库的性能,因此有必要在 创建数据库时适当的把数据文件设置大一些。(2) TMEP表空间:临时表空间,安装数据库时创建,可以 在运行时通过命令增大临时表空间。临时表空间的重要作用是 数据排序。比如当用户执行了诸如Order by等命令后,服务器需要对所选取数据进行排序,如果数据很大,内存的排序区可能装不下太大数据,就需要把一些中间的排序结果写在硬盘的临时表空间中。(3)用户表自定义空间:用户可以通过CREATE TABLESPACE命令创建表空间。1.2.2表空间和数据文件的关系数据库衰空间敷据文件Oracle数据库由一个或多个称为表空间的逻辑存储单元组 成,表空间作为一个整体存储数据库中的所有数据,弁且一个 表空间只能属于一个数据库。数据库的大小是该数据库中所表空间大小总和。从物理讲,Oracle数据库内的每个表空间由一个或多数据 文件 组成,弁且一个数据文件只能属于一个表空间。表空间大是所有数据文件大小的总和。这些数据文件与Oracle运行所在的操作系统的文件有一样的物理结构。数据库的所有数据都存储在数据文件中,数据库的每个表 空间都由这些数据文件组 成。例如,最简单的 Oracle数据库只 有一个表空间和一个数据文件。1.3 段(Segment )段是由多个数据区构成的,它是为特定的数据库对象(如表段、索引段、回滚段、临时段) 分配的一系列数据区。段内包含 的数据区可以不连续,并且可以跨越多个文件。使用段的目的 是用来保存特定对象。一个Oracle数据库有4种类型的段:数据段:数据段也称为表段,它包含数据并且与表和簇相 关。当创建一个表时,系统自动创建一个以该表的名字命名的 数据段。索引段:包含了用于提高系统性能的索引。一旦建立索 引,系统自动创建一个以该索引的名字命名的索引段。回滚段:包含了回滚信息,并在数据库恢复期间使用,以 便为数据库提供读入一致性和回滚未提交的事务,即用来回滚 事务的数据空间。当一个事务开始处理时,系统为之分配回滚 段,回滚段可以动态创建和撤销。系统有个默认的回滚段,其 管理方式既可以是自动的,也可以是手工的。临时段:它是Oracle在运行过程中自行创建的段。当一个 SQL语句需要临时工作区时,由 Oracle建立临时段。一旦语句执 行完毕,临时段的区间便退回给系统。1.4 数据区(Extent )数据区是一组连续的数据块。当一个表、回滚段或临时段 创建或需要附加空间时,系统总是为之分配一个新的数据区。 一个数据区不能跨越多个文件,因为它包含连续的数据块。使 用区的目的是用来保存特定数据类型的数据,也是表中数据增 长的基本单位。在 Oracle数据库中,区是 Oracle数据库中创建 对象时的最小分配单元,分配空间就是以数据区为单位的。一个 Oracle对象包含至少一个数据区。设置一个表或索引的存储参 数包含设置它的数据区大小。1.5 数据块(Data Blocks )数据块是Oracle最小的存储单位,Oracle数据存放在“块” 中。一个块占用一定的磁盘空间。特别注意的是,这里的“块”是Oracle的“数据块”,不是操作系统的“块”。Oracle每次请求数据的时候,都是以块为单位。也就是说,Oracle每次请求的数据是块的整数倍。如果Oracle请求的数据量不到一块,Oracle也会读取整个块。所以说,“块”是Oracle读写数据的最小单位或者最基本的单位。块的标准大小由初始化参数 DB_BLOCK_SIZ指定。具有标 准大小的块称为标准块(Standard Block)。块的大小和标准块的 大小不同的块叫非标准块(Nonstandard Block)。一个数据块的结构如下图所示:HeaderFree spaceData其中,Header表示数据块头,记录了一些控制信息,帮助Oracle数据库定位这个块,同时该部分还记录着块与块之间的串联信息。Free Spac时旨的是当前处于空I状态的空间。 Data则 表示已经写入数据的空间,数据存放的方式是自底往上。2物理结构Oracle物理结构由多种物理文件组成。2.1 数据文件每一个ORACL嗷据库有一个或多个物理的数据文件 (data file) o 一个数据库的数据文件包含全部数据库数据。逻辑数据库 结构(如表、索引)的数据物理地存储在数据库的数据文件中。数 据文件有下列特征:(1) 一个数据文件仅与一个数据库联系。(2) 一旦建立,数据文件不能改变大小.(3) 一个表空间(数据库存储的逻辑单位)由一个或多个数据 文件组成。(4) 数据文件中的数据在需要时可以读取弁存储在ORACLE存储区中。2.2 日志文件每一个数据库有两个或多个日志文件(redo log file)的组, 每一个日志文件组用于收集数据库日志。日志的主要功能是记 录对数据所作的修改,所以对数据库作的全部修改是记录在日 志中。在出现故障时,如果不能将修改数据永久地写入数据文 件,则可利用日志得到该修改,所以从不会丢失已有操作成 果。日志文件主要是保护数据库以防止故障。为了防止日志文 件本身的故障,ORACLE许镜象日志(mirrored redo log),以致 可在不同磁盘上维护两个或多个日志副本。日志文件中的信息仅在系统故障或介质故障恢复数据库时 使用,这些故障阻止将数据库数据写入到数据库的数据文件。 然而任何丢失的数据在下一次数据库打开时,ORACLES动地应用日志文件中的信息来恢复数据库数据文件。Oralce两种日志文件类型:联机日志文件 这是Oracle用来循环记录数据库改变的操作 系统文件归档日志文件 这是指为避免联机日志文件重写时丢失重复 数据而对联机日志文件所做的备份2.3 控制文件每一 ORACL徵据库有一个控制文件(control file),它记录数 据库的物理结构,包含下列信息类型:(1)数据库名;(2)数据库数据文件和日志文件的名字和位置;(3)数据库建立日期。为了安全起见,允许控制文件被镜像。每一次ORACL嗷据库的实例启动时,它的控制文件用于标 识数据库和日志文件,当着手数据库操作时它们必须被打开。当数据库的物理组成更改时,ORACLE动更改该数据库的控制文件。数据恢复时,也要使用控制文件。2.4 参数文件除了构成Oracle数据库物理结构的三类主要文件外,Oracle数据库还具有另外一种重要的文件:参数文件。参数文件记录了 Oracle数据库的基本
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号