Oracle数据库的体系结构(上)——存储结构

1. 概述

Oracle数据库系统由Oracle数据库Oracle实例组成,分别对应着数据库的存储结构软件结构

  • Oracle数据库:是固定的,基于磁盘的数据文件、控制文件、日志文件、参数文件、归档日志文件等。
  • Oracle实例:是管理数据库的后台进程和内存结构的集合。

2. 存储结构

存储结构(Storage Structure)分为物理存储结构逻辑存储结构两种,分别描述了在操作系统中数据库系统内部数据的组织与管理方式。

Oracle数据库的物理存储结构与逻辑存储结构既相互独立又相互联系,一个数据库在物理上包含多个数据文件,在逻辑上包含多个表空间。

辅助理解记忆:

✔️ 一个表空间包含一个或多个数据文件,一个数据文件只能从属于某个表空间。

-- 创建表空间时可以指定所包含的数据文件
CREATE TABLESPACE my_tablespace
DATAFILE '/path/to/mytablespace1.dbf' SIZE 100M,
'/path/to/mytablespace2.dbf' SIZE 100M

✔️ 数据库的逻辑块由一个或多个操作系统块构成。 

操作系统块是操作系统进行读写操作的最小单位,为了最大程度地利用磁盘存储空间,数据库块大小必须设置为操作系统块大小的整数倍。例如逻辑块大小是操作系统块大小的8.2倍,那么1个逻辑块需要9个操作系统块,剩余的0.8块大小的空间就被浪费了。

✔️ 一个逻辑区只能从属于某一个数据文件,而一个数据文件可包含一个或多个逻辑区。

逻辑区由物理上连续的数据块构成,是数据库存储分配的最小单位。每个数据文件被划分为一组逻辑区。一个逻辑区需要与特定的物理文件关联,以便数据库可以将其数据读取或写入到正确的文件中。

2.1 物理存储结构

Oracle数据库的物理结构就是由一系列操作系统物理文件组成。物理文件可分为三类:

主要包括以下这些文件,每种文件数量因文件类型不同而不同:

2.1.1 初始化参数文件

  • 初始化参数文件是数据库启动过程所必需的文件,记录了数据库显式参数的设置。
  • 数据库启动的第一步就是根据初始化参数文件中的设置,创建并启动实例,即分配内存空间、启动后台进程
  • 查看参数文件:SQL> show parameter spfile

2.1.2 数据文件

  • 数据文件是数据库中所有数据的实际存储空间,所有数据文件大小的和构成了数据库的大小。
  • 根据数据信息类型不同,数据文件分为永久性数据文件和临时数据文件两种。
  • 查看数据文件:
    • 方式1:SQL> select name from v$datafile;
    • 方式2:SQL> select file_name from dba_data_files;

2.1.3 控制文件

  • 控制文件是记录数据库结构信息的重要的二进制文件,由Oracle系统进行读写操作,DBA 不能直接操作控制文件。
  • 控制文件记录的信息有:数据库建立日期、数据库名、数据库中所有数据文件和日志文件的文件名及路径、恢复数据库时所需的同步信息。
  • 数据库启动的第二步根据初始化参数文件中的CONTROL_FILES参数找到控制文件第三步是根据控制文件中的信息,进行数据库数据文件和重做日志文件的加载,最后打开数据库。
  • 一个数据库至少需要一个控制文件,如果控制文件损坏将导致数据库无法启动。
  • 查看控制文件:
    • 方式1:SQL> select name from v$controlfile;
    • 方式2 :SQL> show parameter control_files
    • 方式3 :SQL> show parameter control

2.1.4 重做日志文件

  • 重做日志文件是以重做记录的形式记录、保存用户对数据库所进行的变更操作,是数据库中最重要的物理文件。
  • 利用重做日志文件可以进行事务的重做(REDO)回退(UNDO),是数据库实例恢复的基础。
  • 每一个数据库至少包含两个日志文件组,每个日志文件组至少包括一个日志文件。日志文件组以循环方式进行写操作。每一个日志文件成员对应一个物理文件。
  • 查看重做日志文件:SQL> select group#,member from v$logfile;

2.1.5 归档重做日志文件

  • 归档重做日志文件是历史联机重做日志文件的集合,是联机重做日志文件被覆盖之前备份的副本。
  • 如果数据库工作在归档模式,数据库归档进程会自动将写满的重做日志文件在覆盖之前复制到指定的位置。归档重做日志文件是数据库出现介质故障后实现数据库完全恢复的必要条件。
  • 查看归档日志文件:SQL> show parameter recovery

2.1.6 跟踪文件

  • 跟踪文件是数据库中重要的诊断文件。
  • 跟踪文件中包含数据库系统运行过程中所发生的重大事件的有关信息,可以为数据库运行故障的解决提供重要信息。
  • 查看跟踪文件:SQL> show parameter user_dump_dest

