以下为Oracle数据库体系结构的综合架构图,整合了核心组件及其交互关系

架构图说明:
1. 三层体系结构
- 客户端层:应用程序通过用户进程发起请求
- 实例层:Oracle核心处理引擎
- 存储层:物理文件存储系统
2. SGA核心组件
| 组件 | 功能 | 关键子组件 |
|---|---|---|
| Shared Pool | SQL/PLSQL解析与执行计划缓存 | Library Cache, Row Cache |
| Database Buffer Cache | 数据块缓存区 | Default/Keep/Recycle Pool |
| Redo Log Buffer | 事务修改的临时日志存储 | 循环缓冲区 |
| Large Pool | 备份/RMAN操作内存池 | 共享服务器UGA |
| In-Memory Store | 列式内存存储(选件) | IM列存储单元 |
3. 核心后台进程
| 进程 | 功能 | 关键协作 |
|---|---|---|
| DBWn | 脏块写入数据文件 | 受CKPT触发,与LGWR协同 |
| LGWR | 日志缓冲写入重做日志 | 事务提交时同步写入 |
| CKPT | 检查点管理,更新控制文件 | 协调DBWn和SMON |
| SMON | 实例恢复与空间管理 | 崩溃后自动恢复,清理临时段 |
| PMON | 失败进程清理与会话恢复 | 释放锁和资源 |
| ARCn | 归档重做日志 | 数据保护和PITR关键 |
4. 物理存储结构
| 文件类型 | 功能 | 内容特点 |
|---|---|---|
| 数据文件(.dbf) | 持久化存储表/索引数据 | 按数据块(8K-32K)组织 |
| 控制文件(.ctl) | 数据库元数据存储 | 记录数据库结构、SCN、检查点 |
| 重做日志(.log) | 事务修改的物理记录 | 循环写入,保证可恢复性 |
| 归档日志(.arc) | 历史重做日志备份 | 支持时间点恢复和Data Guard |
5. 关键数据流
- SQL处理流:
用户进程 → 服务器进程 → Shared Pool解析 → Buffer Cache访问数据 - 事务提交流:
提交命令 → Redo Log Buffer → LGWR同步写磁盘 → 返回确认 - 检查点流程:
CKPT触发 → DBWn写脏块 → 更新控制文件和数据文件头 - 崩溃恢复流:
重启实例 → SMON读取控制文件 → 前滚重做日志 → 回滚未提交事务
此架构图展示了Oracle的 "多进程+共享内存" 经典设计,通过SGA实现内存共享,后台进程异步处理I/O,在保证ACID的同时实现高性能。现代版本(12c+)引入多租户架构后,每个PDB共享同一实例但具有独立字典元数据,基础架构保持不变。
评论区