图片

作者 | JiekeXu   来源 |公众号 JiekeXu DBA之路

如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)

作者:JiekeXu,江湖人称“强哥”,青学会MOP技术社区主席,荣获Oracle ACE,OpenTenBase ACE,金仓最具价值倡导者KVA,崖山最具价值专家YVP,IvorySQL开源社区专家顾问委员会成员,KWDB社区MVP,墨天轮MVP,墨天轮年度“墨力之星”,拥有 OCP/OCM 认证,MySQL 5.7/8.0 OCP  认证以及金仓KCM、KCSM证书,TiDB PCTA/PCTP 等其他国产数据库认证证书,欢迎关注我的微信公众号“JiekeXu DBA之路”,然后点击右上方三个点“设为星标”置顶,更多干货文章才能第一时间推送,谢谢!后台回复【加群】添加我微信一起交流学习。

图片

前  言

接上面一篇《35 张图带你了解 Oracle AI Database 26ai 技术架构(上)》,这一篇介绍

Oracle AI Database 26ai 的物理结构等相关内容。

 CDB

图片.png

多租户容器数据库 (CDB)  是多个容器数据库的集合,其中每个容器都是模式、对象和相关结构的集合。可插拔数据库 (PDB) 是用户创建的容器,用于存储应用程序(例如人力资源应用程序)的数据和代码。

从用户或应用程序的角度来看,PDB 似乎是一个逻辑上独立且分离的数据库。而从操作系统的角度来看,CDB 才是真正的数据库。

每个 CDB 都包含以下容器:

  • • 一个名为 CDB$ROOT 的根容器,用于存储 Oracle 提供的元数据和公共用户(属于该 CDB 的所有容器中都已知的数据库用户)。根容器不存储任何用户数据。所有 PDB 都属于该根容器。

  • • 系统提供一个名为 PDB$SEED 的种子 PDB,它是一个模板,CDB 可以使用该模板创建新的 PDB。您无法修改种子 PDB。

  • • CDB  中可以包含零个或多个用户创建的 PDB。首次创建 CDB 时,不存在任何 PDB。您可以同时将多个 PDB 插入到同一个 CDB  中,但不能将一个 PDB 插入到多个 CDB 中。每个 PDB 都与其他插入到同一个 CDB 的 PDB 完全隔离。用户只能与 PDB  交互,而不能与种子 PDB 或根容器交互。

  • • 零个或多个应用程序容器,它们是 CDB 内可选的 PDB 集合,用于存储应用程序的数据和元数据。一个应用程序容器(类似于 CDB)可以包含多个应用程序 PDB,并使这些 PDB 能够共享元数据和数据。

在物理层面上,容器由物理数据文件组成。每个容器至少包含一个数据文件。在逻辑层面上,数据库通过称为表空间的逻辑结构将数据分配到各个数据文件中。

CDB 在运行过程中还会使用多个系统文件。控制文件和重做在线日志文件位于 CDB 内部,并在所有 PDB 和应用程序容器之间共享。其他系统文件则位于 CDB 外部。

注意: Oracle Database 21c 中不再支持非 CDB,这意味着 Oracle 通用安装程序和数据库配置助手 (DBCA)无法再创建非 CDB Oracle AI 数据库实例。

应用容器

图片.png

应用程序容器是多租户容器数据库 (CDB)中可选的用户创建组件。应用程序容器存储特定于应用程序的可插拔数据库 (PDB) 的数据和元数据。

在某种程度上,应用程序容器的功能类似于  CDB 内部的特定应用程序 CDB。应用程序容器与 CDB 本身一样,可以包含多个应用程序 PDB,并使这些 PDB 能够以与 CDB  根目录共享数据和元数据的方式共享数据和元数据,就像CDB 根目录与种子 PDB、用户创建的 PDB 以及插入到 CDB  根目录的应用程序容器共享数据和元数据一样。

CDB  可以包含零个或多个应用程序容器。一个应用程序容器由一个应用程序根目录和一个或多个应用程序 PDB 组成,这些应用程序 PDB  插入到应用程序根目录中。应用程序根目录属于 CDB 根目录。应用程序根目录与 CDB 根目录和标准 PDB  的区别在于,它可以存储用户创建的公共对象,这些对象可供插入到应用程序根目录的应用程序 PDB 访问。

应用程序种子是应用程序容器内可选的用户创建 PDB 文件。一个应用程序容器可以包含零个或一个应用程序种子。应用程序种子使您能够快速创建应用程序 PDB 文件。它在应用程序容器中的作用与种子 PDB 文件在 CDB 本身中的作用相同。

在物理层面上,容器由物理数据文件组成。每个容器至少包含一个数据文件。在逻辑层面上,数据库通过称为表空间的逻辑结构将数据分配到各个数据文件中。

