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

标签: oracle 空间 tablespace | 发表时间:2014-11-26 07:02 | 作者:徜徉の小溪
出处:http://www.iteye.com

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



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [oracle 空间 tablespace] 推荐:

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

- - Oracle - 数据库 - ITeye博客
    数据文件和日志文件是数据库中最重要的文件. 每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多. 要了解这些内容我们首先必须理解什么是表空间(tablespace)、段(segment)、区(extent)、块(block),这些都是oracle数据库在数据文件中组织数据的基本单元.

Oracle表空间(tablespaces)

- - 博客园_首页
  我们知道oarcle数据库真正存放数据的是数据文件(data files),Oarcle表空间(tablespaces)实际上是一个逻辑的概念,他在物理上是并不存在的,那么把一组data files 捻在一起就成为一个表空间. 一个数据库可以包含多个表空间,一个表空间只能属于一个数据库. 一个表空间包含多个数据文件,一个数据文件只能属于一个表空间.

oracle 表空间操作

- - 数据库 - ITeye博客
1.通过sql plus 命令登录数据库.   在命令行下输入sqlplus “登录用户名/口令 as 登录类型”就可以登录,系统内建的用户名常用的是sys,密码是在安装oracle过程中设置的密码,清务必牢记,如果用sys帐户登录,登录类型一定要是sysdba. 2.查看各表空间分配情况. 3.查看各表空间空闲情况.

Oracle修改表空间大小

- - 数据库 - ITeye博客
1.通过sql plus 命令登录数据库.   在命令行下输入sqlplus “登录用户名/口令 as 登录类型”就可以登录,系统内建的用户名常用的是sys,密码是在安装oracle过程中设置的密码,清务必牢记,如果用sys帐户登录,登录类型一定要是sysdba. 2.查看各表空间分配情况. 3.查看各表空间空闲情况.

Oracle 如何释放数据库空间

- - 数据库 - ITeye博客
        当需要释放数据库空间的时候,通常的方案会用有truncate、delete、drop/re-creating等处理. 其中truncate 后会立即释放,并且不能回滚;但delete不能立即释放数据库空间,还会产生archive log.     如: Truncate table xxxx; 我们可以直接去查user_segments对应table的bytes就变小,数据库空间释放,并且不能回滚.

Oracle字段占用空间测试

- - 数据库 - ITeye博客
插入110W条数据,只插入grade字段. 用truncate table amwu_graderecord 重新插入数据. insert into amwu_graderecord(grade,sno,sname,dormitory) select rownum, '小李子小李子', '小李子小李子', '小李子小李子' from dual connect by level<=1100000;.

Oracle中临时表空间的清理

- - CSDN博客推荐文章
作者:iamlaosong. Oracle临时表空间主要用来做查询和存放一些缓冲区数据. 临时表空间消耗的主要原因是需要对查询的中间结果进行排序. 索引create或rebuild. Order by 或 group by. Union 或 intersect 或 minus. 重启数据库可以释放临时表空间,如果不能重启实例,而一直保持问题sql语句的执行,temp表空间会一直增长.

Oracle DB 执行表空间时间点恢复

- - CSDN博客推荐文章
• 列出在执行表空间时间点恢复(TSPITR) 时会发生的操作. • 阐释TSPITR 使用的术语的定义. • 确定适合将TSPITR 用作解决方案的情况. • 确定时间点恢复的正确目标时间. • 确定不能使用TSPITR 的情况以及解决方法. 表空间时间点恢复(TSPITR):概念. • 通过执行TSPITR 可将一个或多个表空间快速恢复到以前的某个时间.

(总结)Oracle 11g常用管理命令(用户、表空间、权限)

- - 服务器运维与网站架构|Linux运维|X研究
PS:下面是Oracle 11g最常用的基本管理命令,包括创建用户、表空间,权限分配等. 以下命令本人都验证操作过,加上了本人的小结说明. 从root切换到oracle用户进入:. 进入sqlplus环境,nolog参数表示不登录:. 注:要把Linux下的Oracle配置成服务自启动,请看:. (原创)CentOS Linux下配置Oracle 11gR2为系统服务自动启动.

Oracle 收购 Ksplice

- feng823 - LinuxTOY
实现无需重启即可为 Linux 内核打安全补丁的 Ksplice 被 Oracle 收购. 在被收购前, Ksplice 为 Fedora, Ubuntu 免费提供该功能,对于 RHEL 和 CentOS 则需要订阅其产品. Oracle 表示将把 Ksplice 带来的零宕机安全更新功能添加到 Oracle 产品订阅服务中,同时停止对其他企业级 Linux 发行版的支持,将 Oracle Unbreakable Linux 打造成唯一具备零宕机安全更新功能的企业级 Linux 发行版.