表空间基本概念
1. 表空间:是数据库的逻辑存储空间。可以理解为,在数据库当中开辟的一个空间,用于存放数据库的对象。
2. 一个数据库可以由多个表空间构成。
3. oracle中的表空间概念是与MySQL、SQL Server等数据库的一个重要区别;oracle的很多优化都是通过表空间实现的
4. 表空间与数据文件关系:表空间是由一个或多个数据文件构成的,数据文件的位置和大小可以由用户自己定义。
表空间的分类
1. 永久表空间:数据库中要永久化存储的一些对象,如:表、视图、存储过程
2. 临时表空间:数据库操作当中中间执行的过程,执行结束后,存放的内容会被自动释放
3. UNDO表空间:用于保存事务所修改数据的旧值,可以进行数据的回滚
查看用户的表空间
1. 概念:
dba_tablespaces(系统用户)user_tablespaces (普通用户)默认表空间共六个
sys: sys表、存储过程、视图等数据对象,存放系统信息 -- 系统表空间
sysaux: example辅助表空间
undotbs1: 数据库撤销信息undo类型的表空间
temp: SQL语句处理的表、索引信息 --临时存储
users: 数据库用户使用的数据库对象--永久存储
example: 安装oracle数据库实例
2. 操作:
查看数据库全库表空间中的字段信息desc dba_tablespaces
查看数据库中包含的对应类型的表空间详细信息select tablespace_name from dba_tablespaces
查看普通用户表空间中的字段信息desc user_tablespaces
查看普通用户包含的对应类型的表空间详细信息select tablespace_name from user_tablespaces
查看系统用户名下对应的默认表空间和临时表空间的详细信息(这里以system为例)Select default_tablespace,temporary_tablespace from dba_user whereusername='SYSTEM';(SYSTEM要大写)
设置用户的默认或临时表空间alteruser 用户名 default(temporary )tablespace 表空间名
创建表空间
1. 创建永久表空间和临时表空间
create [temporary] tablespace tablespace_name tempfile | datafile'xx.dbf' size xx
不指定路径,默认安装到oracle安装目录下
2. 在不知道默认路径的情况下查看表空间
desc dba_data_files查看永久表空间数据字典字段
desc dba_temp_files查看临时表空间数据字典字段
select file_name from dba_data_files where tablespace_name='表空间名字要大写';查看永久表空间数据文件
select file_name from dba_temp_files where tablespace_name='表空间名字要大写';查看临时表空间数据文件
修改表空间
1. 修改表空间的状态
设置联机或脱机状态ALTER TABLESPACE tablespace_name ONLINE|OFFLINE
查看表空间状态SELECTSTATUS FROM dba_tablespaces WHERE tablespaces_name=’ 表空间名字要大写’;
2. 设置只读或可读写状态
ALTER TABLESPACE tablespace_name READ ONLY|READ WRITE(联机才可以设置,读写状态就是online状态)
修改数据文件
1. 增加数据文件
ALTER TABLESPACE tablespace_name ADD DATAFILE ‘xx.dbf’ SIZExx;
2. 删除数据文件
ALTER TABLESPACE tablespace_name DROP DATAFILE ‘filename.dbf’;(不能删除创建表空间时的创建的第一个数据文件,如果要删除第一个数据文件要把整个表空间删掉)
删除表空间
DROP TABLESPACE tablespace_name [INCLUDING CONTENTS];