典型的应用程序会安装应用程序通用用户、元数据链接的通用对象和数据链接的通用对象。例如,您可以在一个应用程序容器内创建多个与销售相关的产品数据数据库 (PDB),这些 PDB 共享一个应用程序后端,该后端由一组通用表和表定义组成。

数据库存储结构

图片.png

多租户容器数据库 (CDB) 是模式和模式对象(例如表和索引)的集合。

在物理层面上,CDB 将对象存储在数据文件中。您可以使用以下机制来存储数据文件:

  • • 操作系统文件系统是一种用于存储和检索数据的结构。大多数 Oracle AI 数据库都将文件存储在文件系统中。

  • • 集群文件系统是一种分布式文件系统,它由一组服务器组成,这些服务器协同工作,为客户端提供一致性和高性能。在 Oracle 实时应用集群 (Oracle RAC) 环境中,集群文件系统使共享存储看起来像是一个单一的文件系统,供集群环境中的多台计算机共享。

  • • Oracle 自动存储管理(Oracle ASM)。

在逻辑层面上,CDB 使用以下结构将数据分配到各个数据文件中:

  • • 表空间包含零个或多个段,每个段对应于一个模式对象。一个表空间可以包含分配给不同模式的段,而一个模式的段可以跨越多个表空间。在物理层面上,一个表空间可以将数据存储在多个数据文件中,但多个表空间不能共享数据文件。每个可插拔数据库  (PDB) 和应用程序容器都有自己的一组表空间。您可以将用户数据存储在默认的 USERS  表空间中,也可以为特定的应用程序数据或系统数据创建额外的表空间。

  • • 段是为特定模式对象分配的区段集合。每个占用存储空间的模式对象(或对象分区)都有自己的段。一个段可以包含来自多个数据文件的区段,但不能跨越多个表空间。

  • • 区段是逻辑上连续的数据块集合。每个区段都分配给单个数据文件中的一个模式对象。默认情况下,Oracle AI 数据库会在您创建模式对象和段时分配一个初始区段。如果初始区段已满,数据库会自动为该段分配另一个区段。新区段不必位于同一个数据文件中。

  • • 数据块 是数据存储的最小逻辑单元。一个逻辑数据块对应于数据文件中特定数量的字节的持久存储空间(例如,2 KB)。

Tablespace 表空间

图片.png

表空间是用于存储段的逻辑存储容器。段是数据库对象,例如表和索引,它们会占用存储空间。

在多租户容器数据库(CDB)中,每个可插拔数据库(PDB)和应用程序根目录都有自己的一组永久表空间,这些表空间对应于物理数据文件:

  • • 一个SYSTEM 表空间,其中包括数据字典;包含数据库管理信息的表和视图;以及已编译的存储对象,例如触发器、过程和包。

  • • SYSAUX 表空间是SYSTEM 表空间的辅助表空间。它是许多 Oracle AI 数据库特性和产品的默认表空间,这些特性和产品以前需要自己的表空间,因此它减少了数据库所需的表空间数量。

  • • 一个或多个撤销表空间。在本地撤销模式(默认模式)下,数据库会在每个  PDB 中自动创建一个撤销表空间。在共享撤销模式下,单实例 CDB 只有一个活动的撤销表空间,而 Oracle 实时应用集群 (Oracle  RAC) CDB 的每个实例都有一个活动的撤销表空间。在共享撤销模式下,所有撤销表空间在所有容器的数据字典和相关视图中均可见。

  • • 用户创建的表空间可以有零个或多个,用于存储 PDB 中用户定义的模式和对象的数据。您可以将用户数据存储在默认的 USERS 表空间中,也可以创建额外的表空间来存储特定的应用程序数据或系统数据。

每个容器还有一个临时表空间,对应于物理临时文件。CDB 根目录以及每个应用程序根目录、应用程序 PDB和 PDB 都有一个默认的临时表空间。临时表空间包含仅在会话期间存在的瞬态数据。任何永久模式对象都不能驻留在临时表空间中。

Schema 模式和模式对象

图片.png

数据库模式是数据结构(称为模式对象)的逻辑容器。每个 Oracle AI 数据库用户帐户都拥有一个与用户名相同的模式。

注意:数据库还会存储模式中未包含的其他类型的对象。这些对象包括数据库用户帐户、角色、上下文和字典对象。

分配了物理空间的模式对象(例如表和索引)存储在数据文件中 。在逻辑层面上,数据库使用表空间将数据分配到各个数据文件中。模式和表空间之间没有必然联系:一个表空间可以包含来自不同模式的对象,而同一模式的对象也可以存储在不同的表空间中。

