美文网首页数据库相关
Oracle | 表空间、临时表空间、数据文件

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

作者: Ada54 | 来源:发表于2019-05-23 15:39 被阅读9次

一、表空间和临时表空间

二、表空间和数据文件

三、维护表空间

1. 创建表空间

2. 创建临时表空间

3. 向表空间添加数据文件

4. 删除表空间


一、表空间和临时表空间

表空间:数据库的逻辑存储结构,用来存储数据表、索引等数据对象。任何对象在创建时都需要指定存在哪个表空间。每个数据库至少有一个表空间,如SYSTEM表空间。

临时表空间:用来存储临时段,临时段的创建通常与排序之类的操作有关,当该空间完成排序操作后oracle系统会自动释放。我们常用的几个操作有用到临时空间,如:select distinct 不重复检索、union联合查询、minus差值计算等。

二、表空间和数据文件

表空间:数据库的逻辑存储结构

数据文件:数据库的物理存储结构

两者关系:

(1)每个表空间由一个或许多个数据文件组成,一个数据文件只能属于一个表空间

(2)创建表空间时一定要创建数据文件,增加数据文件时也需指定表空间

三、维护表空间

1. 创建表空间

step1:查询用户表空间的数据文件

SQL> select name from v$datafile;

可看到系统中存在的数据文件,且数据文件的存储路径:/u01/app/oracle/oradata/ORA11GRZ/。得到数据文件的存储路径,在创建表空间时需要路径来创建对应的数据文件。

step2:创建表空间 bdi_data,数据文件 bdi_data.dbf

SQL> create tablespace bdi_data datafile '/u01/app/oracle/oradata/ORA11GRZ/bdi_data.dbf'  size 100M reuse   

          autoextend on next 40M //数据文件每次自动扩展为40m

          maxsize unlimited //不限制数据文件扩展

          default storage(initial 128k next 128k minextents 2 maxextents unlimited);

           //initial分配给表(段)的初始区的大小; next 第二个区的大小; minextents 指定创建表时,至少要分配多少个区给这个表(段);maxextents 指定可以给这个表(段)区的最大数量

以上是基本创建一个表空间,创建表空间的完整语法如下:

create [ smallfile | bigfile ] tablesapce tablespace_name datafile 'path/filename.dbf' size num[k/m] reuse     // reuse表示文件存在则清除重建,不存在则创建

[ autoextend [on/off ] next num[k/m] ]  // on自动扩展,需设置next值;off 非自动扩展

[ maxsize [unlimited | num[k/m] ] ]  //自动扩展指定文件扩展最大字节数

[ mininum extent num[k/m] ] //指定最小长度,由操作系统和数据库的块决定

[ default storage storage ] // 指定表、索引等的存储参数值

[ online | offline ] //创建表空间可指定为在线or离线

[ logging | nologging ] //表空间的表在加载数据时是否产生日志,默认为logging

[ permanent | temporary ] //表空间是永久表空间or临时表空间,默认为永久

[ extent management dictionary|local [ autoalllocate | uniform size num[k/m] ] ]

// 表空间的扩展方式是使用数据字典管理 or 本地化管理,默认为本地化管理。oracle不推荐使用数据字典管理表空间。若为本地化管理,autoalllocate | uniform size表示在表空间扩展时,每次盘区扩展的大小是由系统自动指定还是按照等同大小进行。

2. 创建临时表空间

step1:查询用户临时表空间的数据文件

SQL> select name from v$tempfile;

临时表空间的存储位置: /u01/app/oracle/oradata/ORA11GRZ/

step2:创建临时表空间 bdi_temp,数据文件 bdi_temp.dbf

SQL> create temporary tablespace bdi_temp tempfile '/u01/app/oracle/oradata/ORA11GRZ/bdi_temp.dbf.bdf'  size 100m reuse

          autoextend on next 20m //数据文件每次自动扩展为40m

          maxsize unlimited;  //不限制数据文件扩展

3. 向表空间添加数据文件

【例】向表空间 bdi_data 添加一个数据文件 bdi_data02.dbf,支持自动扩展,每次扩展40 M,且最大空间不受限制

SQL> alter tablespace bdi_data add datafile '/u01/app/oracle/oradata/ORA11GRZ/bdi_data02.dbf' size 100M  autoextend on next 40M maxsize unlimited;

4. 删除表空间

【例】删除表空间 bdi_data 中的数据文件 bdi_data02.dbf

SQL>alter tablespace bdi_data drop datafile '/u01/app/oracle/oradata/ORA11GRZ/bdi_data02.dbf';

相关文章

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

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

  • Oracle和Mysql的区别

    Oracle中的永久表空间其实就是oracle里面的数据文件 创建完永久表空间之后,创建用户,用户构建好之后,可以...

  • Oracle创建表空间创建用户和用户授权

    Oracle创建表空间创建用户和用户授权 --创建表空间 --创建临时表空间 --创建用户 --用户授权grant...

  • 创建表空间和用户

    oracle em地址: 创建临时表空间 创建数据表空间 创建用户并指定表空间 给用户授予权限 增加表空间大小 删...

  • ORACLE用户、表空间、临时表空间管理

    工具:PLSQL 整理一下之前使用oracle数据库时初始化表空间的一些操作,我习惯使用PLSQL工具,操作过程其...

  • Oracle12c创建用户

    首先以Oracle管理员用户登录系统,并使用sys用户登录Oracle 创建临时表空间 创建数据表空间 创建用户 ...

  • oracle临时表空间相关知识介绍 ORA-01652 错误的原

    临时表空间作用 Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间消耗的主要原因是需要对查询的中...

  • Oracle导入数据库

    先创建用户 oracle数据检查各个表空间的路劲及其使用率 重新给某个表空间扩容 增加新的数据文件

  • DBA日常运维

    表空间: 1、查询表属于哪个表空间: 2、给表空间添加数据文件: 3、增加表空间数据文件的大小(之前初始化大小2G...

  • Oracle的数据存储结构

    Oracle的数据存储结构 表空间(tablespace)--Oracle中最大的逻辑存储单位 数据文件(data...

网友评论

    本文标题:Oracle | 表空间、临时表空间、数据文件

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