【Oracle学习】之 表空间

来源:互联网 发布:云之家软件 编辑:程序博客网 时间:2024/05/16 09:34


-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_tablespacesselect 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_filesselect 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)删除表空间

DROP TABLESPACE tablespace_name [INCLUDING CONTENTS]
若删除表空间时,连带删除表空间中的文件,则加INCLUDING CONTENTS

这里写图片描述

1 0