模式包含以下几种主要类型的对象:

  • • 表以行的形式存储数据。表是关系数据库中最重要的模式对象。

  • • 索引包含表或表簇中每个索引行的条目,并提供对行的直接、快速访问。

  • • 分区是大型表和索引的组成部分。每个分区都有自己的名称,并且可以选择性地具有自己的存储特性。

  • • 视图是对一个或多个表或其他视图中数据的自定义呈现。您可以将其视为存储的查询。视图本身并不包含数据。

  • • 多个用户可以共享序列来生成整数。通常,序列用于生成主键值。

  • • 维度定义了列集之间的父子关系,其中列集中的所有列必须来自同一张表。但是,一个列集(称为级别)中的列可以来自与另一个列集中的列不同的表。您可以使用维度对客户、产品和时间等数据进行分类。

  • • 同义词是其他模式对象的别名。由于同义词本质上就是别名,因此除了在数据字典中定义之外,它不需要其他存储空间。

  • • PL/SQL 是 Oracle 对 SQL 的过程式扩展。PL /SQL 子程序是一个已命名的 PL/SQL 代码块,您可以使用一组参数来调用它。PL/SQL 包将逻辑上相关的 PL/SQL 类型、变量和子程序组合在一起。

数据库系统文件

图片.png

Oracle AI 数据库使用多个位于数据库服务器上的数据库系统文件。这些文件与数据文件不同,数据文件是属于数据库容器的物理文件。

数据库启动需要以下文件:

  • • 控制文件:   控制文件存储数据文件和在线重做日志文件的元数据(例如,它们的名称和状态)。数据库实例需要这些信息才能打开数据库。控制文件还包含在数据库未打开时必须可访问的元数据。每个多租户容器数据库  (CDB) 都有一个唯一的控制文件,但允许存在多个相同的副本。可插拔数据库 (PDB) 没有单独的控制文件。

  • • 参数文件:定义了数据库实例启动时的配置方式。您可以使用初始化参数文件(pfile)或服务器参数文件(spfile)。

  • • 在线重做日志文件:会实时存储数据库的更改,并用于数据恢复。这些文件是 CDB 的一部分。

注意: Oracle 建议您在不同位置维护多个控制文件和联机重做日志文件的副本,以避免单点故障。这称为多路复用。有关详细信息,请参阅“多个控制文件和多个联机重做日志文件副本”。

数据库还使用以下系统文件,这些文件位于 CDB 之外:

  • • 自动诊断存储库   (ADR)是一个基于文件的数据库诊断数据存储库,用于存储跟踪信息、转储文件、告警日志、运行状况监控报告等。它在多个实例和多个产品中采用统一的目录结构。数据库、Oracle  自动存储管理 (Oracle ASM)、监听器、Oracle 集群件以及其他 Oracle 产品或组件都会将所有诊断数据存储在 ADR  中。每个产品的每个实例都会将诊断数据存储在 ADR 中各自的主目录中。

  • • (可选)备份文件用于数据库恢复。通常情况下,当介质故障或用户错误导致原始文件损坏或删除时,您需要还原备份文件。

  • • (可选)归档重做日志文件包含数据库实例生成的数据更改历史记录。您可以使用这些文件和数据库备份来恢复丢失的数据文件。

  • • (可选)密码文件允许具有 SYSDBA、SYSOPER、SYSBACKUP、SYSDG、SYSKM、SYSRAC 和 SYSASM 角色的用户远程连接到数据库实例并执行管理任务。

  • • (可选)密钥库 (以前称为钱包)是安全的软件容器,用于存储身份验证和签名凭证。Oracle AI 数据库支持软件密钥库、Oracle Key Vault 和其他兼容 PKCS#11 的密钥管理设备。

  • • (可选)块更改跟踪文件包含已更改的数据块,用于提高增量备份的性能。在增量备份期间,恢复管理器 (RMAN) 无需扫描所有数据块来识别已更改的数据块,而是使用此文件来识别需要备份的已更改数据块。

  • • (可选)闪回数据库使用闪回日志访问数据块的历史版本以及归档重做日志中的一些信息。这使您可以将数据库恢复到最近的某个时间点的状态。闪回数据库要求您为数据库配置快速恢复区,因为闪回日志只能存储在快速恢复区中。只有在闪回日志可用的情况下才能使用闪回数据库,因此您必须预先设置数据库以创建闪回日志。

ADR 自动诊断库

图片.png

