Oracle数据库存储和结构简介

我们知道数据库是存储数据的容器,它的主要功能是保存,这里,我们队数据库存放数据的基础知识进行介绍.

首先,Oracle数据的存储结构可以分为逻辑存储结构和物理存储结构,对于这两种存储结构,Oracle是分别进行管理

  • 逻辑存储结构:Oracle是内部的组织和管理数据的方式
  • 物理存储结构:Oracle外部(操作系统)组织和管理数据的方式

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

块:Oracle用来管理存储的最下单元,也是最小的逻辑结构的存储结构.Oracle数据库在进行输入输出时,都是以块为单位进行读写操作的.我们建议数据块的尺寸为操作系统尺寸的整数倍(1,2,4).另外,块的大小是在创建数据库的时候决定的,之后不能修改.当然我们对块的结构进行一些介绍.

块的头部信息区
块头:包含块一般地 属性,如块的物理地址,块的所属的段的类型
表的目录:如果块中存储的数据是表的数据,则在表目录中保存块中所包含的表的相关信息
行目录:行记录的相关信息 如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以循环方式来使用它们

猜你喜欢

转载自blog.csdn.net/qq_38334410/article/details/79457887