美文网首页Oracel基础
(转)Oracle的逻辑存储结构

(转)Oracle的逻辑存储结构

作者: 千幻流光 | 来源:发表于2018-08-28 14:14 被阅读2次

来源:Oracle官方博客
作者:Allen Gao
原文链接:https://blogs.oracle.com/database4cn/oracle-v6

我们知道数据库是存储数据的容器,它的主要功能是保存和共享数据。在这篇文章中,我们对数据库存放数据的基础知识进行了介绍。

首先,oracle数据库的存储结构可以分为逻辑存储结构和物理存储结构,对于这两种存储结构,oracle是分别进行管理的。
逻辑存储结构:oracle内部的组织和管理数据的方式。
物理存储结构:oracle外部(操作系统)组织和管理数据的方式。

接下来我们对上面的两种结构进行详细的介绍。

1.逻辑存储结构:

image.png

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数据库逻辑上由一个或多个表空间组成,每个表空间在物理上由一个或多个数据文件组成,而每个数据文件是由数据块构成的。
         所以,逻辑上数据存放在表空间中,而物理上存储在表空间所对应的数据文件中。我们可以用这张图来描述数据文件和表空间的关系。

image

构成数据库物的物理文件主要有三种:

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

相关文章

  • (转)Oracle的逻辑存储结构

    来源:Oracle官方博客作者:Allen Gao原文链接:https://blogs.oracle.com/da...

  • oracle数据库储存结构

    oracle 数据库的存储结构分为物理存储结构和逻辑存储结构两种。物理存储结构主要用于描述在 oracle 数据...

  • oracle数据库存储结构

    ----存储结构概述:oracle 数据库的存储结构分为物理存储结构和逻辑存储结构两种。物理存储结构主要用于描述在...

  • Oracle的数据存储结构

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

  • MySQL InnoDB 存储结构

    持续更新 逻辑存储结构 InnoDB存储引擎的逻辑存储结构和Oracle几乎一样,从大到小分别为:表空间、段、区、...

  • 逻辑存储结构

    逻辑存储结构概述 按照由小到大的顺序,逻辑存储单元可以做如下划分: (1)块(Block)。 块是Oracle逻辑...

  • 物理结构和逻辑结构

    Oracle数据库由物理和逻辑结构组成。可以从操作系统中看到和操作物理结构,例如在磁盘上存储数据的物理文件。 逻辑...

  • Oracle高水位线HWM

    说到HWM,我们首先要简要的谈谈ORACLE的逻辑存储管理。我们知道,ORACLE在逻辑存储上分4个粒度: 表空间...

  • 数据结构 —线性表,LruCache实现原理

    逻辑结构和物理结构 物理结构:是指数据的逻辑结构在计算机中的存储形式 顺序存储结构顺序存储 链式存储结构链式存储 ...

  • Oracle的存储结构

    前言   昨天刚办完了入职手续,新公司使用的数据库是Oracle,而上家公司一直用MariaDB;长时间没用了,复...

网友评论

    本文标题:(转)Oracle的逻辑存储结构

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