`
徜徉の小溪
  • 浏览: 442855 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

oracle中的表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)详解

阅读更多

    数据文件和日志文件是数据库中最重要的文件。它们是数据存储的地方。每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多。数据在数据文件中是如何组织的?要了解这些内容我们首先必须理解什么是表空间(tablespace)、段(segment)、区(extent)、块(block),这些都是oracle数据库在数据文件中组织数据的基本单元。现在我们来理解这些概念。
      块是数据存储的物理单位,也是数据文件中最基础的单位,数据直接存储在块上。是oracle空间分配的最小单位。oracle中的块大小常见的有三种,2KB、4KB、8KB。块的大小在数据库创建时就已经固定下来,数据库中每个块的大小都是相同的,而且所有的块都有相同的格式,由“块头+表目录+行目录+空闲空间+数据空间”组成。块头包含着块类型(比如是表块、还是索引块)的信息、磁盘上块的位置等信息。表目录(table directory),如果有的话,包含着此块中存储各行的表的信息(如果一个块中存有多个表中的数据)。行目录(row directory)包含着数据行的描述信息,它是一个指针数组,指示了每一行在数据块中的物理位置。块头、表目录、行目录统称为块开销(block overhead),是oracle原来统计、管理块本身的。剩下的两部分很简单,已经存有数据的就是数据空间,暂时没存的就是空闲空间。
     区又叫盘区,是数据文件中一个连续的分配空间,它比块要大,由块组成。有些对象分配空间时可能至少需要两个盘区,比如回滚段,而这两个盘区不一定要求相连。区的大小从一个块到2GB不等
     段是oracle数据库中的分配单位,对象如表、索引等都是以段为单位进行分配。当创建一个表时将创建一个表段,创建一个索引时就创建一个索引段。每一个消耗存储空间的对象最终被存储到一个单一的段中。有回滚段、临时段、聚簇段、索引段等。
    表空间是一个逻辑容器,它和数据文件关联起来,一个表空间至少有一个数据文件与之关联。一个表空间可以有多个段,一个段只能属于一个表空间。
     方案(schema)又叫模式,是比表空间小一级的逻辑概念,它也是一个逻辑容器。多个用户可能共用一个表空间,那如何区分开每一个用户?那么在表空间中对每个用户都有一个对应的方案,用于保存单个用户的信息。
    oracle中存储的层次结构总结如下:
一、数据库由一个或多个表空间组成
二、表空间由一个或多个数据文件组成,一个表空间包含多个段
三、段由一个或多个区组成
四、区是数据文件中一个连续的分配空间,由一个或多个块组成
五、块是数据库中最小、最基本的单位,是数据库使用的最小的I/O单元
六、每个用户都有一个对应的方案

分享到:
评论

相关推荐

    创建Oracle表空间

    /*第1步:创建临时表空间 */ create temporary tablespace user_temp tempfile 'D:\oracle\oradata\Oracle9i\user_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local; ...

    Oracle用户(user)和表空间(tablespace).pdf

    本文详细介绍和阐述了 Oracle 用户(user)和表空间(tablespace)的概念和使用方法等内容,并对用户和表空间使用过程中的注意事项、关键知识点等进行了重点标注和详尽解析,以便于读者进行深入学习和理解。...

    Oracle_create_tablespace语法详解.docx

    Oracle_create_tablespace语法详解.docx

    如何正确的删除Oracle表空间数据文件

    详细介绍如何正常删除Oracle 数据库表空间数据文件,OFFLINE和OFFLINE DROP的区别,OS级别删除了数据文件后的恢复,删除数据库表空间数据文件演示示例

    oracle中查看表空间与对应物理文件,用户,表,使用情况

    select b.tablespace_name 表空间, c.owner 用户, c.segment_name 表名, b.file_name 物理文件名, sum(nvl(b.bytes, 0)) / 1024 / 1024 总共大小M, round((sum(nvl(b.bytes, 0)) - sum(nvl(a.bytes, 0))) ...

    oracle 数据库表空间巡检步骤

    描述了oracle数据库表空间巡检的步骤: 1:查看表空间 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.tablespace_...

    oracle 创建表空间脚本

    oracle 创建表空间脚本 create tablespace

    oracle扩展表空间

    oracle扩展表空间sql语句 oracle表空间查询、硬性扩展和自动扩展

    oracle数据库建表空间、分配权限

    oracle数据库建表空间、分配权限 create temporary tablespace cppa_w_temp tempfile 'd:\oracle\datafile\cppa_w_temp.dbf' size 200m autoextend on next 100m maxsize 500m extent management local;

    Oracle表空间查看sql使用情况

    DBA在日常工作中,最重要的一点就是查看表空间的使用情况,去了解是否有表空间满了的情况出现。 具体方法和步骤如下所示: 第一步:打开PLSQL 第二步:新建一个SQL窗口 第三步:输入代码: select a.tablespace_...

    ORACLE表空间恢复方案

     即最近导出的对象是可用的或表空间中的对象可以被轻易地重建等.  在这种情况下,最简单的方法是offline并删除该数据文件,删除表空间并重建表空间以及所有的对象.  svrmgrl> startup mount  svrmgrl> alter ...

    oracle表空间操作详解

    建立表空间 CREATE TABLESPACE data01 DATAFILE '/oracle/oradata/db/DATA01.dbf' SIZE 500M UNIFORM SIZE 128k; #指定区尺寸为128k,如不指定,区尺寸默认为64k 删除表空间 DROP TABLESPACE data01 INCLUDING ...

    oracle表空间碎片整理

    利用DBMS_SPACE包对Oracle 表碎片进行监控与清理,

    oracle数据库创建表空间和用户

    oracle数据库导入、导出数据、创建表空间、创建用户、用户授权等操作

    oracle添加表空间及用户

    sql语句建立表空间,创建所属用户,简单好用,很便捷。很适合初学者和总记不住语句但又不愿用oracle管理界面的朋友使用!

    oracle表空间管理

    oracleDBA表空间管理 表空间管理 表空间管理

    oracle 的表空间实例详解

    oracle 的表空间实例详解 查询表空间 SELECT UPPER(F.TABLESPACE_NAME) 表空间名,  D.TOT_GROOTTE_MB 表空间大小(M),  D.TOT_GROOTTE_MB - F.TOTAL_BYTES 已使用空间(M),  TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F....

    Oracle 创建表空间

    CREATE TABLESPACE ... DATAFILE 'D:\oracleData\tablespace\tcyTableSpace.dbf' SIZE 100M AUTOEXTEND ON NEXT 32M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;

    ORACLE表空间的回收脚本

    针对oracle表空间收缩的操作!请仔细查看内部的说明。对于表空间过于庞大的数据库能起到回收剩余空间,并降低高水位HWM的作用

    oracle 表空间扩容.txt

    直接划一个xxG的裸设备就行 然后执行alter tablespace xxx add datfile '***' size 30000M autoextend off; 建裸设备时,裸设备的大小要大于文件的大小,下面以是建设备system01的命令:

Global site tag (gtag.js) - Google Analytics