Oracle体系结构-SMON详解

来源:这里教程网 时间:2026-03-03 22:40:39 作者:

一、SMON的设计定位

SMON是Oracle实例启动时自动创建的核心后台进程之一,其核心角色是 系统级“垃圾回收器”与“恢复协调器”。与PMON(关注单个进程异常)不同,SMON聚焦于全局性维护任务,确保数据库的一致性与空间效率。其设计目标包括:

故障恢复自动化:在实例崩溃后自动执行恢复。 空间资源优化:清理临时对象、合并碎片空间。 数据字典健康维护:清理无效元数据条目。 RAC环境协同:支持集群节点的故障转移恢复。

二、核心功能与工作原理

1. 实例恢复(Instance Recovery)

触发条件:数据库异常关闭(如服务器断电)导致数据文件、控制文件、重做日志的SCN不一致。 恢复流程 前滚(Roll Forward):SMON从重做日志中读取最后一次检查点后的所有重做记录,重演已提交和未提交的事务,确保数据文件包含崩溃前的所有变更。 回滚(Roll Back):前滚后,SMON利用Undo段回滚未提交的事务,确保数据一致性。 优化机制增量检查点(Incremental Checkpoint)减少恢复时间。 参数
FAST_START_MTTR_TARGET
控制恢复时长上限。

2. 空间管理

临时段清理
异常操作(如索引创建中断)遗留的临时段(
SEGMENT_TYPE='TEMPORARY'
)由SMON自动回收。
可通过查询
DBA_EXTENTS
监控临时段数量变化。
空闲区间合并(Coalesce Free Extents)
仅限字典管理表空间(DMT):SMON合并物理相邻的空闲Extent,形成更大连续空间。
触发条件:表空间的
PCTINCREASE
设置非零值,且SMON每5分钟自动唤醒检查。
性能影响:合并需持有排他锁(ST锁),可能引发
ORA-01575
等待或高CPU消耗。

3. 数据字典维护

清理OBJ$基表
OBJ$存储所有对象(表、索引等)的元数据。SMON定期删除已删除对象或“NOT THERE”对象的无效条目(
TYPE#=10
),防止表膨胀。
清理频率:实例启动后每12小时执行一次。

4. 回滚段管理

自动收缩:若回滚段设置
OPTIMAL
大小,SMON将其收缩至该值。
离线回滚段处理:标记为离线但仍有活动事务的回滚段,SMON周期性尝试真正离线。

5. RAC环境中的扩展角色

节点故障恢复:集群中某实例崩溃时,存活节点的SMON读取故障实例的重做日志,完成数据恢复。

三、SMON的触发机制与行为特征

功能模块 触发条件 关键行为
实例恢复 数据库异常关闭后重启 前滚重做日志 → 回滚未提交事务
临时段清理 会话异常终止(如索引创建失败) 回收临时段空间,更新
DBA_EXTENTS
空闲区间合并 DMT表空间 +
PCTINCREASE≠0
+ 每5分钟定时唤醒
持有ST锁合并相邻Extent,可能阻塞DDL操作
OBJ$清理 实例启动后每12小时 删除
TYPE#=10
且无依赖的无效记录
回滚段收缩 回滚段大小超过
OPTIMAL
设定
动态收缩至
OPTIMAL

四、性能影响与优化策略

    CPU资源消耗
    SMON周期性执行维护任务(如合并空间、清理OBJ$),可能持续占用高CPU,属正常现象。
    异常排查:若CPU长期满载,需检查是否有大规模事务回滚或碎片合并。

    锁竞争问题
    空间合并需持有排他性ST锁,可能引发DDL操作等待(

    ORA-01575
    )。
    优化建议

    迁移表空间至本地管理(LMT),避免合并操作。 禁用空闲合并:
    ALTER SYSTEM SET EVENT='10269 TRACE NAME CONTEXT FOREVER, LEVEL 10'

    大事务回滚加速
    参数

    FAST_START_PARALLEL_ROLLBACK
    控制SMON回滚并行度:

    HIGH
    :并行度=4×CPU数,加速大规模事务恢复。

五、SMON在Oracle体系中的协同关系

与CKPT协作:CKPT触发检查点,SMON利用检查点SCN确定恢复起点。 与PMON互补:PMON清理失败进程的资源;SMON处理系统级残留(如临时段)。 与DBWn联动:实例恢复时,SMON指导DBWn写入恢复后的脏块。

六、总结:SMON的核心价值

SMON是Oracle自治管理的核心引擎,其设计体现了 “自我修复”与“资源自治” 的理念:

高可靠性保障:通过自动化恢复机制最大限度减少宕机影响。 空间效率优化:动态回收资源,提升数据库长期健康度。 适应性演进:随着Oracle架构升级(如LMT表空间、自动Undo管理),SMON职责逐步精简,但仍是系统健壮的基石。

相关推荐