oracle 体现结构

下面给你Oracle OCP 19c 体系结构(最标准、最完整、考试必背版),严格按照 082 官方考点整理,不废话、全是得分点

一、Oracle 体系结构 = 两大块

  1. Instance(实例) —— 内存 + 进程
  2. Database(数据库) —— 物理文件

口诀:实例是活的,数据库是死的。


二、Instance(实例)= SGA + 后台进程

1. SGA(系统全局区)——所有用户共享

SGA 是共享内存,实例启动时分配,关闭消失。

SGA 主要组件(OCP必考)

  1. Database Buffer Cache(数据缓冲区)

    • 缓存数据块,减少 I/O
    • LRU 算法管理
    • 脏块(dirty block):修改过未写盘
  2. Shared Pool(共享池)

    • Library Cache:缓存 SQL、执行计划
    • Data Dictionary Cache:缓存数据字典(表、用户、权限)
    • Result Cache:查询结果缓存(11g+)
  3. Redo Log Buffer(重做日志缓冲区)

    • 缓存 redo 条目
    • 变化 vector,记录数据修改
    • 循环使用,很小、写非常快
  4. Large Pool

    • 大型内存分配:RMAN、共享服务器、并行执行
    • 不使用 LRU
  5. Java Pool

    • Java 代码运行内存
  6. Streams Pool

    • Streams/Goldengate 用

2. PGA(程序全局区)——每个进程私有

  • 不共享,每个服务器进程独立一份
  • 存放:排序区、哈希区、会话变量、游标状态
  • 排序操作(ORDER BY、GROUP BY、JOIN)都在 PGA

3. 后台进程(Background Processes)OCP必考

必须记住作用,考试只考作用!

  1. PMON(Process Monitor)

    • 清理失败进程
    • 释放锁、回滚事务
    • 动态注册监听
  2. SMON(System Monitor)

    • 实例恢复(Instance Recovery)
    • 临时段清理
    • 空间合并
  3. DBWn(Database Writer)

    • 把脏块从 Buffer Cache 写到数据文件
    • 触发条件:
      • 检查点
      • 脏块太多
      • 超时
      • 表空间 offline
  4. LGWR(Log Writer)

    • 把 Redo Log Buffer 写到联机重做日志
    • 必须先写 redo,再写数据(WAL 机制)
    • 触发:
      • 提交(COMMIT)
      • 1/3 满
      • 3 秒超时
      • DBWn 写前
  5. CKPT(Checkpoint)

    • 发出检查点信号
    • 更新控制文件 + 数据文件头的 SCN
  6. MMON / MMNL

    • AWR 快照、统计信息收集
  7. 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 必考!)

  1. NOMOUNT

    • 启动实例(SGA+进程)
    • 只读 spfile/pfile
    • 不读控制文件、数据文件
  2. MOUNT

    • 加载 控制文件
    • 知道数据文件/日志文件位置
    • 不打开文件
  3. OPEN

    • 打开 数据文件 + 联机日志
    • 检查 SCN 一致性
    • 正常提供服务

六、最重要机制:WAL(Write-Ahead Logging)

规则永远不变:

先写 redo → 再提交 → 最后 DBWn 写数据

保证:只要提交成功,数据永不丢失


七、OCP 体系结构高频考题总结(必背)

  1. SGA 共享,PGA 私有。
  2. LGWR 负责 commit 落地。
  3. DBWn 异步写数据文件。
  4. CKPT 更新控制文件与数据文件头 SCN。
  5. SMON 做实例恢复。
  6. 控制文件是数据库核心,不开放编辑。
  7. 启动顺序:NOMOUNT → MOUNT → OPEN。
  8. 逻辑结构:库→表空间→段→区→块。

posted @ 2026-04-02 09:56  wuyingchun1987  阅读(3)  评论(0)    收藏  举报