首页 > 代码库 > Oracle 体系结构

Oracle 体系结构

  一、Oracle 体系结构概述

  Oracle 数据库体系结构主要用来分析数据库组成、工作过程与原理,Oracle数据库是一个逻辑概念,而不是物理概念上安装了Oracle数据库管理系统的服务器。

  Oracle数据库管理系统有三个重要的概念需要理解:实例(instance)、数据库(database)、数据库服务器(database server)。Instance包括SGA和一系列后台管理、监视进程;Database是基于磁盘的数据文件(Data files)、控制文件(Control files)、重做日志文件(Redo log files)。Database server指管理数据库的各种软件工具(sqlplus、OEM等)、instance、database三个部分。

  简洁的体系结构图

  技术分享

  

  详细的体系结构图

  技术分享

  下面我们将先从数据库逻辑存储结构与物理存储结构分析Oracle体系结构。

 

  二、逻辑存储结构

  逻辑存储结构是Oracle数据存储结构的核心内容,对Oracle所有操作都会涉及逻辑存储结构。逻辑结构是一种层次结构,主要有表空间、段、区间和数据块等概念组成,它是面向用户的,当用户使用Oracle设计数据库时,其使用的就是逻辑存储结构。

  技术分享

  1 数据块(Data Blocks)

  Data blocks 是Oracle逻辑存储结构中最小的逻辑单位,也是执行数据库输入输出的最小存储单位。Oracle数据存放在"Oracle数据块"中,而不是"操作系统快"中。Oracle数据块是操作系统块的整数倍,它的大小有一定标准,其大小被写入DB_BLOCK_SIZE中。

  技术分享

  数据块中可以存放表数据、索引数据、簇数据等,无论存放哪种类型的数据,其结构都是相同的。数据库块由块头、表目录、行目录、空余空间和行数据5部分组成。

  块头:存放数据库块的基本信息,如块的物理地址、块所属的段类型;

  表目录:存放表的相关信息。如果数据块中存储的是表数据,则表目录中存储有关这些表的相关信息;

  行目录:如果块中有行数据存在,则这些行的信息将被记录在行目录中;

  空余空间:块中未使用的区域,用户新行的插入和已经存在的行的更新;

  行数据:用户存放表数据和索引数据;

  块头、表目录、行目录组合成为头部信息区,不存放数据,存放整个块的引导信息,起到引导系统读取数据的作用。空余空间和行数据共同构成块的存储区,用于存放真正的数据记录。

Oracle 体系结构