Oracle后台进程

Oracle后台进程

后台进程

Oracle数据库中的主要后台进程包括:

  1. SMON - 系统监控进程,负责实例和数据库恢复。

  2. PMON - 进程监控进程,负责进程控制和故障转移。

  3. DBWn - 数据库写进程,负责将缓冲区数据刷新到数据文件。

  4. LGWR - 日志写进程,负责将日志缓冲区数据写入日志文件。

  5. CKPT - 检查点进程,负责进行数据文件和控制文件的检查点更新。

  6. MMON - 内存监控进程,负责监控和优化SGA内存。

  7. ARCn - 归档进程,负责存档和备份填满的日志文件。

  8. RECO - 恢复进程,负责控制和协调数据库恢复操作。

  9. MMAN - 内存管理进程,管理数据库内存结构。

  10. MMNL - 共享服务器监视进程,管理共享服务器进程。

这些关键进程对于维护Oracle数据库的可靠性、性能和高可用性起着非常重要的作用。

SMON

smon(System Monitor)是Oracle数据库中的一个重要后台进程,主要负责进行数据库恢复和实例恢复相关的工作。

smon进程的主要功能包括:

  1. 进行闪回数据库的恢复 - 如果数据库发生故障,smon会根据存档日志文件中的信息恢复数据库。

  2. 进行介质(Media)恢复 - 如果数据文件损坏或丢失,smon可以用备份文件进行恢复。

  3. 进行实例恢复 - 如果实例异常关闭,smon会重新启动实例。

  4. 清理数据库文件 - smon会自动清理不再使用的回滚段、临时段等数据库文件。

  5. 管理表空间 - smon负责监控表空间的使用情况。

  6. 空闲空间回收 - smon会自动回收对象删除后产生的空闲空间。

  7. 字典管理 - smon会监控数据字典的一致性。

smon进程对保证Oracle数据库的高可用性非常重要,需要持续运行并周期性地执行上述恢复和清理任务。

PMON

pmon(Process Monitor)是Oracle数据库中的后台进程,主要负责进程控制和恢复相关的工作。

pmon进程的主要功能包括:

  1. 进程控制 - 负责启动和结束所有Oracle后台进程,以及进程故障转移。

  2. 进程恢复 - 如果有进程异常终止,pmon负责重新启动该进程。

  3. 清理进程产生的临时文件 - pmon会定期清理因进程运行而产生的临时文件。

  4. 跟踪和记录警告 - pmon会跟踪和记录各种警告信息,如参数文件错误等。

  5. 监控进程状态 - pmon定期监控检查所有Oracle进程的状态。

  6. 执行进程故障转移 - 当实例失败时,pmon负责将进程转移到另一个实例。

  7. 执行原始磁盘恢复 - pmon负责根据存档日志执行数据库恢复。

  8. 管理和监控属性文件 - 监视属性文件的参数设置。

pmon对于保证Oracle实例和数据库的正常运行非常重要,需要持续运行并进行各种监控、恢复和故障转移的工作。

DBWn

DBWn(Database Writer)是Oracle数据库中的后台进程,主要负责将数据从SGA(System Global Area,系统全局区域)刷新到数据文件中的工作。

DBWn进程的主要功能包括:

  1. 将脏数据块刷新到数据文件 - 当一个数据块在SGA中被修改后,DBWn将其写回磁盘。

  2. 编写整表扫描的数据块 - 当全表扫描读取数据块时,DBWn会及时将扫描过的数据块写回磁盘。

  3. 日志写操作 - DBWn按需执行Redo日志文件块的写入。

  4. 数据文件异步IO - DBWn根据需要进行数据文件异步IO操作。

  5. 保证写一致性 - 如果写操作出现故障,DBWn会负责重做写操作。

  6. 执行检查点操作 - DBWn定期执行检查点,将脏数据块刷新到数据文件。

  7. 空闲空间回收 - DBWn会将Drop操作释放的空间标记为空闲以供重用。

DBWn对于提高数据库性能非常重要,合理配置DBWn进程可以减少IO瓶颈,改善 OLTP系统的响应时间。

LGWR

