Oracle表空间的概述

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle表空间的概述相关的知识,希望对你有一定的参考价值。

参考技术A

Oracle表空间之基本概念
ORACLE数据库被划分成称作为表空间的逻辑区域——形成ORACLE数据库的逻辑结构。一个ORACLE数据库能够有一个或多个表空间,而一个表空间则对应着一个或多个物理的数据库文件。表空间是ORACLE数据库恢复的最小单位,容纳着许多数据库实体,如表、视图、索引、聚簇、回退段和临时段等。
每个ORACLE数据库均有SYSTEM表空间,这是数据库创建时自动创建的。SYSTEM表空间必须总要保持联机,因为其包含着数据库运行所要求的基本信息(关于整个数据库的数据字典、联机求助机制、所有回退段、临时段和自举段、所有的用户数据库实体、其它ORACLE软件产品要求的表)。
一个小型应用的ORACLE数据库通常仅包括SYSTEM表空间,然而一个稍大型应用的ORACLE数据库采用多个表空间会对数据库的使用带来更大的方便。
例如:便于理解,把oracle数据库看作一个实在房间,表空间可以看作这个房间的空间,是可以自由分配,在这空间里面可以堆放多个箱子(箱子可以看作数据库文件),箱子里面再装物件(物件看作表)。用户指定表空间也就是你希望把属于这个用户的表放在那个房间(表空间)里面。  表空间是一个虚拟的概念可以无限大,但是需要由数据文件作为载体。
Oracle表空间之作用
表空间的作用能帮助DBA用户完成以下工作:
1.决定数据库实体的空间分配;
2.设置数据库用户的空间份额;
3.控制数据库部分数据的可用性;
4.分布数据于不同的设备之间以改善性能;
5.备份和恢复数据。
用户创建其数据库实体时其必须于给定的表空间中具有相应的权力,所以对一个用户来说,其要操纵一个ORACLE数据库中的数据,应该:
1.被授予关于一个或多个表空间中的RESOURCE特权;
2.被指定缺省表空间;
3.被分配指定表空间的存储空间使用份额;
4.被指定缺省临时段表空间,建立不同的表空间,设置最大的存储容量。

Oracle-表空间管理


万般皆下品、惟有读书高

Oracle-表空间管理_java

文章目录


一、表空间概述

为了便于对数据库进行管理和优化,oracle数据库被划分成许多表空间的逻辑区域,一个oracle数据库有一个或者多个表空间,而一个表空间则对应一个或者多个物理上的数据库文件。表空间和数据文件紧密相连,相互依存,在创建表空间的同时要创建数据文件,同理,增加数据文件的同时也要指定表空间。数据库在物理上由数据文件大小和数量决定,在逻辑上由表空间大小和数量决定。
表空间是数据管理的基本方法,所有用户对象都放在表空间中,即用户有空间的使用权才能创建用户对象,否则不允许创建对象。在创建表空间的同时,需要合理规划表空间的存储设置,分配适当大小的存储空间。

1、表空间的属性

1、类型
2、管理方式
3、区分配方式
4、段管理方式

2、表空间的类型

1、永久性表空间
系统表空间和普通用户使用的表空间默认都是永久性表空间。
2、临时表空间
一般用来存放sql语句处理的表和索引信息,其空间不存放实际的数据。
3、撤销表空间
此类型主要用于事务回滚,提供读一致性。数据库可以同时存在多个撤下表空间,但任一时间只有一个撤销表空间可以被激活。
4、大文件表空间
大文件表空间存放一个单一的数据文件中,单个数据文件最大可达128TB。

3、表空间的状态

1、联机状态
数据只有处于联机状态,才能访问其中的数据。
2、读写状态
默认情况下所有的表空间都是读写状态,具有适当权限的用户可以读写该表空间的数据。
3、只读状态
表空间为只读状态是指用户只能读表空间中数据,不能修改表空间的数据。
4、脱机状态
如果某个表空间设置为脱机转态,是指用户暂时不能访问该表空间。

二、表空间的创建

在实际数据库表空间管理中,可以根据具体应用情况,建立不同类型的表空间,例如用于专门存放表数据的表空间,专门存放索引的表空间等。

1、表空间的创建语法

create tablespace tablespace_name
datafile file_name datafile_options
storage_options

其中:tablespace_name为要创建的表空间名称,file_name为对应的数据文件名称,datafile_options是数据文件选项,Storage_options是存储结构选项。

2、创建一个永久性的表空间,设置表空间的初始大小为100MB,自动扩展为100MB,无最大大小限制,并且该表空间为在线状态,产生日志

create tablespace tspace 1 datafile c:\\oracle\\tspace1.dbf size 100m
autoextend on next 100m maxsize unlimited logging online permanent;

三、表空间维护

1、设置默认表空间

创建一个新用户,如果不指定表空间,则默认的永久表空间是system,默认的临时表空间是temp,这样如果存在多个用户,那么各个用户都要竞争使用system和temp表空间,会大大影响oracle系统的效率,数据库管理员可以修改默认永久表空间和临时表空间,基本语法如下所示。

alter database default [temporary]

案例:把临时表空间tspace4修改为默认临时表空间

alter database default temporary tablespace tspace4;

案例:把tspace3修改为默认永久表空间。

alter database default tablespace tspace3;

2、重命名表空间

案例:将表空间tspace3修改为tspace3_1

alter tablespace tspace3 renatspaceme to tspace3_1;

3、修改表空间的状态

修改tspace为联机状态

alter tablespace tspace online;

设置表空间tspace为脱机状态

alter tablespace tspace offline;

设置表空间tspace为只读状态

alter tablespace tspace read only;

设置表空间tspace为读写状态。

alter tablespace tspace read write;

4、修改表空间对应数据文件的大小

语法如下

alter database datafile 数据文件 resize 新文件大小

修改表空间tspace7对应的其中一个数据文件大小

alter database datafile c:\\oracle\\tspace7_1.dbf resize 100MB;

5、增加表空间的数据文件

alter tablespace 表空间名称 add datafile 数据文件 size 文件大小;

6、删除表空间的数据文件

alter tablespace 表空间名称 drop datafile 数据文件名称;

7、修改数据文件为自动扩展

将表空间tspace7的数据文件设置为自动扩展

alter database datafile c:\\oracle\\tspace7_3.dbf autoextend on next 10MB;

8、修改数据文件的名称或位置

alter tablespace 表空间名称 rename datafile 数据文件名称 to 新数据文件名称

9、表空间的备份

alter tablespace tspace 1 begin backup;

10、删除表空间

drop tablespace tspace7;

四、表空间查询

查询表空间的名称、区的管理方式、段的管理方式和表空间类型等信息。

select tablespace_name,extent_management,allocation_type,contents from dba_tablespaces;

查看表空间的名字、所属文件和空间大小

select tablespace_name,file_name,round(bytes/(1024*1024),0) total_space from dba_data_files;

五、总结

这里的相关内容还没有整理完毕,文章后面持续更新,建议收藏。

文章中涉及到的命令大家一定要像我一样每个都敲几遍,只有在敲的过程中才能发现自己对命令是否真正的掌握了。

以上是关于Oracle表空间的概述的主要内容,如果未能解决你的问题,请参考以下文章

oracle学习笔记 undo表空间概述

Oracle表空间基础

Oracle-表空间管理

Oracle tablespace 表空间创建和管理

Oracle数据库的表空间基本管理

数据库表空间概念介绍