首先,oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构,对于这两种存储结构,oracle是分别进行管理的。
   逻辑存储结构:oracle内部的组织和管理数据的方式。
  物理存储结构:oracle外部(操作系统)组织和管理数据的方式。
接下来我们对上面的两种结构进行详细的介绍。
1.逻辑存储结构:


oracle在逻辑上将保存的数据划分为一个个小单元来进行存储和维护,更高一级的逻辑存储结构都是由这些基本的小单元组成的。
逻辑结构类型按照尺寸从小到大分可分为:块(block)-->区(extent)-->段(segment)-->表空间(tablespace)

块:Oracle用来管理存储的最小单元,也是最小的逻辑存储结构。Oracle数据库在进行输入输出时,都是以块为单位进行读写操作的。我们建议数据块的尺寸为操作系统块尺寸的整数倍(1、2、4等)。另外,块的大小是在创建数据库的时候决定的,之后不能修改。当然,oracle同时也支持不同的表空间拥有不同的数据块尺寸。下面,我们对块的结构进行一些介绍。
    块的头部信息区:
        块头:包含块的一般属性信息 如块的物理地址、块所属的段的类型
        表目录:如果块中存储的数据是表数据, 则在表目录中保存块中所包含的表的相关信息
        行目录:行记录的相关信息 如ROWID
    块的存储区:主要包含空闲空间和已经使用的空间。Oracle主要是通过下面的两个参数对这部分空间进行管理的
        PCTFREE参数:指定块中必须保留的最小空闲空间比例。当块中的空闲存储空间减少到PCTFREE所设置的比例后,Oracle将块标记为不可用状态,新的数据行将不能被加入到这个块。
        PCTUSED参数:制定一个百分比,当块中已经使用的存储空间降低到这个百分比只下时,这个块才被重新标记为可用状态。
        请注意:以上两个参数既可以在表空间级别进行设置,也可以在段级别进行设置。段级别的设置优先级更高。
    区:比块高一级的逻辑存储结构 由连续的块组成,它是oracle在进行存储空间的分配和回收的最小单位。在创建具有独立段结构的数据库对象时,例如表、索引等,Oracle会为数据库对象创建一个数据段,并为数据段分配一个‘初始区’。后续区的分配方式,则根据表的空间管理办法不同,而采用不同的分配方式,例如autoextent,uniform size 或者在创建表或表空间时设置default storage 子句。另外,用户还能够通过执行下面的命令来回收表、索引等对象中未使用的区:
SQL>alter table table_name deallocate unused;
    段:由多个区组成,这些区可以是连续的,也可以是不连续的。当用户在数据库中创建各种具有实际存储结构的对象时(保存有数据的对象),比如表、索引等,Oracle将为这些对象创建“段”。 一般一个对象只拥有一个段。在创建段时,可以为它指定PCTFREE、PCTUSED等参数来控制其中的块的存储空间管理方式,也可以为它指定INITIAL、NEXT、PCTINCREASE等存储参数,以指定其中区的分配方式。如果没有为段指定这些参数,段将自动继承表空间的相应参数。不同类型的数据库对象拥有不同类型的段:
        数据段:保存表中的记录
        索引段:索引中的索引条目
        临时段:在执行查询等操作时,Oracle可能会需要使用到一些临时存储空间,用于临时保存解析过的查询语句以及在排序过程中产生的临时数据。
        回滚段:保存回滚数据。
  表空间:最高级的逻辑存储结构,数据库是由多个表空间组成的。在创建数据库时会自动创建一些默认的表空间,例如 SYSTEM表空间,SYSAUX表空间等。通过使用表空间,Oracle将所有相关的逻辑结构和对象组合在一起。我们可以在表空间级别指定存储参数,也可以在短级别指定。下面我们列出常见的表空间,和他们所存储的信息:
      数据表空间:用于存储用户数据的普通表空间。
      系统表空间:默认的表空间,用于保存数据字典(一组保存数据库自身信息的内部系统表和视图,及用于Oracle内部使用的其他一些对象),保存所有的PL/SQL程序的源代码和解析代码,包括存储过程和函数、包、数据库触发器等,保存数据库对象(表、视图、序列)的定义。
      回滚表空间:用于存放回滚段,每个实例最多只能使用一个撤销表空间
      临时表空间:存储SQL执行过程中产生的临时数据
最后,我们可以用下面的比喻来描述逻辑结构关系:
块 :一张张白纸 ---> 区:白纸组成的本子---> 段:多个本子放到一个文件袋中---> 表空间:文件柜(存放多个文件袋)

2. oracle物理存储结构
Oracle数据库逻辑上由一个或多个表空间组成,每个表空间在物理上由一个或多个数据文件组成,而每个数据文件是有数据块构成的。所以,逻辑上数据存放在表空间中,而物理上存储在表空间所对应的数据文件中。我们可以用这张图来描述数据文件和表空间的关系。