自动诊断存储库(ADR)是一个系统级的数据库诊断数据跟踪和日志记录中央存储库。它包含以下内容:

  • • 后台跟踪文件存储来自数据库后台进程的信息。当进程检测到内部错误时,它会将错误信息转储到其跟踪文件中。写入跟踪文件的部分信息供数据库管理员使用,而其他信息则供  Oracle 支持服务使用。通常,数据库后台进程跟踪文件名包含 Oracle 系统标识符 (SID)、后台进程名称和操作系统进程号。RECO  进程的跟踪文件示例为mytest_reco_10355.trc:

  • • 前台跟踪文件存储来自服务器进程的信息。当进程检测到内部错误时,它会将错误信息转储到其跟踪文件中。服务器进程跟踪文件名包含 Oracle SID、字符串ora和操作系统进程号。服务器进程跟踪文件名示例为 <server_process_id> mytest_ora_10304.trc。

  • • 转储文件是一种特殊的跟踪文件,其中包含有关状态或结构的详细时间点信息。转储文件通常是对某个事件的一次性诊断数据输出,而跟踪文件则往往是连续的诊断数据输出。

  • • 健康监控报告包含来自健康监控框架的诊断检查结果。健康检查可以检测文件损坏、物理块和逻辑块损坏、撤销和重做损坏、数据字典损坏等等。健康检查会生成检查结果报告,并且在许多情况下,还会提供解决问题的建议。

  • • 事件包包含用于将诊断数据上传到  Oracle 支持的信息。事件包是存储在 ADR 中的元数据集合,指向 ADR  内外的诊断数据文件和其他文件。创建事件包时,您可以选择一个或多个问题添加到其中。然后,支持工作台会自动将与所选问题关联的问题信息、事件信息和诊断数据(例如跟踪文件和转储文件)添加到事件包中。

  • • 事件转储文件包含 Oracle AI 数据库在事件发生时收集的诊断数据。数据库会将一个或多个转储文件写入为该事件创建的事件目录。事件转储文件的文件名中还包含事件编号。

  • • 告警日志文件是按时间顺序记录消息和错误的日志。Oracle 建议您定期查看告警日志。

备份文件

图片.png

您可以创建以下几种类型的备份:

  • • 逻辑备份包含表、存储过程和其他逻辑数据。您可以使用 Oracle AI 数据库实用程序(例如数据泵导出)提取逻辑数据,并将其存储在磁盘上的二进制文件中。逻辑备份可以作为物理备份的补充。

  • • 物理备份是数据库文件的物理副本。您可以使用恢复管理器 (RMAN)或操作系统自带的实用程序创建物理备份。

使用 RMAN 时,您可以将以下类型的备份格式存储在磁盘上:

  • • 镜像副本是指数据文件、控制文件或归档重做日志文件的逐位磁盘副本。您可以使用操作系统实用程序或 RMAN 创建物理文件的镜像副本,并使用任一工具进行还原。镜像副本对于磁盘非常有用,因为您可以对其进行增量更新并进行原地恢复。

  • • 备份集是  RMAN  创建的一种专有格式。它包含来自一个或多个数据文件、归档重做日志文件、控制文件或服务器参数文件的数据。备份集的最小单元是称为备份片段的二进制文件。备份集是  RMAN 唯一能够将备份写入顺序设备(例如磁带驱动器)的格式。备份集的一个优点是 RMAN  使用未使用块压缩来节省备份数据文件的空间。备份集仅包含数据文件中已用于存储数据的块。备份集还可以进行压缩、加密和写入磁带。它们可以使用数据文件副本所不具备的高级未使用空间压缩技术。

RMAN 还可以与媒体管理库 (MML) 或系统备份到磁带 (SBT) 软件进行交互,从而创建磁带备份、Oracle 数据库备份云服务或零数据丢失恢复设备(通常称为恢复设备)。

引用链接

[1] 《Oracle Real Application Clusters 19c 技术架构》: https://docs.oracle.com/en/database/oracle/oracle-database/26/adrac/rac_db_config.html
[2] 《关于在CDB中使用可管理性功能》: https://docs.oracle.com/en/database/oracle/oracle-database/26/multi/administering-a-cdb-with-sql-plus.html#GUID-DF42C0D3-8968-4810-9327-9D176337D356

参考链接

https://docs.oracle.com/en/database/oracle/oracle-database/26/cncpt/introduction-to-oracle-database.html#GUID-8F2EEEC8-0372-4419-88FF-7D77A9C0FCAD
https://docs.oracle.com/en/database/oracle/oracle-database/26/dbiad/db_dbserver.html
https://docs.oracle.com/en/database/oracle/oracle-database/26/adrac/rac_db_config.html

全文完,希望可以帮到正在阅读的你,如果觉得有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!

——————————————————————————

公众号:JiekeXu DBA之路

墨天轮:https://www.modb.pro/u/4347

CSDN :https://blog.csdn.net/JiekeXu

ITPUB:https://blog.itpub.net/69968215

IFCLUB:https://ifclub.com.cn/user?type=1

腾讯云:https://cloud.tencent.com/developer/user/5645107 ——————————————————————————

图片

第三批国测公布:国产数据库新势力的破局与价值

2024 年公众号 JiekeXu DBA之路历史文章合集

2023 年公众号 JiekeXu DBA之路历史文章合集

2022 年公众号 JiekeXu DBA之路历史文章合集

2021 年公众号历史文章合集

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