一、Oracle表空间概述
表空间是Oracle数据库中最大的逻辑结构。它提供了一套有效组织数据的方法,是组织数据和进行空间分配的逻辑结构,可以将表空间看做是数据库对象的容器。检点第说,表空间就是一个或多个是数据文件(物理文件)的集合(逻辑文件),所有的数据对象都被逻辑地存放在指定的表空间中。
Oracle的表空间属于Oracle中的存储结构,是一种用于存储数据库对象(如:数据文件)的逻辑空间,是Oracle中信息存储的最大逻辑单元,其下还包含有段、区、数据块等逻辑数据类型。表空间是在数据库中开辟的一个空间,用于存放数据库的对象,一个数据库可以由多个表空间组成。可以通过表空间来实现对Oracle的调优。(Oracle数据库独特的高级应用)
一个数据库通常包括SYSTEM、SYSAUX和TEMP三个默认表空间,一个或多个临时表空间,还有一个撤销表空间和几个应用程序专用的表空间。可以通过创建新的表空间来满足需求,创建时需要决定表空间的类型。
二、Oracle表空间类型
1、系统表空间(System tablespace)
系统表空间包括SYSTEM和SYSAUX表空间,系统表空间是所有数据库必须且自动创建的,一般存放Oracle的数据字典及相应数据。
2、永久表空间(Permanent tablespace)
永久表空间用于保存永久性数据,如系统数据、应用系统数据。每个用户都会被分配一个永久表空间,以便保存其相关数据。除了撤销表空间以外,相对于临时表空间而言,其他表空间就是永久表空间,如系统表空间。
3、临时表空间(Temporary tablespace)
由于Oracle工作时经常需要一些临时的磁盘空间,这些空间主要在查询带有排序(如Group by、Order by等)算法时使用,当用完后就立即释放,对记录在磁盘区的信息不再使用,因此称为临时表空间。一般安装之后只有一个TEMP临时表空间。
4、撤销表空间(Undo tablespace)
从Oracle 9i后,提供了一种全新的撤销空间管理方式,从而使得DBA能够很容易地管理撤销空间,即“自动撤销管理”。而与此相对应,通过回滚端进行撤销空间管理的方式呗称为“手工撤销管理”。自动撤销管理方式也称为SMU(System Managed Undo)方式,而回滚段管理方式称为RBU(Rollback Segments Undo)方式。在Oracle 11g数据库中,系统默认为弃用自动撤销表空间管理方式,同时也支持传统的回滚段管理方式。
在一个数据库中,只能采用一种撤销空间管理方式,而不能同时存在两种撤销空间管理方式。数据库采用哪一种撤销空间管理方式,是由参数UNDO_MANAGEMENT来确定的。如果设置该参数为“AUTO”,在启动数据库时使用SMU方式:如果设置为“MANUAL”,则在启动数据库时使用RBU方式,运行在自动撤销数据来隐式或显示的回退事务、提供数据的度已执行、帮助数据库从逻辑错误中恢复、实现闪回 查询(Flashback Query)。
注意:在SMU方式下,必须在数据库中黄建一个撤销表空间看,Oracle将利用撤销表空间来保存撤销记录。可以在创建数据库的同事建立一个默认的撤销表空间,也可以在数据库创建后再创建新的撤销表空间。
5、大文件表空间和小文件表空间
从Oracle 10g开始,Oracle引入了大文件表空间,这是一个新增的表空间类型。该类型的出现时存储能力有了显著的增强。大文件表空间不想传统的表空间那样由多个数据文件组成。
大文件表空间(bigfile tablespace)是为了超大型数据库而设计的,如果一个超大型数据库具有上千个数据文件,则更新数据文件头部信息(如check-point)的操作可能会花费很长时间。如果使用大文件表空间,可以使用哦大数据文件来减少文件的数量,从而减少更新的时间。
提示:一个大文件表空间对应一个单一的数据文件或临时文件,但是文件可以达到4G数据块大小。理论上当数据块代销为2KB时,大文件表空间可以达到8TB;当数据快大小为4KB时,大文件表空间可以达到32TB。在实际环境中,者还会受到操作系统的文件系统的限制。
小文件表空间(smallfile tablespace)是之前Oracle表空间在Oracle 11g中的新名称,是默认创建的表空间的类型。在小文件表空间中可以防止多达1022个数据文件,一个数据