《Oracle完全学习手册》 表空间&管理控制文件与日志文件&表 学习笔记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《Oracle完全学习手册》 表空间&管理控制文件与日志文件&表 学习笔记相关的知识,希望对你有一定的参考价值。
表空间
表空间是Oracle数据结构中最大的逻辑结构
- 基本表空间
- 临时表空间:排序、汇总过程中产生的临时数据
- 大文件表空间:存储大型数据
- 非标准数据块表空间
- 撤销表空间:存储撤销数据
基本表空间
创建一个名为TEMP0301的表空间
create tablespace temp0301
datafile ‘F:\\SQL\\use0301.dbf‘ size 20m
autoextend on next 10m maxsize unlimited;
create tablespace temp0302
datafile ‘F:\\SQL\\use0302.dbf‘ size 10m
autoextend on next 10m maxsize 100m
extent management local uniform size 800k;
创建一个手动方式管理段的表空间
create smallfile tablespace temp0303
datafile ‘F:\\SQL\\use0303.dbf‘ size 10m
extent management local uniform size 256k
segment space management manual;
修改表空间
为表空间增加新的数据文件
修改数据文件大小
如果需要增大表空间,另一个方法就是增大表空间中已有数据文件的大小。
通过查询数据字典视图DBA_FREE_SPACE,可以了解表空间的空闲分区情况。
select tablespace_name,file_id,block_id,bytes,blocks
from dba_free_space;
alter database datafile ‘F:\\SQL\\use0101.dbf‘
resize 100m;
修改数据文件的自动扩展属性
AUTOEXTEND
表空间的状态属性
通过设置表空间状态们可以对数据的可用性进行限制
- 离线OFFLINE:不能访问表空间中的数据,这个时候可以进行升级和维护
- 在线ONLINE:表空间中的相应数据才能被访问
- 只读READ ONLY (属于在线状态)
- 读写READ WRITE(属于在线状态)
alter
alter tablespace temp0301 offline;
alter tablespace temp0301 online;
alter tablespace temp0301 read write;
移动数据文件
在增加表空间时,如果数据文件所在的磁盘没有足够的空间,这时可以移动数据文件,将该文件存储到另一个磁盘。
移动数据文件操作步骤:
- 修改表空间为OFFLINE状态
- 复制数据文件到另一个磁盘
- 使用ALTER TABLESPACE RENAME语句修改数据文件的名称
- 将表空间状态修改为ONLINE
EXAMPLE:将F盘use0101保存到D盘
将F盘use0101.dbf复制到D盘
alter tablespace temp0301 rename datafile ‘F:\\SQL\\use0101.dbf‘ to ‘D:\\OracleTest\\use0101.dbf‘;
alter tablespace temp0301 online;
删除表空间
DROP TABLESPACE
临时表空间
临时表空间主要用来为排序或者汇总等操作提供临时的工作空间。
创建一个临时表空间TEMP0304
create temporary tablespace temp0304 tempfile ‘F:\\SQL\\temp0304.dbf‘ size 10m autoextend on next 10m maxsize 100m extent management local;
注意:
- 临时表空间只能用于存储临时数据,不能够存储永久性数据
- 由于临时表空间中的文件为临时文件,所以数据字典DBA_DATA_FILES不再记录有关临时文件的信息。而临时文件被存储在数据字典视图V$TEMPFILE中。
临时表空间的盘区管理方式都是UNIFORM,所以在创建临时表空间时,不能使用AUTOALLOCATE关键字制定盘区的管理方式。
修改临时表空间
修改临时表空间主要有以下操作:
- 增加临时文件
- 修改临时文件的大小
- 修改临时文件的状态
增加临时文件
alter tablespace temp0304 add tempfile ‘F:\\SQL\\tempfile0306.dbf‘ size 10m;
修改临时文件大小
alter database tempfile ‘F:\\SQL\\tempfile0306.dbf‘ resize 20m;
还可以修改状态为OFFLINE或ONLINE
临时表空间组
在Oracle 11g中,用户可以创建临时表空间组,一个临时表空间组中可以包含一个或者多个临时表空间。
创建临时表空间组,需要使用GROUP关键字
create temporary tablespace tempgroup tempfile ‘f:\\SQL\\tempgroup0307.dbf‘ size 10m tablespace group group0301;
创建临时表空间组后可以进行如下操作:
得到临时表空间的信息
select * from dba_tablespace_groups;
向临时表空间组增加一个临时表空间
create temporary tablespace groupspace2 tempfile ‘F:\\SQL\\tempgroup0302.dbf‘ size 10m tablespace group group0301;
以上是关于《Oracle完全学习手册》 表空间&管理控制文件与日志文件&表 学习笔记的主要内容,如果未能解决你的问题,请参考以下文章