一、ORACLE11G进程的分类:参考ORACLE的管理架构图,ORACLE的后台进程可以分为以下类别:
- General Processes
- Advanced Queueing Processes
- Automatic Storage Management Processes
- Data Guard Processes
- RMAN Processes
- Real Application Cluters Processes
详细的进程图欢迎下载:http://pan.baidu.com/s/1mgE4F0W
二、General Processes的介绍
1、请各位下载相应的pdf
1)进程的缩写名称后面有"0.."标识:代表该进程可以同时有几个;
2)代表是数据库的必须进程
3)代表11G产生的新特性
2、进程说明
ARC0:数据库的归档进程
当LGWR将在线重做日志文件填满时,就将其复制到另一个位置。虽然该进程为非ORACLE必须的进程,强烈建议打开ORACLE的归档模式备份;
CJQ0:作业队列
后台作业的管理进程;
CKPT:检查点进程,该进程为ORACLE运行时的必备进程
检查点进程并不像它的名字所暗示的那样真的建立检查点,建立检查点主要是DBWn的任务。CKPT只是更新数据文件的文件首部,以辅助真正建立检查点的进程(DBWn)。
DBRM:Oracle资源管理器(Oracle Database Resource Manager,以下简称DBRM)管理数据库资源;
为不同的会话分配不同的数据库资源。
DBWN:数据块写进程,该进程最多可以同时20个并行
负责将Oracle数据库缓冲区的脏缓冲写到数据文件内(脏缓冲是已经被修改,但未写入数据文件的数据)为了保证缓冲区能有空余缓冲供用户使用;
DIAn:数据库诊断进程
负责检测Oracle数据库中的挂起(hang)和死锁的处理。
DIAG:据库诊断进程, (The diagnosibility process)
负责维护管理各种用于诊断的转储文件,并执行oradebug命令
Dnnn:调度器
在共享模式下,即对每个在用(D000,...,Dnnn)的通信协议至少创建一个调度进程,每个调度进程负责从所联接的用户进程到可用服务器进程的路由请求。把响应返回给合适的用户进程。
EMNC:事件监控协调器
用于通知对某些消息感兴趣的队列
FDBA:闪回数据归档进程
用于将追踪表(traced table,也就是将指定使用flashback data archive的table)的历史变化数据转存到闪回归档区。
FMON:平面文件监控进程
Jnnn: CJQ0的从属进程
LGWR:写日志进程,ORACLE的必须进程
用于将SGA区中的日志信息写入日志文件的进程。一般是用户所作的修改值先记入日志文件。等到一定时才真正将修改结果写回数据文件。
MMAN:内存管理器(Memory Manager)
自动设置SGA大小特性,MMAN分配各个组件的大小。
MMNL:可管理性监视器(Manageability Monitor)
这些进程用于填充自动工作负载存储库(Automatic Workload Repository,AWR),这是Oracle 10g中新增的一个特性。MMNL进程会根据调度从SGA将统计结果刷新输出至数据库表。MMON进程用于"自动检测"数据库性能问题,并实现新增的自调整特性。Mnnn进程类似于作业队列的Jnnn或Qnnn进程;MMON进程会请求这些从属进程代表它完成工作。
PMON:进程管理器,必须进程
这个进程负责在出现异常中止的连接之后完成清理。PMON会回滚未提交的工作,并释放为失败进程分配的SGA资源。PMON还负责监视其他的Oracle后台进程,并在必要时(如果可能的话)重启这些后台进程。PMON还会为实例做另一件事,这就是向Oracle TNS监听器注册这个实例。实例启动时,PMON进程会询问公认的端口地址(除非直接指定),来查看是否启动并运行了一个监听器
Pnnn:并行查询从属进程
使用并行查询时,会看到名为Pnnn的进程,这些就是并行查询从属进程。处理一条并行语句时,服务器进程则称为并行查询协调器(parallel query coordinator)。操作系统上服务器进程的名字并不会改变,如果提到了协调器进程,你应该知道这就是原来的服务器进程。
PSP0:用于产生oracle进程
RCBG:高速缓存后台进程,支持新的结果高速缓存特
RECO:布式数据库恢复(Distributed Database Recovery)
RECO有一个很中心的任务:由于两段提交(two-phacommit,2PC)期间的崩溃或连接丢失等原因,有些事务可能会保持准备状态,这个进程就是要恢复这些事务。分布式事务可能导致写入器阻塞读取器(Oracle中只有此时会发生"写阻塞读"的情况)。
RVWR:恢复写入器(Recovery Writer)
这个进程也是Oracle 10g数据库中新增的一个可选进程,负责维护闪回恢复区中块的"前"映像,要与FLASHBACK DATABASE命令一起使用。
SMCO:空间管理器
SMCO 是主空间管理进程,可动态分配和回收空间。它将生成从进程 Wnnn 以执行这些任务。
SMON:系统监视器
SMON进程要完成所有"系统级"任务。是一种数据库"垃圾收集器"。SMON所做的工作包括:
清理临时空间:例如,建立一个索引时,创建时为索引分配的区段标记为TEMPORARY。如果出于某种原因CREATE INDEX会话中止了,SMON就要负责清理。其他操作创建的临时区段也要由SMON负责清理。
合并空闲空间:如果你在使用字典管理的表空间,SMON要负责取得表空间中相互连续的空闲区段,并把它们合并为一个更大的空闲区段。
针对原来不可用的文件恢复活动的事务:这类似于数据库启动时SMON的作用:SMON会恢复一些失败的活动事务。
执行RAC中失败节点的实例恢复:在一个Oracle RAC配置中,集群中的一个数据库实例失败时,为该失败实例完成所有数据的恢复。
清理OBJ$:OBJ$是一个低级数据字典表,SMON进程删除这些不再需要的行。
收缩回滚段:如果有设置,SMON会自动将回滚段收缩为所设置的最佳大小。
"离线"回滚段。
除此之外,它还会做许多其他的事情,如将DBA_TAB_MONITORING视图中的监视统计信息刷新输出,将SMON_SCN_TIME表中的SCN-时间戳映射信息刷新输出等。
Snnn:共享服务器进程
当使用共享服务器配置或MTS时,会用到共享服务器进程(the Shared Servers Process ,Snnn).这些进程如同专用服务器进程(Dedicated Server Process),但可以被多个用户共享。
VKTM:virtual keeper of time
就是专门用来获得时间信息然后将信息存放在SGA中供其它进程使用,这样其它进程当需要时间信息的时候,只要到SGA的某个内存位置去获得就好,而不用频繁调用gettimeofday()函数。毫无疑问,这样效率会更高。
Wnnn:空间管理工作器进程
执行从 SMCO 收到的指令。根据需要生成更多进程,命名为 W000、W001 等。
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××本文作者:JOHN
ORACLE技术博客:ORACLE 猎人笔记 数据库技术群:367875324 (请备注ORACLE管理 )
××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××