oracle的逻辑存储结构是一种层次结构,主要由表空间、段、区、和数据库等概念构成。
1、数据块(Data Block)
数据库是oracle逻辑存储结构中最小的逻辑单位,也是执行数据库输入输出操作最小的存储单位。通常Oracle数据块是系统数据块的整数倍。oracle数据块有一定标准大小。其大小被写入到初始化参数DB_BLOCK_SIZE中。
块由块头,表目录,行目录,空余空间和行数据组成
2、数据区(Extent)
是一组有连续的oracle数据区组成的oracle存储结构,一个或多个数据块组成一个数据区,一个或多个数据区组成数据段。数据区是oracle存储分配的最小单位,Oracle就以数据区为单位进行存储空间的扩展。
3、段(Segment)
段是由一个或多个数据区构成的,段不是存储单位,而是一个独立的逻辑存储结构,用以存储表,索引或簇等占用空间的数据对象,有数据段,索引段,回滚段,临时段等。
4、表空间
Oracle通过表空间将相关的逻辑结构(如段数据区等)组合在一起,表空间是数据库最大的逻辑划分区域,通常用来存储表、索引、回滚段等数据对象。
由于表空间在物理上包换操作系统中的一个或多个数据文件,因此在表空间中创建的数据对象就存在一下两种情况:
1、若表空间只存在一个数据文件则表空间全部对象都存在一个数据文件上;
2、若表空间包含多个数据文件,则oracle可将数据对象存储在该表空间任意一个数据文件中,也可将一个数据对象中的数据存储在不同数据文件中。
Oracle会自动创建几个默认的表空间
1)SYSTEM表---系统表,用于存放oracle内部系统表和数据字典的数据。不建议将用户自己创建的表放到SYSTEM表中。
2)SYSAUS表空间
11g新增的表空间,随着数据库的创建创建的,是SYSOUT表的辅助表空间,SYSAUS表空间一般不存储用用户信息,是oracle系统自动维护的。
3)UODO 表空间
UODO表空间------撤销表空间,用于存储撤销新的表空间。当用户对数据进行增删改操作时,存储旧数据。根据系统设置的时间来决定何时释放旧数据占用的空间。
4)USERS表空间
用户表空间,推荐用户试用的表空间。
不同应用系统的数据存放在不同表空间中,不同表空间的文件存放在不同的盘上,从而减少I/O冲突,提高系统的操作性能。