《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;

 

移动数据文件

在增加表空间时,如果数据文件所在的磁盘没有足够的空间,这时可以移动数据文件,将该文件存储到另一个磁盘。

移动数据文件操作步骤:

  1. 修改表空间为OFFLINE状态
  2. 复制数据文件到另一个磁盘
  3. 使用ALTER TABLESPACE RENAME语句修改数据文件的名称
  4. 将表空间状态修改为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完全学习手册》 表空间&管理控制文件与日志文件&表 学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

Oracle表空间以

oracle创建序列&索引&视图

Oracle 学习笔记

oracle数据库表空间创建&导入&导出

Oracle12c中容错&性能新特性之表空间组

orcale 11g安装,创建表空间,用户,授权用户