Oracle 数据库表空间的管理

表空间管理概述

1.表空间分类
  1. 按构成文件

    大文件表空间:只能包含1个大文件(最大尺寸为128 TB)

    小文件表空间:可包含多个数据文件(默认)

  2. 按表空间用途:系统表空间、撤销表空间、临时表空间、数据表空间、索引表空间等

  3. 按数据特性:永久表空间、临时表空间、撤销表空间

2.表空间的特性
  1. 一个表空间的大小由其数据文件大小决定
  2. 方案对象可以跨表空间的数据文件存储,但不能跨表空间存储

创建表空间

1.创建表空间的相关规定与概念
  1. 表空间名称不能超过30个字符,必须以字母开头,可以包含字母、数字以及一些特殊字符(如#、_、$)等
  2. 表空间的类型包括普通表空间、临时表空间和撤销表空间
  3. 表空间中区的分配方式包括两种方式:自动扩展(AUTOALLOCATE)和定制(UNIFORM)
2.创建表空间命令语法

CREATE [ SMALLFILE | BIGFILE ] [ TEMPORARY | UNDO ] TABLESPACE tablespace_name

[ DATAFILE|TEMPFILE ] ‘path/filename’ [ SIZE integer[ K | M ]] [ REUSE ]

[ AUTOEXTEND [ OFF∣ON [ NEXT integer [ K∣M ] ] [ MAXSIZE [ UNLIMITED∣integer [ K∣M ] ] ] ]

[ ONLINE | OFFLINE ] [ LOGGING | NOLOGGING ] SEGMENT SPACE MANAGEMENT [ MANUAL | AUTO ]

[ EXTENT MANAGEMENT [ DICTIONARY | LOCAL [ AUTOALLOCATE | UNIFORM [ SIZE integer [ K | M ] ] ] ]

[ DEFAULT STORAGE storage_clause ]

参数说明
BIGFILE大文件表空间
SMALLFILE小文件表空间,默认值,一般不设置该参数
PERMANENT创建永久表空间,Oracle默认设置
TEMPORARY创建临时表空间
tablespace_name指定表空间名称,必须以字母开头,不能超过30个字符
DATAFILE | TEMPFILE包括表空间对应数据文件或临时文件的名称、初始大小和可变化规则
path/filename文件路径和文件名
integer大于0的整数
K/M指定生成数据文件的初始大小,单位为KB或MB
REUSE表示数据文件是否被重用
AUTOEXTEND表明数据文件是否自动拓展
OFF | ON表示数据文件自动拓展是否被关闭,OFF为关闭,ON为打开
NEXT表示当数据文件自动拓展打开后,数据文件满了以后拓展的大小
MAXSIZE [ UNLIMITED ]表示数据文件的最大值,UNLIMITED表示无限的表空间,不推荐
MAXSIZE [integer [ K∣M ] ]表示数据文件的最大值
ONLINE | OFFLINE指定表空间生成以后的状态,ONLINE立即处于联机,OFFLINE立即处于脱机
LOGGING | NOLOGGINGLOGGING在重做日志下保存记录,NOLOGGING不保存记录
3.创建临时表空间

注意:临时表空间中区的分配方式只能是UNIFORM,而不能是AUTOALLOCATE,因为这样才能保证不会在临时段中产生过多的存储碎片

4.查询表空间信息(数据字典)
  1. DBA_TABLESPACES:数据库中所有表空间的信息

  2. DBA_FREE_SPACE:所有表空间中空闲区的信息

  3. DBA_DATA_FILES:数据文件及其所属表空间信息

  4. DBA_TEMP_FILES:临时文件及其所属表空间信息

  5. V$TABLESPACE:从控制文件得到的所有的表空间的名称和数量

  6. V$DATAFILE:所有的数据文件的信息,包括拥有表空间的数量

  7. V$TEMPFILE:所有的临时文件信息,包括拥有表空间的数量

管理表空间

1.修改表空间的容量
  1. 为表空间增加数据文件

    ALTER TABLESPACE tablespace_name

    ADD [ DATAFILE | TEMPFILE ] ‘path/filename’ [ SIZE integer [ K | M ] ] … ;

  2. 改变数据文件大小

    ALTER DATABASE [ database ]

    DATAFILE ‘path/filename’ RESIZE integer [ K | M ] ;

  3. 改变数据文件的扩展方式

    ALTER DATABASE DATAFILE ‘path/filename’

    [ AUTOEXTEND [ OFF | ON [ NEXT integer [ K | M ] ]

    [ MAXSIZE [ UNLIMITED | integer [ K | M ] ] ] ;

    (1) 如果在创建表空间或为表空间增加数据文件时没有指定AUTOEXTEND ON选项,则该文件的大小是固定的

    (2) 如果为数据文件指定了AUTOEXTEND ON选项,当数据文件被填满时,数据文件会自动扩展

    (3) 注意:尽管可以设置MAXSIZE UNLIMITED,但应总是规定一个文件的最大尺寸值。否则,使用磁盘设备上全部可用空间的事务将造成数据库故障。

  4. 删除表空间数据文件

    ALTER TABLESPACE tablespace_name

    DROP DATAFILE ‘path/filename’ ;

    注意:不能够删除表空间中的第一个数据文件,如果将第一个数据文件删除的话,相当于删除了整个表空间

2.修改表空间可用性
  1. 离线状态的表空间是不能进行数据访问的,所对应的所有数据文件也都处于脱机状态
  2. 一些表空间必须是在线状态:SYSTEM表空间;存放在线回退信息的撤销表空间(UNDO表空间);临时表空间
  3. 基本语法:ALTER TABLESPACE tablespace_name ONLINE | OFFLINE
3.修改表空间读写性
  1. 表空间只有满足下列要求才可以转换为只读状态

    (1) 表空间处于联机状态

    (2) 表空间中不能包含任何活动的回退段

​ (3) 如果表空间正在进行联机数据库备份,不能将它设置为只读状态

  1. 基本语法:ALTER TABLESPACE tablespace_name READ ONLY|READ WRITE

删除表空间

1.删除表空间
  1. 基本语法

    DROP TABLESPACE tablespace_name

    [ INCLUDING CONTENTS [ AND DATAFILES ]

    [ CASCADE CONSTRAINTS ] ;

  2. 注意:数据库级的默认表空间不能删除,用户级的可以删除

  3. 删除数据库级的默认表空间,Oracle会报错:ORA12919:不能删除默认永久表空间

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值