一、表空间概念
oracle 表空间是一个逻辑概念,创建时需要指定物理文件,及实际数据分配磁盘空间,一个数据库由多个表空间组成,一个表空间可以对应多个数据文件
二、 表空间的分类
表空间包含3种表空间:永久表空间、临时表空间、undo表空间
永久表空间:用于存储永久化存放的东西,如:表、视图
临时表空间:用于存储数据库操作当中中间执行的过程,当执行结束自动释放数据(系统自带的临时表空间TEMP)
undo表空间:用于保存事务所修改数据的旧值,被修改之前的数据,可以对数据进行回滚及撤销操作(系统自带的undo表空间UNDOTBS1)
备注:普通用户一般默认的表空间为USERS,sys和system用户默认的表空间为SYSTEM
修改用户默认或临时表空间 :alter user 用户名 default|temporary tablespace 表空间名;例如:alter user scott default tablespace system;(管理员才有权更改)
查看用户的默认表空间和临时表空间可以在数据字典dba_users中查看,查看当前用户的信息可在user_users中查看
三、表空间的创建
3.1 、永久|临时表空间的创建永久表空间:create tablespace 表空间名 datafile 文件名 size 文件大小(文件后缀名为.dbf,若要一次性创建多个数据文件,文件大小后用逗号隔开)
临时表空间:create temporary tablespace 表空间名 tempfile 文件名 size 文件大小(文件后缀名为.dbf)
例如:create tablespace test1 datafile 'test1file.dbf' size 10m;
create temporary tablespace temptest1 tempfile 'temptest1file.dbf' size 10m;
create tablespace test1 datafile 'test1file.dbf' size 10m,'test2file.dbf' size 10m;
数据字典:dba_data_files(永久表空间)dba_temp_files(临时表空间)
3.2、 数据文件的扩展
数据文件的扩展:create tablespace 表空间名 datafile 文件名 size 文件大小 autoextend on
关闭数据文件扩展:create tablespace 表空间名 datafile 文件名 size 文件大小 autoextend off
例如:create tablespace test1 datafile 'test1file.dbf' size 10m autoextend on;create tablespace test1 datafile 'test1file.dbf' size 10m autoextend off;
3.3、扩展的长度及最大尺寸
指定数据文件的增长长度及最大尺度:create tablespace 表空间名 datafile 文件名 size 文件大小 autoextend on next 增长长度 maxsize 最大尺度
例如:create tablespace test1 datafile 'test1file.dbf' size 10m autoextend on next 5m maxsize 500m;
若不限制最大尺寸,maxsize 设置为unlimited例如:create tablespace test1 datafile 'test1file.dbf' size 10m autoextend on next 5m maxsize unlimited;
四、表空间的修改
4.1、表空间名字修改修改表空间名:alter tablespace 旧表空间名 rename to 新表空间名
例如:alter tablespace test1 rename to test2;
4.2、表空间状态修改设置联机或脱机状态
设置联机状态(默认读写状态):alter tablespace 表空间名online
设置脱机状态:aleter tablespace 表空间名 offline
例如: alter tablespace test1 offline;
alter tablespace test1 online;
设置只读或可读写状态(必须联机状态)
设置只读状态:alter tablespace 表空间名 read only
设置可读写状态:alter tablespace 表空间名 read write
例如: alter tablespace test1 read only;
alter tablespace test1 read write;备注: 在数据字典dba_tablespaces中查看修改的状态4.3、数据文件修改
增加数据文件:alter tablespace 表空间名 add datafile '文件名' size 文件大小
删除数据文件:alter tablespace 表空间名 drop datafile '文件名' (不能删除第一个数据文件,若要删除第一个数据文件,必须删除整个表空间)
例如:alter tablespace test1 add datafile 'addtest1.dbf' size 10m;alter tablespace test1 drop datafile 'addtest1.dbf';五、表空间的删除
只删除表空间,不删除数据文件:drop 表空间名
删除表空间和数据文件:drop 表空间名 including contents and datafiles例如:drop tablespace test1;
drop tablespace test1 including contents and datafiles;
备注:涉及到的数据字典有:dba_tablespaces、user_tablespaces、dba_data_files、dba_temp_files、dba_users、user_users