-Question:表空间是什么,为什么引入,有什么用?
-表空间是Oracle 11g对数据库文件的称呼,可把它看作表驻留的空间。
-为了合理管理业务数据、索引数据、临时信息及回退信息,需要创建不同类型的表空间。
-简化对数据文件的管理
表空间
(1)概念:
表空间是数据库的逻辑存储空间,可以理解为在数据库中开辟的一个空间,用于存放数据库的对象,数据库可以由多个表空间组成,而表空间则是由一个或者多个数据文件来组成的,数据文件是物理存储空间
1.一个数据库可以由多个表空间构成。
2.oracle中的表空间概念是与MysqL、sql Server等数据库的一个重要区别:oracle的很多优化都是通过表空间实现的
3.表空间:是由一个或多个数据文件构成的,数据文件的位置和大小可以由用户自己定义。表空间的分类:
1.永久表空间:数据库中要永久化存储的一些对象,如:表、视图、存储过程
2.临时表空间:数据库操作当中中间执行的过程,执行结束后,存放的内容会被自动释放
3.UNDO表空间:用于保存事务所修改数据的旧值,可以进行数据的回滚
(2)查看用户的表空间:
dba_tablespaces 和 user_tablespaces 数据字典
dba_users 和 user_users数据字典
desc dba_tablespaces
select tablespace_name from dba_tablespaces;
权限大的能访问权限小的表空间,反之则不行。比如:
(3)设置用户的默认或临时表空间
ALTER USER username DEFAULT|TEMPORARY TABLESPACE tablespace_name
普通用户没有设置表空间的权限
(4)创建表空间
格式:
CREATE [TEMPORARY] TABLESPACE
tablespace_name
TEMPFILE|DETAFILE ‘xx.dbf’ SIZE xx
create tablespace test1_tablespace datafile 'test1file.dbf' size 10m;
create temporary tablespace temptest1_tablespace tempfile 'tempfile1.dbf' size 10m;
查看默认情况下的表空间位置
desc dba_data_files
select file_name from dba_data_files where tablespace_name = 'TEST1_TABLESPACE';
//显示的是默认情况下创建表空间文件存放的位置
(5)修改表空间
-修改表空间的状态
设置联机或脱机状态
ALTER TABLESPACE tablespace_name ONLINE|OFFLINE;
设置只读或可读写状态
ALTER TABLESPACE tablespace_name READ ONLY|READ WRITE
(脱机是不能更改其属性的。)
alter tablespace test1_tablespace offline;
desc dba_tablespaces
select status from dba_tablespaces where tablespace_name = 'TEST1_TABLESPACE';
alter tablespace test1_tablespace online;
select status from dba_tablespaces where tablespace_name = 'TEST1_TABLESPACE';
alter tablespace test1_tablespace read only;
select status from dba_tablespaces where tablespace_name = 'TEST1_TABLESPACE';
alter tablespace test1_tablespace read write;
select status from dba_tablespaces where tablespace_name = 'TEST1_TABLESPACE';
-修改数据文件
= 增加数据文件
ALTER TABLESAPCE tablespace_name ADD DATAFILE ‘xx.dbf’SIZE xx;= 删除数据文件
ALTER TABLESAPCE tablespace_name DROP DATAFILE ‘xx.dbf’SIZE xx;
不能删除表空间第一个数据文件,即创建表空间时候创建的数据文件,若果要删除则要把表空间删除
alter tablespace test1_tablespace add datafile 'test2_file.dbf' size 10m;
select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE';
alter tablespace test1_tablespace drop datafile 'test2_file.dbf';
select file_name from dba_data_files where tablespace_name='TEST1_TABLESPACE';
(6)删除表空间
原文链接:https://www.f2er.com/oracle/210424.htmlDROP TABLESPACE tablespace_name [INCLUDING CONTENTS]
若删除表空间时,连带删除表空间中的文件,则加INCLUDING CONTENTS