【Oracle学习】之 表空间

前端之家收集整理的这篇文章主要介绍了【Oracle学习】之 表空间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


-Question:表空间是什么,为什么引入,有什么用?
  -表空间是Oracle 11g对数据库文件的称呼,可把它看作表驻留的空间。
  -为了合理管理业务数据、索引数据、临时信息及回退信息,需要创建不同类型的表空间。
  -简化对数据文件的管理

表空间

(1)概念:

  表空间是数据库的逻辑存储空间,可以理解为在数据库中开辟的一个空间,用于存放数据库的对象,数据库可以由多个表空间组成,而表空间则是由一个或者多个数据文件来组成的,数据文件是物理存储空间

1.一个数据库可以由多个表空间构成。
2.oracle中的表空间概念是与MysqLsql 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)删除表空间

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

原文链接:https://www.f2er.com/oracle/210424.html

猜你在找的Oracle相关文章