Oracle体系结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle体系结构
一、物理结构
二、逻辑结构
三、内存结构
四、数据库实例与进程
五、数据字典
一、Oracle 的物理结构
Oracle 数据库文件包括数据文件、日志文件、控制文件、配置文件
数据文件
(1)用来存储数据库中的全部数据,如数据库表中的数据和索引数据。通常为
后缀名为.dbf格式的文件。
(2) 每个Oracle 可以有一个或多个数据文件,一个数据文件只能属于一个数据库。
(3) 每个数据文件又由若干物理块组成;
(4) 一个或多个数据文件组成表空间;
日志文件(重做日志文件)
(1)用于记录数据库所做的全部变更(如增加、删除、修改),以便在系统发生故障时,用它对数据库进行恢复。名字通常为Log*.dbf格式。
控制文件
(1)用于打开和存取数据库。
(2)是较小的二进制文件,记录了数据库的物理结构,如:数据库名、数据库的数据文件和日志文件的名字和位置等信息。
(3)名字通常为Ctr*.ctl格式,如CtrlCIMS.ctl。
(4)控制文件中的内容只能够由Oracle本身来修改。
(5)每个数据库必须至少拥有一个控制文件。一个数据库也可有多个控制文件,但是一个控制文件只能属于一个数据库。
配置文件:
(1)是一个ASCII文本文件,记录Oracle 数据库运行时的一些重要参数。
(2)名字通常为initsid*.ora格式,如:initCIMS.ora,
(3)SID相当于它所控制的数据库的标识符。
(4)每个Oracle数据库和实例都有它自己惟一的init.ora 文件。
二、Oracle 的逻辑结构
逻辑结构描述了数据库从逻辑上如何来存储数据块中的数据。包括表空间、段、区、数据块和模式对象。逻辑结构支配一个数据库如何使用系统的物理空间,模式对象及其之间的关系则描述关系数据库之间的设计。一个数据块从逻辑上是由一个或多个表空间组成,表空间是数据块中物理编组的数据仓库,每个表空间由段构成,段由一组区组成,一个区由连续的数据块组成。
表空间
表空间分类:
Oracle 中除了用户创建的存放数据对象的数据表空间外,还有以下类型的表空间:
1) System 表空间(System TableSpace)
2) 回滚表空间(RollBack TableSpace)
3) 临时表空间(Temp TableSpace)
系统表空间(System TableSpace):
a)是每个Oracle数据库必须具备部分,安装时自动建立,
b)存放表空间名称、表空间所含数据文件等管理数据库自身所需信息;
c)如:数据字典、存储过程、包、函数和触发器定义、系统回滚段、数据
库对象定义,用户过程等。
d)每个Oracle 数据库必须至少有个默认表空间。
系统表空间只保存属于数据库自身的相关数据,用户对象和数据保存在非系统表空间中。
临时表空间(Temp TableSpace):
a)是Oracle用于存储实例运行过程中产生的所有临时数据,如执行SQL
语句产生的临时表;
b)类似于数据库白板或草稿纸,记录数据和进行的操作。
c)可以有多个临时表空间;
d)无临时表空间将使用(System TableSpace)
回滚表空间(RollBack TableSpace)
a)所有Oracle数据库都需要在一个地方保存恢复信息(Undo),用于存放
回滚段( Rollback Segment )的表空间称为回滚或简称RBS。
b)Oracle 将不完整或临时中止的事务恢复的功能放在其核心功能中;表空间使用,在数据库中使用多个表空间具有如下优势:a)能将数据字典与用户数据分,避免因字典对象和用户对象保存在同一个
数据文件中而产生的I/O冲突。
b)将回退数据与用户数据分离,避免因硬盘损坏而导致永久性数据丢失。
c)将表空间数据文件分散保存到不同硬盘上,平均分布物理I/O操作。
d)将某个表空间设置为脱机状态或联机状态,对数据库的一部分进行备份
和恢复。
e)将某个表空间设置为只读,将数据库的一部分设置为只读状态。
f)为某种特殊用途专门设置一个表空间,比如临时表空间等,优化表空间
的使用效率。
g)更加灵活地为用户设置表空间限额。
表空间中对象存储
a)若表空间只对应一个数据文件,该表空间中所有对象都存储在此数据文
件中。
b)若表空间对应于多个数据文件,可将一个对象的数据存储在该表空间的
任意一个数据文件中,也可将同一个对象的数据分布在表空间的多个数据文件中。
段
1)数据段
a)数据段中保存表中记录。
b)用CREATE 语句创建表或簇时,Oracle 自动创建数据段。
c)Oracle 中所有未分区的表都使用一个段来保存数据,而分区的表将为每
个分区建立一个独立数据段。
2)索引段
a)在使用CREATE INDEX 语句创建索引时,Oracle为一个索引或一个索
引分区创建索引段。
b)在Oracle数据库中每个未分区索引都有一个索引段保存索引中索引条
目。
c)对于一个分区索引,每个分区都有一个索引段保存它的数据。
3)临时段
a)当处理查询时,Oracle可能会需要使用到一些临时存储空间,用于临时
保存解析过的查询语句以及在排序过程中产生的临时数据。
b)Oracle会自动在专门用于存储临时数据的表空间为操作分配临时段。4)回退段:
回滚段用于存放数据修改之前的值(包括数据修改之前的位置和值),作用主要有以下几方面:
a)事务回滚
b)事务恢复
c)读一致性
区
区是由很多连续的数据块组成的数据库存储空间,缺省情况下,数据库会使用表空间中存储的存储参数来管理他们的区.
主要的几个存储参数:
1)Initial:段建立时分配的第一个区的大小(单位:字节)
2)Next:段内分配的下一个增量区大小(单位:字节)