ORACLE数据库的存储层次体系

来源:互联网 发布:damn it 编辑:程序博客网 时间:2024/06/06 02:50

首先声明一下:不论你使用的存储设备是哪种文件系统,COOKED、ASM,哪怕是原始分区,以下所讨论的概念都适用。


BLOCK(块)

block 是oracle中最小的分配单位,也是最小的I/O单位,可以在创建数据库时设定block的大小,可以设为任意的大小,但为了支持与兼容方面,建议现实中设为2的幂,例如:

2KB、4KB、8KB,最大为32KB。


EXTENT(区)

extent 是由逻辑连续的block组成的,注意是逻辑上的,一般来讲,文件本身在磁盘上不是连续的,extent的大小可能是一个block的大小,也可能大到2GB,


SEGMENT(段)

segment 是由一个或多个extent组成的,segment就是占用存储空间的数据库对象,例如表、索引等,segment在tablespace中,但可以包含这个tablespace中的多个数据文件中的数据


TABLESPACE(表空间)

ORACLE数据库是由一个或多个TABLESPACE构成,什么是TABLESPACE? 一种逻辑上的存储容器,包括一个或多个datafile(数据文件)。tablespace可以包含多个segment(表段,索引段等),但一个segment只能属于一个tablespace。

                                              

上图中圆柱形代表datafile(user_data01.db和user_data02.dbf),T1,T2,I1是3个segment(可能是2个表和1个索引),这个USER_DATA  TABLESPACE分配了4个extent,T1和I1各有一个extent。如果这个TABLESPACE需要更多的空间,可以调整已分配给该TABLESPACE的datafile的大小,也可以增加第三个datafile。

要说明的是上述所讨论的概念除了block都是逻辑上的概念,所谓连续的也是逻辑上连续的。

0 0
原创粉丝点击