oracle表空间的了解

转贴:

一、数据库的存储体系

 oracle表空间的了解

上图就是Oracle数据的存储结构。其中Tablespace就是数据逻辑区域,Segment(段)是指定逻辑结构所占用的空间集合,Extent(分区)是分配单元,一个分区可以有多个block,而block是基本分配单元。总的来说,DB>Tablespace>Segment>Extent>block,一个段可以跨几个datafile,而分区不可以,即一个段只属于一个表空间,不过可以跨两个数据文件。

 

二、表空间的分类

(1)、系统表空间:它是在创建数据库时创建的,包括数据字典、系统回滚段等;

(2)、非系统表空间:分离的段,方便空间管理,控制用户对表空间的使用。

在OEM->存储->表空间中可以看到有SYSTEM表空间、USER表空间、UNDO、Temp等表空间,后三者属于非系统表空间。

 

三、表空间的创建

在OEM->存储->表空间中也可以创建,当然手动也可以创建。

create tablespace xxx [datafile '...'] [size xxx] [extent management local/dictionary] [default storage(xxx)]

表空间的管理主要有两种方式:一是本地管理(local),推荐使用,可以减少对数据字典的增用,当分配或回收block是没有回滚数据,同时也没有碎片压缩问题。另一种是字典管理(dictionary),不推荐。上述的几种表空间中,Undo Tablespace必须是本地管理、Temp表空间推荐使用本地管理。