1、Oracle 表空间介绍
ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。
便于理解,把oracle数据库看作一个实在房间,表空间可以看作这个房间的空间,是可以自由分配,在这空间里面可以堆放多个箱子(箱子可以看作数据库文件),箱子里面再装物件(物件看作表)。用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面。
表空间是一个虚拟的概念可以无限大,但是需要由数据文件作为载体。
2、Oracle表空间的特性:
(1)控制数据库数据磁盘分配;
(2)限制用户在表空间中可以使用的磁盘空间大小;
(3)表空间具有 online, offline, readonly, readwrite属性。
3、表空间的分类:
永久表空间:数据库中要永久化存储的一些对象,如:表、视图、存储过程
临时表空间:数据库操作当中中间执行的过程,执行结束后,存放的内容会被自动释放
UNDO表空间:用于保存事务所修改数据的旧值,可以进行数据的回滚
其他逻辑结构:
Segment(段)是指占用数据文件空间的通称,或数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。
Extent(区间/扩展),分配给对象(如表)的任何连续块叫区间;区间也叫扩展,因为当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区间(即扩展一些块);一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象。
DATA BLOCK(数据块)是ORACLE最小的逻辑组成部分。ORACLE存储数据的最小单位。
4、相关操作
1.创建表空间
create [temporary] tablespace tbalespace_name tempfile|datafiel 'xx.dbf' size xx;
2.扩大表空间
select f.* from dba_data_files f where f.tablespace_name='MLT';
--查看表空间信息
alter tablespace MLT
add datafile '/home/oracle/oradata/crm/mlt04.dbf'
size 100M
autoextend on
3.修改表空间状态
alter table space tablespace_name online|offline;
4.删除表空间
drop tablespace tablespace_name[including contents and datafiels] [cascade contraints] ;
5.查询相关视图
select * from dba_data_files;
select * from dba_temp_files;
select * from dba_free_space;
select * from dba_segments;