以下为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共享同一实例但具有独立字典元数据,基础架构保持不变。