构成数据库物的物理文件主要有三种:
      数据文件:存放数据库数据。 
      控制文件:存放数据库的基本信息,告诉数据库到哪里找到数据文件和重做日志文件等。对数据库的成功启动和正常运行是很重要的。
      重做日志文件:存放对数据的改变。至少两组,Oracle以循环方式来使用它们。

《FROM:http://my.oschina.net/jccpp/blog/129342》

转载于:https://www.cnblogs.com/rusking/p/4335055.html

ORACLE数据库存储结构简介(转)相关推荐

  1. oracle数据库存储结构语句,oracle之物理数据库结构描述

    oracle之物理数据库结构概述 oracle的物理结构其实是由各种各样的文件组成的, 其中与数据库相关的有: 数据文件(data file):这些文件是数据库的主要文件:其中包括数据表.索引和所有其 ...

  2. oracle数据库存储结构语句,oracle基本语句(第五章、数据库逻辑存储结构管理)...

    1.使用SYS用户以SYSDBA身份登录到SQL Plus,使用视图V$TABLESPACE查看表空间信息 SELECT * FROM V$TABLESPACE; 2.查看视图DBA_TABLESPA ...

  3. Oracle物理存储结构--文件

    原文地址:[基础]Oracle物理存储结构--文件作者:诗意方式 1 数据文件 3.查询数据文件参数 要将数据文件置为脱机状态,可以通过下列语句实现,如将SCOTT对象的数据文件置为脱机状态: SQL ...

  4. [20150113]关于oracle的存储结构.txt

    [20150113]关于oracle的存储结构.txt --这阵子在看vage写的>,里面第一章提到: --P2 --每个文件的前128个块,都是文件头,被Oracle留用了.在oracle 1 ...

  5. oracle 数据库表结构对比

    oracle 数据库表结构对比 由于公司工作比较混乱,总有人会改数据库中表的内容和字段. 在部署的时候总会因为数据库出现了未知的改变而发生错误. 所以需要对数据库内容进行比对,以求得到变化的内容. 导 ...

  6. oracle 数据立方_关于在Oracle 数据库存储m³(立方米)

    --------------注意:如下操作是在RHEL的VNC中执行的,并不是在secureCRT中执行的.------------ --------------原因:若是在secureCRT执行,m ...

  7. 第五章:管理数据库存储结构

    存储结构<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /> 数据存 ...

  8. OCP之5 管理数据库存储结构

    存储结构 一个数据库可划分为多个称为表空间的逻辑存储单元.每个表空间可以包含很多Oracle 逻辑数据块.DB_BLOCK_SIZE 参数指定了逻辑块的大小.逻辑块的大小介于2 KB 到 32 KB ...

  9. oracle 11g 存储结构和数据文件

    2019独角兽企业重金招聘Python工程师标准>>> 存储结构与数据文件 存储结构: database----tablespace-----sefment-----extent-- ...

最新文章

  1. 阿里达摩院百万大奖评选开启!这次人人都能给青年科学家当伯乐
  2. 软件版本命名规范(转载)
  3. WinDbg的cmdtree命令
  4. js中WebSocket
  5. 大型应用软件产品设计方法
  6. 各种平台解压压缩总结
  7. cad直线和圆弧倒角不相切_曲线操作-直线,圆弧,圆,倒斜角
  8. PYTHON招聘需求与技能体系
  9. 搞懂C++为什么难学,看这篇就够了!
  10. web系统数据库服务器,Web Gateway
  11. php 逻辑与运算符使用说明
  12. 小鹏汽车第10000辆P7下线
  13. 2.写给设计师看的HTMLCSS入门指导
  14. 静态路由和DHCP/NAT/VLAN的配置实例
  15. 模型总结:最优化模型
  16. 明翰游戏学笔记V0.2(持续更新)
  17. 单片机学习笔记(一)——概述
  18. VBA和VBScript的AES加密算法
  19. Android开发笔记之SeekBar 时间的显示 快进快退 Mediaplayer
  20. javascript当中options的用法

热门文章

  1. Selenium API-鼠标与键盘事件
  2. dfa matlab用法,关于使用MF-DFA方法计算广义Hurst指数的MATLAB操作问题
  3. jmeter 登录用户并发压力测试案例_测试模型构建及场景用例设计
  4. 我是学渣,非计算机专业,当年我如何零基础自学web前端成功的!
  5. style 字体加粗_第9篇 Qt Quick入门教程之基础(九)文本显示和字体
  6. 根据用户查进程_Linux进程之如何查看进程详情?
  7. python的科学计算库有哪些_《用Python进行科学计算》——SciPy数值计算库
  8. JAVA蓝桥杯: 时间转换
  9. FreeRTOS学习笔记---动态创建任务 xTaskCreate() 源码分析
  10. HDU-2553N皇后问题(dfs)