2.1.7 告警文件

  • 告警文件也是数据库中重要的诊断文件,记录数据库在启动、关闭和运行期间后台进程的活动情况。
  • 在数据库出现故障时,应首先查看该文件,但文件中的信息与任何错误状态没有必然的联系。
  • 查看预警日志文件:SQL> show parameter background_dump_dest

2.2 逻辑结构

数据库的逻辑结构是从逻辑的角度分析数据库的构成,即创建数据库后形成的逻辑概念之间的关系。

注:在操作系统中,没有数据库逻辑存储结构信息,只有物理存储结构信息。数据库的逻辑结构存储概念存储在数据库的数据字典中,可以通过数据字典查询逻辑存储结构信息。

Oracle数据库的逻辑存储结构分为Oracle数据块、区、段和表空间。一个或多个连续的数据块构成区,一个或多个区构成段,一个或多个段构成表空间,所有表空间构成数据库。

2.2.1 Oracle数据块

  • 数据库块(Database Block是数据库使用的I/O最小单元,又称逻辑块或ORACLE块。
  • 一个数据库块对应一个或多个物理块,块的大小由参数 DB_BLOCK_SIZE确定。
  • 数据库的格式见下:

2.2.2 区

  • 盘区(extent)是由一系列物理上 连续 存放的数据块所构成的Oracle存储结构。
  • 盘区是Oracle 存储分配的最小单位
  • 当一个段中的所有空间被使用完后,系统将自动为该段分配一个新的盘区。

2.2.3 段

  • 段(segment)是由一系列区组成的,不是存储空间的分配单位,而是一个独立的逻辑存储结构。
  • 对于具有独立存储结构的对象,它的数据全部存储在保存它的段中。
  • 一个段只属于一个特定的数据库对象,每当创建一个具有独立段的数据库对象时,Oracle将自动为它创建一个段
  • 根据储存对象类型不同,分为数据段、索引段、临时段和回退段

2.2.4 表空间

  • 表空间是Oracle数据库最大的逻辑存储单元,数据库的大小从逻辑上看就是由表空间决定。
  • 表空间与数据库文件直接关联,一个表空间包含一个或多个数据文件,一个数据文件只能从属于某一个表空间,数据库对象就是存储在表空间对应的一个或多个数据文件中。
  • 表空间根据存储数据的类型不同,分为 系统表空间和非系统表空间 。非系统表空间又分为临时表空间、撤销表空间、用户表空间。
  • Oracle 12c数据库在创建时会自动创建6个表空间。
名称类型描述
SYSTEM系统表空间存放数据字典、数据库对象定义、PL/SQL程序源代码等系统信息
SYSAUX系统表空间辅助系统表空间,存储数据库组件等信息
TEMP临时表空间存放临时数据,用于排序等操作
UNDOTBS1撤销表空间存储、管理回退信息
USERS用户表空间存放用户业务数据信息
EXAMPLE用户表空间示例表空间,存放示例的数据库方案对象信息

其他文章:

​​​​​​​Oracle数据库的体系结构(下)——软件结构(内存结构&后台进程)

Oracle体系结构探索——发起一条更新语句数据库内部执行过程​​​​​​​

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle数据库体系结构是指Oracle数据库软件的组织结构和架构。它由多个组件组成,这些组件共同工作以提供高性能、可靠性和可伸缩性的数据库服务。 Oracle数据库体系结构包括以下几个重要组件: 1. 物理存储结构:包括数据文件、控制文件和日志文件。数据文件用于存储实际的用户数据,控制文件记录数据库的结构和状态信息,日志文件用于记录数据库操作的过程。 2. 数据库实例:数据库实例是Oracle数据库软件的运行环境,它包括SGA(System Global Area)、后台进程和服务进程。SGA是用于缓存数据和SQL语句的内存区域,后台进程负责管理数据库的各种操作,服务进程用于处理来自客户端的请求。 3. 用户进程:用户进程是客户端应用程序与数据库之间的通信通道,它负责将用户请求传递到数据库实例,并返回查询结果。 4. Oracle实例进程:Oracle实例进程是负责管理和维护数据库实例的进程,它包括后台进程和服务进程。后台进程负责管理数据库的内部操作,如数据库恢复和故障检测,服务进程用于处理来自用户进程的请求。 5. 分布式数据库Oracle数据库支持分布式数据库,在多个数据库之间实现数据共享和同步。分布式数据库可以提供更高的可用性和可伸缩性。 通过这些组件的相互配合工作,Oracle数据库能够提供高效、可靠的数据存储和管理服务。它具有很强的可扩展性和可定制性,可以根据需求进行配置和优化,以满足不同应用场景的要求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值