了解Oracle中的体系结构

目录

[一、Oracle DB 服务器体系结构](#一、Oracle DB 服务器体系结构)

二、数据库实例

[三、Oracle DB内存结构](#三、Oracle DB内存结构)


一、Oracle DB 服务器体系结构

数据库是被视为单元的数据集合,用于存储和检索相关信息。

Oracle DB 服务器体系结构包含以下三种主要结构:内存结构、进程结构和存储结构。基本的 Oracle DB 系统由 Oracle DB 和数据库实例组成。

数据库包括物理结构和逻辑结构。由于物理结构和逻辑结构是分开的,因此管理数据的物理存储时不会影响对逻辑存储结构的访问。

**实例由与该实例关联的内存结构和后台进程构成。每当启动一个实例时,都会分配一个称为系统全局区(SGA)的共享内存区,并启动后台进程。**进程是在计算机的内存中运行的作业。进程被定义为操作系统中可运行一系列步骤的"控制线程"或机制。启动数据库实例后,Oracle 软件会将该实例与特定数据库相关联。该操作称为"装载数据库"。之后用户可以打开数据库,即授权用户可以对其进行访问。

注:Oracle 自动存储管理(ASM)在管理内存和进程组件时使用实例概念,不与特定数据库关联。

二、数据库实例

实例:实例是基于数据库物理层之上的又一个逻辑结构,由与该实例关联的内存结构和后台进程构成。

每个数据库实例都与一个并且只与一个 数据库关联。如果同一服务器上有多个数据库**那么每个数据库会有一个单独的数据库实例。**数据库实例不能共享。Oracle Real Applications Cluster (RAC)数据库通常在几个独立服务器上运行共享同一数据库的多个实例。在此模式下,每个 RAC实例都与同一数据库相关联,从而满足了最多只能有一个数据库与一个实例关联的要求。

那为什么Oracle中不直接舍去实例这个名词,而直接使用数据库?

Oracle中的实例(Instance) 和**数据库(Database)**分离是其架构的核心设计特色。

数据库(database):

-- 数据库是物理存在的

物理文件 = 数据文件 + 控制文件 + 重做日志文件

永久存储

实例(Instance)

-- 实例是运行时的

实例 = 内存结构(SGA) + 后台进程

临时存在(可启动/关闭)

在了解了两者之间的区别后,就能看出有了实例具有以下优势:

1)多对一关系(关键原因)

-- 一个数据库可以被多个实例访问(RAC环境)

数据库(共享存储)

实例1 实例2 实例3 ← 不同服务器上的实例

(节点A)(节点B)(节点C)

2)生命周期

数据库:永久存在(除非删除文件)

物理文件 → 持续存在

实例:临时存在

SQL> STARTUP # 创建实例

SQL> SHUTDOWN # 销毁实例

实例可以频繁启停,数据库保持不变

3)资源隔离

-- 不同实例可以配置不同的内存参数

实例A:SGA_SIZE=8G, PGA_AGGREGATE_TARGET=2G

实例B:SGA_SIZE=16G, PGA_AGGREGATE_TARGET=4G

-- 但访问同一个数据库的数据文件

两者都访问:/oradata/orcl/users01.dbf

三、Oracle DB内存结构

Oracle DB 创建并使用内存结构来满足多种需要。例如,使用内存来存储正在运行的程序代码、在各用户之间共享的数据以及所连接的每个用户的专用数据区域。一个实例有两个关联的基本内存结构:

系统全局区 (SGA):一组共享的内存结构(称为SGA组件),其中包含一个OracleDB 实例的数据和控制信息。SGA由所有服务器进程和后台进程共享。SGA中存储的数据有高速缓存的数据块和共享 SOL 区域等

程序全局区 (PGA):包含某个服务器进程或后台进程的数据及控制信息的内存区域。PGA 是 Oracle DB 在服务器进程或后台进程启动时创建的非共享内存。服务器进程对PGA的访问是独占式的。每个服务器进程和后台进程都具有自己的PGA。

相关推荐
数智启示录几秒前
Apache Doris 4.0.8 CDC 正确性(第 9 篇):Flink Checkpoint 一直成功,表里为什么仍是旧数据
大数据·数据库·经验分享·面试·flink
拾光Ծ1 小时前
【MySQL】对表数据的操作:增删查改(CRUD)
android·数据库·sql·mysql
这个DBA有点耶15 小时前
2026年分布式数据库有哪些主流选择?先评估这5个维度再决定
数据库·分布式·dba
这个DBA有点耶17 小时前
从MySQL 5.7到8.0:JSON查询性能差在哪?虚拟列索引vs多值索引怎么选
数据库·mysql·架构
胡写代码17 小时前
数据库审计字段,别再每张表各写一套了——我统一成这 6 个字段
数据库
SelectDB21 小时前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent
ClouGence1 天前
开源数据库管理工具 CloudDM 4.2.0 发布,新增 GoldenDB、KingbaseES 等数据源
数据库·dba·devops
发霉的馒头1 天前
ORA-00845: MEMORY_TARGET not supported on this system的解决方法
数据库
草莓熊Lotso1 天前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
煎饼皮皮侠1 天前
【设计】设计一个web版的数据库管理平台后端(之五) --借鉴mybatis
数据库·mybatis