`

oracle 数据库 表空间 段 范围 关系汇总

阅读更多
数据库结构和空间管理 
一个ORACLE数据库是数据的集合,被处理成一个单位。一个ORACLE数据库有一个物理结构和一个逻辑结构。 
物理数据库结构(physical database structure)是由构成数据库的操作系统文件所决定。每一个ORACLE数据库是由三种类型的文件组成:数据文件、日志文件和控制文件。数据库的文件为数据库信息提供真正的物理存储。 
逻辑数据库结构是用户所涉及的数据库结构。一个ORACLE数据库的逻辑结构由下列因素决定: 
l 一个或多个表空间 
l 数据库模式对象(即表、视图、索引、聚集、序列、存储过程) 
逻辑存储结构如表空间(dataspace)、段(segment)和范围将支配一个数据库的物理空间如何使用。模式对象(schema object)用它们之间的联系组成了一个数据库的关系设计。 

1) 物理结构 

(1) 数据文件 
每一个ORACLE数据库有一个或多个物理的数据文件(data file)。一个数据库的数据文件包含全部数据库数据。逻辑数据库结构(如表、索引)的数据物理地存储在数据库的数据文件中。数据文件有下列特征: 
l 一个数据文件仅与一个数据库联系。 
l 一旦建立,数据文件不能改变大小 
l 一个表空间(数据库存储的逻辑单位)由一个或多个数据文件组成。 
数据文件中的数据在需要时可以读取并存储在ORACLE内存储区中。例如:用户要存取数据库一表的某些数据,如果请求信息不在数据库的内存存储区内,则从相应的数据文件中读取并存储在内存。当修改和插入新数据时,不必立刻写入数据文件。为了减少磁盘输出的总数,提高性能,数据存储在内存,然后由 ORACLE后台进程DBWR决定如何将其写入到相应的数据文件。 

(2) 日志文件 
每一个数据库有两个或多个日志文件(redo log file)的组,每一个日志文件组用于收集数据库日志。日志的主要功能是记录对数据所作的修改,所以对数据库作的全部修改是记录在日志中。在出现故障时,如果不能将修改数据永久地写入数据文件,则可利用日志得到该修改,所以从不会丢失已有操作成果。 
日志文件主要是保护数据库以防止故障。为了防止日志文件本身的故障,ORACLE允许镜象日志(mirrored redo log),以致可在不同磁盘上维护两个或多个日志副本。 
日志文件中的信息仅在系统故障或介质故障恢复数据库时使用,这些故障阻止将数据库数据写入到数据库的数据文件。然而任何丢失的数据在下一次数据库打开时,ORACLE自动地应用日志文件中的信息来恢复数据库数据文件。 

(3) 控制文件 
每一ORACLE数据库有一个控制文件(control file),它记录数据库的物理结构,包含下列信息类型: 
l 数据库名; 
l 数据库数据文件和日志文件的名字和位置; 
l 数据库建立日期。 
为了安全起见,允许控制文件被镜象。 
每一次ORACLE数据库的实例启动时,它的控制文件用于标识数据库和日志文件,当着手数据库操作时它们必须被打开。当数据库的物理组成更改时,ORACLE自动更改该数据库的控制文件。数据恢复时,也要使用控制文件。 

2) 逻辑结构 
数据库逻辑结构包含表空间、段、范围(extent)、数据块和模式对象。 
(1) 表空间 
一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TABLESPACE)。一个表空间可将相关的逻辑结构组合在一起。DBA可利用表空间作下列工作: 
l 控制数据库数据的磁盘分配。 
l 将确定的空间份额分配给数据库用户。 
l 通过使单个表空间在线或离线,控制数据的可用性。 
l 执行部分数据库后备或恢复操作。 
l 为提高性能,跨越设备分配数据存储。 
数据库、表空间和数据文件之间的关系如下图所示: 
Database 

SYSTEM DATA 

Tablespace Tablespace 





DTATAFILE1 
(2MB) DATAFILE2 
(2MB) DATAFILE3 
(2MB) 

Driver1 Driver2 

。每个数据库可逻辑划分为一个或多个表空间 
。每一个表空间是由一个或多个数据文件组成,该表空间物理地存储表空间中全部逻辑结构的数据。DBA可以建立新的表空间,可为表空间增加数据文件或可删除数据文件,设置或更改缺省的段存储位置。 

每一个ORACLE数据库包含有一个名为SYSTEM的表空间,在数据库建立是自动建立。在该表空间中总包含有整个数据库的数据字典表。最小的数据库可只需要SYSTEM表空间。该表空间必须总是在线。表和存储的PL/SQL程序单元(过程、函数、包和触发器)的全部存储数据是存储在SYSTEM表空间中。如果这些PL/SQL对象是为数据库建的,DBA在SYSTEM表空间中需要规划这些对象所需要的空间。 
表空间利用增加数据文件扩大表空间,表空间的大小为组成该表空间的数据文件大小的和。 
DBA可以使ORACLE数据库中任何表空间(除SYSTEM表空间外)在线(ONLINE)或离线(OFFLINE)。表空间通常是在线,以致它所包含的数据对数据库用户是可用的。当表空间为离线时,其数据不可使用。在下列情况下,DBA可以使其离线。 
。使部分数据不可用,而剩余的部分允许正常存取 
。执行离线的表空间后备 
。为了修改或维护一应用,使它和它的一组表临时不可用。 
包含有正在活动的回滚段的表空间不能被离线,仅当回滚段不正在使用时,该表空间才可离线。 
在数据字典中记录表空间的状态,在线还是离线。如果在数据库关闭时一表空间为离线,那么在下次数据库装配和重新打开后,它仍然保持离线。 
当出现某些错误时,一个表空间可自动地由在线改变为离线。通过使用多个表空间,将不同类型的数据分开,更方便DBA来管理数据库。 
ORACLE 数据库中一表空间是由一个或多个物理数据文件组成,一个数据文件只可与一个表空间想联系。当为一表空间建立一数据文件时,ORACLE建立该文件,分配指定的磁盘空间容量。在数据文件初时建立后,所分配的磁盘不包含任何数据。表空间可以在线或离线。在ORACLE中还允许单独数据文件在线或离线。 

(2) 段、范围和数据块 
ORACLE通过段、范围和数据块逻辑数据结构可更细地控制磁盘空间的使用。 

段 
段(SEGMENT)包含表空间中一种指定类型的逻辑存储结构,是由一组范围组成。在ORACLE数据库中有几种类型的段:数据段、牵引段、回滚段和临时段。 
数据段:对于每一个非聚集的表有一数据段,表的所有数据存放在该段。每一聚集有一个数据段,聚集中每一个表的数据存储在该段中。 
索引段:每一个索引有一索引段,存储索引数据。 
回滚段:是由DBA建立,用于临时存储要撤消的信息,这些信息用于生成读一致性数据库信息、在数据库恢复时使用、回滚未提交的事务。 
临时段:当一个SQL语句需要临时工作区时,由ORACLE建立。当语句执行完毕,临时段的范围退回给系统。 
ORACLE对所有段的空间分配,以范围为单位。 

范围 
一个范围(EXTENT)是数据库存储空间分配的一个逻辑单位,它由连续数据块所组成。每一个段是由一个或多个范围组成。当一段中间所有空间已完全使用时,ORACLE为该段分配一个新的范围。 
为了维护的目的,在数据库的每一段含有段标题块(segment header block)说明段的特征以及该段中的范围目录。 

数据块 
数据块(data block)是ORACLE管理数据文件中存储空间的单位,为数据库使用的I/O的最小单位,其大小可不同于操作系统的标准I/O块大小。 


数据块的格式: 
公用的变长标题 
表目录 
行目录 
未用空间 
行数据 

(3) 模式和模式对象 
一个模式(schema)为模式对象(scehma object)的一个集合,每一个数据库用户对应一个模式。模式对象为直接引用数据库数据的逻辑结构,模式对象包含如表、视图、索引、聚集、序列、同义词、数据库链、过程和包等结构。模式对象是逻辑数据存储结构,每一种模式对象在磁盘上没有一个相应文件存储其信息。一个模式对象逻辑地存储在数据库的一个表空间中,每一个对象的数据物理地包含在表空间的一个或多个数据文件中。 

表 
表(table)为数据库中数据存储的基本单位,其数据按行、列存储。每个表具有一表名和列的集合。每一列有一个列名、数据类型、宽度或精度、比例。一行是对应单个记录的列信息的集合。 

视图 
一个视图(view)是由一个或多个表(或其他视图)中的数据的一种定制的表示,是用一个查询定义,所以可认为是一个存储的查询(stored query)或是一个虚表(virtual table)。视图可在使用表的许多地方使用。 
由于视图是由表导出的,视图和表存在许多类似,视图象表最多可定义254列。视图可以被查询,而在修改、插入或删除时具有一定的限制,在视图上执行的全部操作真正地影响视图的基本表中的数据,受到基本表的完整性约束和触发器的限制。 
视图与表不同,一个视图不分配任何存储空间,视图不真正地包含数据。由查询定义的视图相应于视图引用表中的数据。视图只在数据字典中存储其定义。 
引入视图有下列好处: 
。通过限制对表的行预定义集合的存取,为表提供附加的安全性 
。隐藏数据复杂性。 
。为用户简化命令 
。为基本表的数据提供另一种观点。 
。可将应用隔离基本表定义的修改 
。用于不用视图无法表示的查询。 
。可用于保存复杂查询。 

聚集 
聚集(cluster)是存储表数据的可选择的方法。一个聚集是一组表,将具有同一公共列值的行存储在一起,并且它们经常一起使用。这些公共列构成聚集码。例如:EMP表各DEPT表共享DEPTNO列,所以EMP表和DEPT表可聚集在一起,聚集码的列为DEPTNO列,该聚集将每个部门的全部职工行各该部门的行物理地存储在同一数据块中。 

索引 
索引(index)是与表和聚集相关的一种选择结构。索引是为提高数据检索的性能而建立,利用它可快速地确定指定的信息。ORACLE索引为表数据提供快速存取路径。索引适用于一范围的行查询或指定行的查询。 
索引可建立在一表的一列或多列上,一旦建立,由ORACLE自动维护和使用,对用户是完全透明的。索引是逻辑地和物理地独立于数据,它们的建立或删除对表没有影响,应用可继续处理。索引数据的检索性能几乎保持常数,而当一表上存在许多索引时,修改、删除和插入操作的性能会下降。 
索引有唯一索引各非唯一索引。唯一索引保证表中没有两行在定义索引的列上具有重复值。ORACLE在唯一码上自动地定义唯一索引实施UNIQUE完整性约束。 
组合索引是在表的某个列上所建立的一索引。组全索引可加快SELECT语句的检索速度,在其WHERE子句中可引用组合索引的全部或主要部分 。所以在定义中给出列的次序,将经常存取的或选择最多的列放在首位。 
在建立索引时,将在表空间自动地建立一索引段,索引段空间分配和保留空间的使用受下列方式控制: 
索引段范围的分配常驻该索引段的存储参数控制。 
其数据块中未用空间可受该段的PCTFREE参数设置所控制。 

序列生成器 
序列生成器(sequence generator)产生序列号。在多用户环境下该序列生成器特别有用,可生成各返回序列号而不需要磁盘I/O或事务封锁。 
序列号为ORACLE整数,最多可有38个数字。一个序列定义指出一般信息:序列的名字、上升或下降、序列号之间间距和其它信息。对所有序列的确的定义以行存储在SYSTEM表空间中的数据字典表中,所以所有序列定义总是可用。由引用序列号的SQL语句使用序列号,可生成一个新的序列号或使用当前序列号。一旦在用户会话中的SQL语句生成一序列号,该序列号仅为该会话可用。序列号生成是独立于表,所以同一序列生成器可用于一个和多个表。所生成序列号可用于生成唯一的主码。 
参考资料: 参考资料:www.mno.cn
分享到:
评论

相关推荐

    高性能动态SQL Oracle数据安全 Oracle 数据库的聚簇技术 等等

    Oracle数据库空间管理方法 91 用SQL*Loader将Excel数据导出到Oracle 94 Oracle Spatial数据加密问题的研究 95 提高Oracle数据库系统Import的性能 96 Oracle数据库的四种启动方式 97 oracle数据库优化基础 97

    不要让临时表空间影响数据库性能

    在Oracle数据库中 进行排序、分组汇总、索引等到作时,会产生很多的临时数据。如有一张员工信息表,数据库中是安装记录建立的时间来保存的。如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后...

    Oracle升级迁移实战文章和方案文档汇总-共168篇.xlsx

    数据库信息收集表-Oracle数据库迁移升级场景-云和恩墨 零停机时间完成Oracle 上云迁移 OGG能够复制迁移包含CLOB字段的table? Oracle数据库迁移从Windows到Linux Oracle数据库迁移从Windows到Linux 18小时停机时间...

    在Linux系统上同时监控多个Oracle数据库表空间的方法

    由于所在公司ORACLE数据库较多,传统人工监控表空间的方式较耗时,且无法记录历史表空间数据,无法判断每日表空间增长量,在没有gridcontrol/cloudcontrol软件的情况下,笔者设计如下表空间监控方案,大家也可以根据...

    Oracle日常维护故障定位故障排除

    3 由于临时表空间无法扩展导致数据库被挂起 4由于未打补丁导致RMAN备份时将数据库挂起 5由于BLOB类型的表记录数太多操作又太频繁导致数据库效率急差 6由于未对特大表(达到或超过100万条记录)定期做表分析导致...

    oracle数据库dba管理手册

    4.6 数据库空间使用概述 76 4.6.1 storage子句的意义 77 4.6.2 表段 78 4.6.3 索引段 79 4.6.4 回滚段 79 4.6.5 临时段 79 4.6.6 自由空间 80 4.7 重新确定数据文件大小 81 4.8 数据库文件的移动 83 4.8.1 移动数据...

    oracle数据库经典题目

    系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。 ...

    Oracle数据库基本常用命令汇总

    2、ORACLE数据库的计算机的主机名,ORACLE数据库的实例名及ORACLE数据库管理系统的版本信息SELECT host_name, instance_name, version FROM v$instance; 3、为了知道oracle数据库版本的一些特殊信息select * from v$...

    会议管理系统数据库设计文档.doc

    在oracle数据库设计中,一 般来说,对于定长的字符数据字段,取字符类型(char),对于不定长的,取变长字符类 型(varchar)。 2.对于以分类形式出现的字段,建议不使用字符类型,而使用数字类型。如:货物 是否配送为...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     《Oracle11g宝典》是Oracle数据库管理员、安全管理员、网络管理员、应用开发人员的参考指南,还是Oracle技术支持和培训机构、Oracle学习班、高等院校计算机专业数据库课程的参考教材和上机指导教材。每类人员都...

    政务平台数据库设计.doc

    表空间设计 遵照《数据库表空间命名规范》,数据库表空间设计如下: 表4-4表空间设计 "编号 "业务系统名称 "表空间名称 "总大小 " "1 "省级政务管理平台 "JSYZT "100G " 数据库用户设置 表4-5数据库用户设置 "用户 ...

    Oracle使用疑难问题汇总

    教程名称:Oracle使用疑难问题汇总课程目录:【】Oracle DBA优化数据库性能心得体会【】ORACLE 中ROWNUM用法总结【】Oracle 查询表空间使用情况(经典篇)【】Oracle下巧用bulk collect实现cursor批量fetch【】...

    数据库oracle常用命令.xls

    数据库oracle常用命令,汇总了丰富的sql集合,包括系统管理,资源管理,空间管理,业务管理,数据库优化,日常巡检运维等脚本

    Oracle DBA实战攻略

    本书是目前Oracle数据库运维领域不可多得的一本著作,也是为数不多的既有大量实践应用案例又包含实战方法论的著作。作者根据其多年的运维诊断经验,从数据库如何创建开始,循序渐进地介绍了数据库的启动关闭过程,...

    Oracle维护常用SQL语句汇总

    如何远程判断Oracle数据库的安装平台 select * from v$version; 查看表空间的使用情况 select sum(bytes)/(1024*1024) as free_space,tablespace_name from dba_free_space group by tablespace_name; SELECT A....

    Oracle DBA笔试及面试题汇总

     3:本地管理表空间和字典管理表空间的特点,ASSM有什么特点?  4:备份如何分类?  5:如果一个表被drop,在有完善的归档和备份的情况下,如何恢复  6:rman是什么,有何特点?  7:standby的特点  8:对于一个...

    常见oracle问题的总结

    常见的oracle问题汇总,如下所示: 1. Oracle安裝完成后的初始口令? 2. ORACLE9IAS WEB CACHE的初始默认用户和密码? 3. oracle 8.0.5怎么创建数据库? 4. oracle 8.1.7怎么创建数据库? 10. 用什么语句查询字段呢? ...

    国土三调建库与管理系统V2.3使用手册20190203

    建库过程以本地空间数据库方式进行三调数据的编辑操作,本系统以行政区为单元进行空间数据库建库,每个项目对应一个行政区的三调数据库,行政区可以按村或乡镇为单位进行三调数据库建库作为,建库完成后汇总到按县级...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    有近20年使用Oracle技术产品以及Oracle数据库管理员/Oracle数据库应用管理员的经验,是真正应用集群、性能调优以及数据库内部属性方面的专家。同时是一位演讲家及Oracle ACE。  JARED STILL 从1994年就开始使用...

Global site tag (gtag.js) - Google Analytics