表空间

作者: lingoling | 来源:发表于2017-11-04 12:06 被阅读0次

一、表空间概念

oracle 表空间是一个逻辑概念,创建时需要指定物理文件,及实际数据分配磁盘空间,一个数据库由多个表空间组成,一个表空间可以对应多个数据文件

二、 表空间的分类

表空间包含3种表空间:永久表空间、临时表空间、undo表空间

永久表空间:用于存储永久化存放的东西,如:表、视图

临时表空间:用于存储数据库操作当中中间执行的过程,当执行结束自动释放数据(系统自带的临时表空间TEMP)

undo表空间:用于保存事务所修改数据的旧值,被修改之前的数据,可以对数据进行回滚及撤销操作(系统自带的undo表空间UNDOTBS1)

备注:普通用户一般默认的表空间为USERS,sys和system用户默认的表空间为SYSTEM

修改用户默认或临时表空间 :alter user 用户名 default|temporary tablespace 表空间名;例如:alter user scott default tablespace system;(管理员才有权更改)

查看用户的默认表空间和临时表空间可以在数据字典dba_users中查看,查看当前用户的信息可在user_users中查看

三、表空间的创建

3.1 、永久|临时表空间的创建永久表空间:create tablespace 表空间名 datafile 文件名 size 文件大小(文件后缀名为.dbf,若要一次性创建多个数据文件,文件大小后用逗号隔开)

临时表空间:create temporary tablespace 表空间名 tempfile 文件名 size 文件大小(文件后缀名为.dbf)

例如:create tablespace test1 datafile 'test1file.dbf' size 10m;

create temporary tablespace temptest1 tempfile 'temptest1file.dbf' size 10m;

create tablespace test1 datafile 'test1file.dbf' size 10m,'test2file.dbf' size 10m;

数据字典:dba_data_files(永久表空间)dba_temp_files(临时表空间)

3.2、 数据文件的扩展

数据文件的扩展:create tablespace 表空间名 datafile 文件名 size 文件大小 autoextend on

关闭数据文件扩展:create tablespace 表空间名 datafile 文件名 size 文件大小 autoextend off

例如:create tablespace test1 datafile 'test1file.dbf' size 10m autoextend on;create tablespace test1 datafile 'test1file.dbf' size 10m autoextend off;

3.3、扩展的长度及最大尺寸

指定数据文件的增长长度及最大尺度:create tablespace 表空间名 datafile 文件名 size 文件大小 autoextend on next 增长长度         maxsize 最大尺度

例如:create tablespace test1 datafile 'test1file.dbf' size 10m autoextend on next 5m maxsize 500m;

若不限制最大尺寸,maxsize 设置为unlimited例如:create tablespace test1 datafile 'test1file.dbf' size 10m autoextend on next 5m maxsize unlimited;

四、表空间的修改

4.1、表空间名字修改修改表空间名:alter tablespace 旧表空间名 rename to 新表空间名

例如:alter tablespace test1 rename to test2;

4.2、表空间状态修改设置联机或脱机状态

设置联机状态(默认读写状态):alter tablespace 表空间名online

设置脱机状态:aleter tablespace 表空间名 offline

例如: alter tablespace test1 offline;

alter tablespace test1 online;

设置只读或可读写状态(必须联机状态)

设置只读状态:alter tablespace 表空间名 read only

设置可读写状态:alter tablespace 表空间名 read write

例如: alter tablespace test1 read only;

alter tablespace test1 read write;备注: 在数据字典dba_tablespaces中查看修改的状态4.3、数据文件修改

增加数据文件:alter tablespace 表空间名 add datafile '文件名' size 文件大小

删除数据文件:alter tablespace 表空间名 drop datafile '文件名' (不能删除第一个数据文件,若要删除第一个数据文件,必须删除整个表空间)

例如:alter tablespace test1 add datafile 'addtest1.dbf' size 10m;alter tablespace test1 drop datafile 'addtest1.dbf';五、表空间的删除

只删除表空间,不删除数据文件:drop 表空间名

删除表空间和数据文件:drop 表空间名 including contents and datafiles例如:drop tablespace test1;

drop tablespace test1 including contents and datafiles;

备注:涉及到的数据字典有:dba_tablespaces、user_tablespaces、dba_data_files、dba_temp_files、dba_users、user_users

相关文章

  • 表空间

    查看默认表空间 更改默认表空间 创建表空间: 查看表空间位置: 更改表空间状态 查看表空间状态 表空间增加/删除数...

  • Oracle | 表空间、临时表空间、数据文件

    一、表空间和临时表空间 二、表空间和数据文件 三、维护表空间 1. 创建表空间 2. 创建临时表空间 3. 向表空...

  • Oracle DDL语句

    创建表空间 删除表空间 创建表空间下用户 授权

  • 数据库备份恢复(本地)

    当前表空间所有表 当前表空间所有表 指定表

  • InnoDB架构之磁盘结构

    page(逻辑) page应用于InnoDBb表空间包括:系统表空间、单表文件表空间、常规表空间; page_si...

  • 创建表空间及用户

    临时表空间 数据表空间 创建用户 赋予权限 查询所有用户 查询所有临时表空间 查询所有表空间 删除用户 删除表空间...

  • Oracle 查询表空间状态

    查询表空间状态 添加表空间 表空间物理位置信息

  • 数据库表空间

    -- 1.查询表空间空间 SELECT a.tablespace_name "表空间名", total "表空间大...

  • 浅谈MySQL中的ibdata1

    前言:InnoDB中有共享表空间和独立表空间的概念。共享表空间就是ibdata1,独立表空间放在每个表的.ibd(...

  • 表空间

    系统表空间独立表空间临时表空间 #5.7+undo tablespace #5.6+Genera...

网友评论

      本文标题:表空间

      本文链接:https://www.haomeiwen.com/subject/rjufmxtx.html