


表空间的基本概念



Oracle表空间是数据库的一种逻辑存储结构,由多个表空间组成,而表空间又是由多个段组成,段由多个数据区组成,数据区又是由多个数据块组成。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。





段
段是有一个或者多个数据区构成,它不是存储单位,而是一个独立的逻辑存储结构,用于存储表,索引占用空间的对象.一个段只属于一个特定的数据对象.段又分为数据段,索引段,回滚段,临时段.

数据区
也称为数据扩展区,是由一组数据块构成的存储结构,Oracle就以数据区为单位进行存储控件的扩展.使用数据区的目的就是用来保存特定数据类型的数据,分配存储空间就是以数据区为单位的

数据块
是Oracle逻辑存储结构中的最小的逻辑单位,也是数据库输入/输出操作的最小储存单位.Oracle数据存放在Oracle数据块中,而不是操作系统块.通常Oracle数据块是操作系统块的整数倍.数据块中可以存放表数据和簇数据.





数据库有多个表空间及其作用

SYSTEM:存放数据字典和内部数据。 SYSAUX:SYSTEM的辅助表空间,主要存储除数据字典以外的其它数据对象,在一定程度上降低了SYSTEM表空间的负荷。 用户可以对SYSAUX表空间进行增加数据文件和监视等操作,但不能对其执行删除,重命名或设置只读。 TEMP:存放SQL语句处理的表和索引的信息。 UNDOTBS1:存放撤销数据的表空间。 USERS:通常存放应用系统所使用的数据库对象。





本地化管理方式创建表空间

本地化的扩展有自动大小和等同大小。





段空间管理方式创建表空间

在本地管理的基础上还有段空间管理方式创建表空间,分为手工段和自动段。
手工段:空间管理方式是为了向后兼容而保留的,它使用自由块列表和PCT_FREE与PCT_USED参数来标识供插入操作使用的数据块;
自动段:使用位图而不是自由列表来标识哪些数据块可以用来插入,哪些数据块需要从自由列表上将其取下。





大文件表空间

大文件表空间是为超大型数据库而设计的,并且只有一个数据文件,这是与常规的表空间最大区别,注意两个的问题,其一是Bigfile Tablespace必须使用local本地extent管理方式,另一方面是段segment空间使用auto自动方式,不要使用manual。




表空间不足处理方法

如遇到表空间不足,错误代码ORA-01653: unable to extend table 等,一般原因是因为初始表空间较小,储存空间不足;




--END--