LGWR(Log Writer)是Oracle数据库中的后台进程,负责管理重做日志缓冲区并将其内容刷新到联机重做日志文件中。

LGWR进程的主要功能包括:

  1. 将日志缓冲区的日志记录刷新到重做日志文件。

  2. 执行日志文件的切换操作。当当前重做日志文件填满时,LGWR会切换到下一个日志文件。

  3. 保证事务日志记录写入磁盘。LGWR会确保事务提交前将相关的日志记录刷新到磁盘中。

  4. 执行日志文件的ARCHIVE操作。LGWR会在日志切换时,将已存档的日志文件拷贝到存档目录中。

  5. 在实例恢复时应用存档日志文件来重做变更操作。

  6. 管理存储系统中的日志文件。如添加、删除重做日志文件的文件管理工作。

  7. 跟踪当前使用的日志文件和存档日志文件。

LGWR对保证Oracle数据库的事务和恢复机制至关重要。合理配置LGWR可以优化日志写入性能,减少数据丢失的风险。

CKPT

CKPT(CheckPoint)是Oracle数据库中的一个后台进程,主要负责执行检查点来更新数据文件头和控制文件中的信息。

CKPT进程的主要功能包括:

  1. 定期执行检查点 - 在日志切换或满足一定条件时,CKPT会创建一个检查点,将相关信息写入数据文件头和控制文件。

  2. 记录SCN - 在检查点时,CKPT会保存当前的系统变更号(SCN),用于恢复。

  3. 写入datafile文件头 - 在检查点时,CKPT会保存datafile文件的相关信息,如文件序号、块数量等。

  4. 写入控制文件 - CKPT会保存检查点创建时间、SCN号、数据文件信息等 metadata 到控制文件。

  5. 支持实例恢复 - 如果实例失败,可以根据控制文件中的信息进行实例恢复。

  6. 跟踪表空间使用 - CKPT会跟踪表空间的空闲空间信息。

  7. 管理存档日志 - CKPT负责标记存档日志是否可被覆写。

CKPT进程对保证数据库可以恢复至最近的一致性检查点非常重要。合理配置CKPT可以减少故障恢复时间。

MMON

MMON(Memory Monitor) 是Oracle数据库中的后台进程,主要负责监控和调节SGA(System Global Area)的内存使用情况。

MMON进程的主要功能包括:

  1. 监控SGA组件的内存使用 - 跟踪共享池、缓冲区高速缓存等SGA组件的内存分配和使用情况。

  2. 调节共享池的大小 - 根据内存使用情况,自动调整共享池大小以释放或申请更多SGA内存。

  3. 跟踪缓冲区缓存的使用情况 - 监控缓冲区缓存中脏块的数量,并发出写回请求。

  4. 优化内存的分配和使用 - 将未使用的内存重新分配给需要的SGA组件。

  5. 生成内存监控报告 - 收集内存使用情况并生成相关报告。

  6. 跟踪共享池锁等待 - 找出导致共享池争用的SQL语句。

  7. 优化执行SQL语句的内存 - 分析SQL语句的内存需求并优化内存分配。

MMON通过主动监控和调节SGA的使用,从而优化Oracle数据库的内存性能,防止不必要的内存争用。

MMNL

MMNL(Shared Server Monitor Light)是Oracle数据库中负责共享服务器连接管理和监控的后台进程。

MMNL进程的主要功能包括:

  1. 监控共享服务器进程的连接和会话 - 跟踪每个服务器进程处理的用户连接和会话数量。

  2. 均衡调度会话请求 - 根据服务器进程的负载情况,将新的用户会话请求分配给负载较轻的进程。

  3. 监控服务器进程状态 - 检测和报告服务器进程的异常终止等问题。

  4. 共享服务器进程管理 - 在需要时启动或终止服务器进程。

  5. 参数和规则管理 - 根据配置和规则动态调整共享服务器的相关参数。

  6. 性能统计 - 收集服务器进程的性能和统计数据。

  7. 问题诊断 - 分析并报告共享服务器相关的性能或故障问题。

  8. 共享池管理 - 与MMON协同,管理共享池的内存使用情况。

MMNL使得共享服务器模式可以灵活管理和优化资源使用情况,更好地支持多用户连接。

