表空间及数据文件
定义:
用户存储数据文件的空间,被称为表空间,用于存储永久数据的表空间称为永久表空间,用于存储临时数据的表空间被称为临时表空间。
数据库的物理结构和逻辑结构
从物理结构上看,多个操作系统(OS Block)组成数据文件(DataFile),数据文件存储在物理存储之上。
从逻辑结构上来看,数据块是oracle的最小IO单位,数据块通常是由多个操作系统块(OS Block)组成,多个数据块组成区间(extent),区间是oracle创建对象时的最小空间分配单元;多个区间组成段(Segment),段存于表空间中,因此,表空间可以看成是一个容纳各种对象段(如数据表的表段、索引段)等的容器。
表空间可以包含一个或者,多个数据文件。因此可以被看成是一个文件组,Oracle就是由一列表空间组成。
表空间管理技术
由于区间(EXTENT)是oracle创建对象时的基本分配单位,所以表空间表空间管理技术实际上就是针对区间的管理技术。
- Oracle 8i以前的字段管理表空间技术(DMT)
- Orace 8i以后的本地管理表空间技术(LOCAL)
本地管理表空间上,oracle将存储信息保存在表空间头部的位图中。
8i以前,是字典管理表空间,当创建或删除对象时,Oracle的空间分配或回收是通过数据字典来记录和管理
在高并发系统中,这会导致性能衰减、空间碎片等难题
这已经是门过去的技术,这里就不赘述了。
8i开始,Oracle引入本地表空间管理
在每个表空间的数据文件的头部加入了一个位图区域
一个段的第一个区的第一个块是first level bitmap block
第二个块是secondlevelbitmapblock
第三个块才是段头块
这两个块是用来管理freeblock
段空间管理技术
Oracle 以区间(Extent)为单位将空间分配给对象段,而段内以则是以Block为单位进行空间的管理和使用的。
- 手工段空间管理MSSM
- 自动段空间管理ASSM
- 延迟段空间创建DSC