Oracle-表空间管理
Posted wx627906ecc7dbc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle-表空间管理相关的知识,希望对你有一定的参考价值。
万般皆下品、惟有读书高
文章目录
- 1、设置默认表空间
- 2、重命名表空间
- 3、修改表空间的状态
- 4、修改表空间对应数据文件的大小
- 5、增加表空间的数据文件
- 6、删除表空间的数据文件
- 7、修改数据文件为自动扩展
- 8、修改数据文件的名称或位置
- 9、表空间的备份
- 10、删除表空间
一、表空间概述
为了便于对数据库进行管理和优化,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-表空间管理的主要内容,如果未能解决你的问题,请参考以下文章