后台进程用来执行保证数据库运行所需的实际维护任务如某个后台进程维护缓沖区缓存根据需要将块写出到数据文件
另个进程负责在线重做日志文件写满时将它自己复制到一个归档目标
可以通过查询v$bgprocess视图看服务器当前后台进程
SQL> select paddrnamedescription from v$bgprocess where paddr!=;
PADDR NAME DESCRIPTION
EBF PMON process cleanup
ECB VKTM Virtual Keeper of TiMe process
EBFA GEN generic
F DIAG diagnosibility process
ECBB DBRM DataBase Resource Manager
EBA VKRM Virtual sKeduler for Resource Manager
FC PSP process spawner
EBFA DIA diagnosibility process
FAC MMAN Memory Manager
ECC DBW db writer process
EBFAA DBW db writer process
EBFFE ARC Archival Process
FC ARC Archival Process
EC ARC Archival Process
EBEA ARC Archival Process
FB LGWR Redo etc
ECCB CKPT checkpoint
EBFB SMON System Monitor Process
EBFCCA SMCO Space Manager Process
FCC RECO distributed recovery
PADDR NAME DESCRIPTION
EBF CJQ Job Queue Coordinator
F QMNC AQ Coordinator
ECAD MMON Manageability Monitor Process
EBFABA MMNL Manageability Monitor Process
根据版本的不同后台进程数名称类型等都可能不同
中心后台进程
PMON(进程监视器)负责在出现异常中止的连接后完成清理PMON还会向oracle TNS监听器注册通信向它传递相关的参数
SMON(系统监视器)完成所有的系统级任务包括以下内容
清理临时空间合并空闲空间针对原来不可用的文件恢复活动的事务执行RAC中失败节点的实例恢复清理OBJ$收缩回滚段‘离线’回滚段
RECO(分布式数据库恢复)基于PC分布式协议允许多个不同的修改实现原子提交但是在真正提交前出现网络失败等错误事务成为一个可疑的分布式事务此时
就需要RECO来负责联系事务协调器来发现协调的结果在这之前事务会保持未提交状态当恢复网络或者错误解决后RECO可能会提交事务也可能将事务回滚
注:可疑分布式事务会导致写阻塞读的情况即可疑分布式事务不能存在太长时间DBA可自行手动提交或回滚
CKPT(检查点进程):建立检查点主要是DBWn的任务CKPT主要是更新数据文件的文件首部从而辅助真正的建立检查点的进程
DBWn(数据库块写入器):负责将髒块(修改过的块)写入磁盘的后台进程它会写出缓沖区缓存的髒块从而释放相应的空间可以配置多个DBWn(上面有个DBW和DBW)
最好的情况是DBWn使用异步I/O将块写入磁盘采用异步I/ODBWn会收集要写入的块交给操作系统然后立即返回并收集下一批要写的块操作系统完成写文件操作之后它会异步地通知DBWn
LGWR(日志写入器):它负责将SGA中重做日志缓沖区的内容刷新输出到磁盘一般在下面几个情况时候LGWR就会执行刷新操作:
每隔秒会自动刷新一次
任何事务发出一个提交时
重做日志缓沖区/满或者包含MB的缓沖数据的时候
ARCn(归档进程):当LGWR将在线重做日志写满时归档进程就将其复制到另一个位置ARCn一般将在线重做日志至少复制到两个位置一般用于硬盘等介质损坏时数据库的恢复
DIAG(诊断性进程):它会负责监视实例的整体状况捕获处理实例失败时所需的信息并记录
FBDA(闪回数据归档进程):此进程为oracle g r版本新增进程主要用于闪回数据它主要维护随时间对表中每行所做的改变而实现历史数据查询它将读取事务生成的UNDO并回滚事务做出的改变然后将回滚的这些行记录保存在闪回数据归档中
DBRM(数据库资源管理器进程):为数据库实例配置资源计划
GEN(通用任务执行进程):主要是分担另外某个进程的阻塞处理
可选后台进程:
ASMB(自动存储管理后台):该进程出现在ASM的数据库实例中它负责与管理存储的ASM实例通信向ASM实例提供更新的统计信息并向ASM实例提供一个"心跳"
RBAL(重新平衡进程):该进程也在使用了ASM的数据库实例中运行向ASM磁盘组增加或去除磁盘时它负责处理平衡请求也就是重新分布负载请求
RAC环境后台进程
LMON(锁监视器):监视集群中的所有实例检测实例是否有失败在实例离开或重新加入集群时重新配置锁和其他资源
LMD(锁管理器守护进程):它为全局缓存服务(保持块缓沖区在实例间一致)处理锁管理器服务请求
LMSn(锁管理器服务器进程):主要维持SGA块缓沖区缓存在各个RAC实例间相互保持一致
LOCK(锁进程):与LMD相似但它处理所有全局资源的请求
工具后台进程
CJQO和Jnnn(作业队列进程):oracle通过一种称为快照的数据库对象来提供复制特性作业队列就是刷新快照时使用的内部机制
QMNC和Qnnn(高级队列进程):QMNC会监视高级队列并告诉从队列中删除等待消息的"出队进程":已经有一个消息变为可用它们还要负责队列传播
EMNC(事件监视器进程):它是AQ体系结构中的一部分用于通知对某些消息感兴趣的队列
DMnn和DWnn(数据泵主进程/工作进程):数据泵是oracle g r中新增的特性主要用来替代EXP/IMP
其他后台进程
PSPO(进程生成器进程):它主要负责生成各个后台进程
VKTM(虚拟时间管理器进程):为oracle实例实现一个一致的细粒度的时钟
SMCO(空间管理协调器进程):协调数据库的主动空间管理