MMAN

MMAN(Memory Manager)是Oracle数据库中的后台进程,主要负责数据库内存管理和分配的工作。

MMAN进程的主要功能包括:

  1. 大内存分配 - 负责分配大于1M的大内存,比如共享池、数据缓冲区等。

  2. SGA内存管理 - 管理系统全局区(SGA)的内存结构和分配。

  3. 跟踪SGA组件内存使用 - 监控各个SGA组件如共享池、缓冲区的内存分配情况。

  4. 动态SGA调整 - 根据总体内存使用情况,优化和调整SGA各组件的大小。

  5. 大内存释放 - 收回未使用的大内存给操作系统,避免浪费。

  6. 内存碎片整理 - 通过整合释放空间减少内存碎片。

  7. 内存分配策略 - 根据不同的内存分配需求采用不同的内存分配算法。

  8. Out of Memory监控 - 监控和报告内存不足的情况。

MMAN通过主动内存管理和优化,使得Oracle数据库可以高效稳定地运行,避免不必要的内存开销。

LREG

LREG(Listener Registration) 是Oracle数据库中的一个后台进程,主要负责管理监听器进程(Listener)的注册信息。

LREG进程的主要功能包括:

  1. 维护监听器注册数据 - 在本地实例中维护哪些数据库服务可通过监听器访问。

  2. 处理服务注册请求 - 将新启动的数据库实例服务注册到监听器中。

  3. 服务下线通知 - 将数据库实例关闭时发出的服务下线通知传递给监听器。

  4. 连接服务请求转发 - 将监听器收到的连接请求转发给相应的数据库实例。

  5. 高可用性支持 - 在RAC环境下,管理多个实例对同一服务的注册。

  6. 信息同步 - 在RAC中,同步集群中各节点的监听器注册信息。

  7. 注册表管理 - 维护监听器的服务注册表,存储每个数据库服务的信息。

  8. 安全管理 - 确保只有授权过的数据库实例可以注册服务。

LREG使监听器能够动态感知数据库服务的运行状态,是Oracle数据库跟监听器集成的关键组件。

ARCn

ARCn(Archiver Process)是Oracle数据库中的后台进程,主要负责存档重做日志文件。

ARC进程的主要功能包括:

  1. 归档重做日志 - 当日志文件切换时,将填满的日志文件存档到指定的存档目录中。

  2. 验证存档 - 验证重做日志是否正确写入到存档文件中。

  3. 优化归档操作 - 根据重做日志大小,调整存档的参数,以优化性能。

  4. 异步存档模式 - 支持重做日志的异步归档。

  5. 跟踪存档状态 - 记录存档进程的状态,是否遇到错误等。

  6. 删除过期存档 - 在存档成功后,可以删除源重做日志文件释放空间。

  7. 满足恢复需求 - 确保所有需要的存档日志都可用于恢复。

  8. 故障转移支持 - 在RAC环境下,进行存档操作的容错和转移。

ARC进程对于保证重做日志的完整性以支持恢复至关重要。合理配置可以大幅优化存档过程中的性能。

RECO

RECO(Recoverer Process)是Oracle数据库中的一个后台恢复进程,主要负责处理恢复相关的操作。

RECO进程的主要功能包括:

  1. 协调恢复操作 - 协调并行恢复多个数据块的操作。

  2. 应用重做日志 - 根据存档的重做日志应用变更来恢复数据库。

  3. 跟踪恢复进度 - 记录数据库对象的恢复进度和状态。

  4. 介质恢复 - 使用备份文件来恢复因介质故障导致的数据丢失。

  5. 数据库完全恢复 - 将数据库恢复到指定时间点或系统变更号(SCN)。

  6. 阻塞回滚 - 在特定情况下阻止事务回滚的恢复操作。

  7. 跟踪Bad Block - 记录数据库恢复过程中发现的坏块。

  8. 收集统计信息 - 收集有关恢复操作的统计和性能指标。

RECO进程对于保证Oracle数据库可以可靠地进行数据恢复至关重要。

posted @ 2023-07-27 16:56  BBBone  阅读(1024)  评论(0编辑  收藏  举报