读书笔记:Oracle数据库后台进程详解

我们的文章会在微信公众号IT民工的龙马人生博客网站( www.htz.pw )同步更新 ,欢迎关注收藏,也欢迎大家转载,但是请在文章开始地方标注文章出处,谢谢!
由于博客中有大量代码,通过页面浏览效果更佳。

本文为个人学习《Expert Oracle Database Architecture Techniques and Solutions for High Performance and Productivity(第四版本》一书过程中的笔记与理解分享,仅用于学习与交流,部分内容参考原书观点并结合>实际经验进行整理。若涉及版权问题,请联系删除或沟通处理。也请大家支持购买原版书籍。

Oracle数据库后台进程详解

Oracle数据库实例由两部分组成:内存结构(SGA)和一组后台进程。这些后台进程就像是数据库的"隐形守护者",默默执行着各种维护任务,确保数据库平稳运行。

后台进程的分类

Oracle的后台进程主要分为两大类:

  1. 专注特定任务的进程:如负责缓存管理的DBWn进程、负责日志写入的LGWR进程等
  2. 执行各种杂务的进程:如作业队列进程、监控进程等

如何查看后台进程

我们可以通过以下SQL查询当前运行的Oracle后台进程:

SELECT paddr, name, description FROM v$bgprocess WHERE paddr <> '00' ORDER BY paddr DESC;

或者通过查询V$PROCESS视图,其中PNAME不为空的记录也是后台进程。

核心后台进程详解

PMON(进程监视器)

PMON就像是数据库的"清洁工",主要负责:

  • 清理异常终止的连接(如会话突然断开)
  • 回滚未提交的事务
  • 释放锁和系统资源
  • 监控其他后台进程,必要时重启它们
SMON(系统监视器)

SMON是数据库的"系统管家",负责:

  • 清理临时空间
  • 合并空闲空间(在字典管理表空间中)
  • 恢复因文件不可用而跳过的故障事务
  • 在RAC环境中执行失败节点的实例恢复
  • 清理数据字典中的"垃圾"记录
LREG(监听器注册进程)

LREG是数据库的"通信官",负责:

  • 向Oracle监听器注册实例和服务
  • 定期(约60秒)检查监听器状态
  • 可以通过ALTER SYSTEM REGISTER命令手动触发注册
DBWn(数据库写入进程)

DBWn是数据库的"数据搬运工",负责:

  • 将脏数据块(修改过的块)从缓冲区写入数据文件
  • 可以配置多个DBWn进程(最多100个)
  • 主要采用异步I/O方式提高性能
LGWR(日志写入进程)

LGWR是数据库的"事务记录员",负责:

  • 将重做日志缓冲区内容写入在线重做日志文件
  • 在以下情况触发写入:
    • 每3秒
    • 提交事务时
    • 重做缓冲区填满1/3或达到1MB
    • 日志切换时
CKPT(检查点进程)

CKPT是数据库的"进度标记员",负责:

  • 更新数据文件头部的检查点信息
  • 协助DBWn推进检查点位置
ARCn(归档进程)

ARCn是数据库的"历史档案管理员",负责:

  • 在LGWR填满在线重做日志后将其复制到归档位置
  • 通常配置为至少复制到两个不同位置
  • 为数据库恢复提供基础

其他重要后台进程

RECO(分布式数据库恢复进程)

RECO专门处理分布式事务中的问题:

  • 恢复处于"准备"状态的分布式事务
  • 在两阶段提交过程中出现故障时发挥作用
MMON/MMNL(可管理性监控进程)

这些进程负责:

  • 收集性能统计数据
  • 自动检测数据库性能问题
  • 实现数据库自调优功能
CJQ0和Jnnn(作业队列进程)

这些进程负责:

  • 执行DBMS_JOB或DBMS_SCHEDULER安排的作业
  • 可以配置最多1000个作业队列进程
  • 按需启动,空闲时自动退出
QMNC和Qnnn(高级队列进程)

这些进程负责:

  • 监控和管理Oracle高级队列(AQ)
  • 处理消息通知和队列传播
  • 最多可配置40个进程

从属进程

Oracle还有两类特殊的从属进程:

  1. I/O从属进程

    • 在不支持异步I/O的系统上模拟异步I/O
    • 主要用于磁带设备操作和DBWn/LGWR的辅助
  2. 并行查询从属进程(Pnnn)

    • 支持并行查询执行
    • 将大任务分解为多个小任务并行处理

总结

Oracle的后台进程各司其职,共同维护数据库的健康运行。了解这些进程的功能对于数据库性能调优和故障排查至关重要。随着Oracle版本的更新,后台进程的数量和功能也在不断演进,但核心进程的基本职责保持相对稳定。

------------------作者介绍-----------------------
姓名:黄廷忠
现就职:Oracle中国高级服务团队
曾就职:OceanBase、云和恩墨、东方龙马等
电话、微信、QQ:18081072613
个人博客: (http://www.htz.pw)
CSDN地址: (https://blog.csdn.net/wwwhtzpw)
博客园地址: (https://www.cnblogs.com/www-htz-pw)

posted @ 2025-08-01 15:47  认真就输  阅读(24)  评论(0)    收藏  举报