zoukankan      html  css  js  c++  java
  • 表空间

    表空间概念

    Oracle数据库的数据最终都是存放到数据文件里的

    实际上,Oarcle表空间(tablespaces)是一个逻辑概念,在物理上是并不存在的,因此,一个表空间实际上代表了由一组数据文件,它有这些书文件做支撑

        

    表空间属性

      一个数据库可以包含多个表空间,一个表空间只能属于一个数据库

      一个表空间包含多个数据文件,一个数据文件只能属于一个表空间

      表空间可以划分成更细的逻辑存储单元

    Oracle数据库的存储结构

      从逻辑的角度来看,一个数据库下面可以分多个表空间

      一个表空间下面又可以分多个段(segment)

      一个数据表要占一个段(segment),一个索引也要占一个段(segment)

      一个段(segment)由多个 区间(extent)组成,那么一个区间又由一组连续的数据块(data block)组成

      这连续的数据块是在逻辑上是连续的,有可能在物理磁盘上是分散

     

      从物理的角度上看,一个表空间由多个数据文件组成,数据文件是实实在在存在的磁盘上的文件

      这些文件是由Oracle数据库操作系统的block组成的

             

    段(Segment)

      段是指占用数据文件空间的通称,或数据库对象使用的空间的集合

      段可以有表段、索引段、回滚段、临时段和高速缓存段等

    区间(Extent)

      分配给对象(如表)的任何连续块叫区间,也叫扩展

      因为当它用完已经分配的区间后,再有新的记录插入就必须在分配新的区间,即扩展一些块

      一旦区间分配给某个对象(表、索引及簇),则该区间就不能再分配给其它的对象

    表空间相关查询

      查看表空间

    select * from v$tablespace

      查看每个表空间有哪些数据文件

    select * from dba_data_files

      

      查看详细数据文件

    select file_name,tablespace_name from dba_data_files

      创建一个表空间

    create tablespace paul datafile '/ora10/product/oradata/ora10/paul01.dbf' size 20m

    表空间分类

      表空间根据对区间(extents)的管理分为两种类型

        词典管理表空间(Dictionary-managed tablespaces)

          在表空间里,有的区间被占用了,有的没被占用,这些数据是放在数据字典里的

          当对这个表空间进行分配或释放的时候,数据文件里相关的表就会做修改

        本地管理表空间(locally managed tablespace)

          本地管理表空间不是在数据词典里存储表空间的,由自由区管理的表空间

          用位图来自由的管理区间,一个区间对一个位,如果这个位是1表示已经被占用,0表示未被占用

          词典管理空间表示"中央集权治",本地管理表空间表示“省市自治区”,一个databases表示中国,tablespaces表示一个省或直辖市

          词典管理统一由中央调配。而本地管理表示有高度的自治权利,自已各种资源的分配不用上报中央

    Undo表空间

      Undo类型的表空间,当对一张表或一条记录进行修改的时候,它会对修改之前的信息进行保存,这样可以保证数据的回滚

      Undo只包含undo类型的对象,不能包含任何其他对象,只适合于数据文件和区间管理

        创建undo表空间

    create undo tablespace  undo1 datafile '/ora10/product/oradata/ora10/paul01.dbf' size 20m

    临时表空间(Temporary Tablespaces)

      临时表空间,即一个临时的空间,用于数据库操作时存放临时的数据

      例如,排序操作,假设要做一次大数据量的查询,但内存无法存储这么大量的数据,然后会在磁盘上建立一个临时的表空间用记存放这些数据

      Oracle就会用这个临时表空间做排序,存储中间结果

      一个全局的临时表空间,可以由多个用户共享,谁需要谁使用

      但它只能存放临时的数据,不能包含任何永久性对象

      建议用本地管理方式创建这个表空间

      创建临时表空间

    create temporary tablespace temp datafile '/ora10/product/oradata/ora10/paul01.dbf' size 20m  extent management local uniform size 4m

    删除表空间

      删除表空间,使用命令drop tablespace '表空间名'

      注意:
        包含CONTENTS: 指删除表空间中的segments

        包含CONTENTS AND DATAFILES: 指删除segments和datafiles

        包含CASCADE CONSTRAINTS: 删除所有与该空间相关的完整性约束条件

      删除表空间

    DROP TABLESPACE FESCO ‘表空间名’ CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
  • 相关阅读:
    login
    我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。
    基于jsp+servlet的javaweb实现最基本的用户注册登陆注销功能
    JavaScript第一讲之js操作css
    JavaScript第一讲之认识js案例
    Java的数据库连接工具类的编写
    JavaEE框架整合之基于注解的SSH整合
    windows端口号速查表
    工厂模式
    流策略概述Traffic Policy
  • 原文地址:https://www.cnblogs.com/shiliye/p/13890462.html
Copyright © 2011-2022 走看看