oracle 体现结构
下面给你Oracle OCP 19c 体系结构(最标准、最完整、考试必背版),严格按照 082 官方考点整理,不废话、全是得分点。
一、Oracle 体系结构 = 两大块
- Instance(实例) —— 内存 + 进程
- Database(数据库) —— 物理文件
口诀:实例是活的,数据库是死的。
二、Instance(实例)= SGA + 后台进程
1. SGA(系统全局区)——所有用户共享
SGA 是共享内存,实例启动时分配,关闭消失。
SGA 主要组件(OCP必考)
-
Database Buffer Cache(数据缓冲区)
- 缓存数据块,减少 I/O
- LRU 算法管理
- 脏块(dirty block):修改过未写盘
-
Shared Pool(共享池)
- Library Cache:缓存 SQL、执行计划
- Data Dictionary Cache:缓存数据字典(表、用户、权限)
- Result Cache:查询结果缓存(11g+)
-
Redo Log Buffer(重做日志缓冲区)
- 缓存 redo 条目
- 变化 vector,记录数据修改
- 循环使用,很小、写非常快
-
Large Pool
- 大型内存分配:RMAN、共享服务器、并行执行
- 不使用 LRU
-
Java Pool
- Java 代码运行内存
-
Streams Pool
- Streams/Goldengate 用
2. PGA(程序全局区)——每个进程私有
- 不共享,每个服务器进程独立一份
- 存放:排序区、哈希区、会话变量、游标状态
- 排序操作(ORDER BY、GROUP BY、JOIN)都在 PGA
3. 后台进程(Background Processes)OCP必考
必须记住作用,考试只考作用!
-
PMON(Process Monitor)
- 清理失败进程
- 释放锁、回滚事务
- 动态注册监听
-
SMON(System Monitor)
- 实例恢复(Instance Recovery)
- 临时段清理
- 空间合并
-
DBWn(Database Writer)
- 把脏块从 Buffer Cache 写到数据文件
- 触发条件:
- 检查点
- 脏块太多
- 超时
- 表空间 offline
-
LGWR(Log Writer)
- 把 Redo Log Buffer 写到联机重做日志
- 必须先写 redo,再写数据(WAL 机制)
- 触发:
- 提交(COMMIT)
- 1/3 满
- 3 秒超时
- DBWn 写前
-
CKPT(Checkpoint)
- 发出检查点信号
- 更新控制文件 + 数据文件头的 SCN
-
MMON / MMNL
- AWR 快照、统计信息收集
-
ARCn(Archiver)
- 归档日志:把联机日志复制到归档路径
- 只有归档模式才运行
三、Database(数据库)= 三大物理文件
1. 数据文件(.dbf)
- 真实数据:表、索引、回滚、临时
2. 控制文件(.ctl)极其重要
- 很小、二进制
- 记录:
- 数据库名称
- 数据文件、日志文件列表
- 检查点 SCN、日志序列号
- 必须多路复用(multiplex),损坏则库无法 mount
3. 联机重做日志文件(.log)
- 循环写
- 至少两组,建议每组多路复用
- 记录所有修改,用于实例恢复、介质恢复
四、逻辑结构(从大到小,OCP必背顺序)
Database(数据库)
↓
Tablespace(表空间)
↓
Segment(段)→ 表段、索引段、UNDO段、临时段
↓
Extent(区)→ 连续数据块,空间分配单位
↓
Data Block(数据块)→ 最小I/O单位
关键要点
- 区(Extent):空间分配单位
- 块(Block):I/O 单位
- 表空间类型:
- PERMANENT:永久数据
- UNDO:回滚数据
- TEMPORARY:临时排序
五、实例启动三阶段(OCP 必考!)
-
NOMOUNT
- 启动实例(SGA+进程)
- 只读 spfile/pfile
- 不读控制文件、数据文件
-
MOUNT
- 加载 控制文件
- 知道数据文件/日志文件位置
- 不打开文件
-
OPEN
- 打开 数据文件 + 联机日志
- 检查 SCN 一致性
- 正常提供服务
六、最重要机制:WAL(Write-Ahead Logging)
规则永远不变:
先写 redo → 再提交 → 最后 DBWn 写数据
保证:只要提交成功,数据永不丢失。
七、OCP 体系结构高频考题总结(必背)
- SGA 共享,PGA 私有。
- LGWR 负责 commit 落地。
- DBWn 异步写数据文件。
- CKPT 更新控制文件与数据文件头 SCN。
- SMON 做实例恢复。
- 控制文件是数据库核心,不开放编辑。
- 启动顺序:NOMOUNT → MOUNT → OPEN。
- 逻辑结构:库→表空间→段→区→块。
浙公网安备 33010602011771号