oracle中心进程

1. PMON:进程监视器(Process Monitor)

1、负责在出现异常中止的连接之后完成清理。PMON 会回滚未提交的工作,并释放为失败进程分配的SGA 资源。

 

2、监视其他的Oracle 后台进程,并在必要时(如果可能的话)重启这些后台进程。

 

3、向Oracle TNS 监听器注册这个实例。实例启动时,PMON 进程会询问公认的端口地址(除非直接指定),来查看是否启动并运行了一个监听器。

       如果数据库实例启动时有监听器在运行,PMON 会与这个监听器通信,并向它传递相关的参数,如服务名和实例的负载度量等。如果监听器未启动,PMON 则会定期地试图与之联系来注册实例。

 

 

 

2. SMON:系统监视器(System Monitor)

1、清理临时空间:原先清理临时空间这样的杂事都要由我们来完成,随着引入了“真正” 的
临时表空间,这个负担已经减轻,但并不是说完全不需要清理临时空间。例如,建立一个索引
时,创建时为索引分配的区段标记为TEMPORARY。如果出于某种原因CREATE INDEX 会话中止了,
SMON 就要负责清理。其他操作创建的临时区段也要由SMON 负责清理。


2、合并空闲空间:如果你在使用字典管理的表空间,SMON 要负责取得表空间中相互连续的空
闲区段,并把它们合并为一个更大的空闲区段。只有当字典管理的表空间有一个默认的存储子
句,而且pctincrease 设置为一个非0 值时,才会出现空闲空间的合并。


3、针对原来不可用的文件恢复活动的事务:这类似于数据库启动时SMON 的作用。在实例/崩
溃恢复时由于某个文件(或某些文件)不可用,可能会跳过一些失败的事务(即无法恢复),这
些失败事务将由SMON 来恢复。例如,磁盘上的文件可能不可用或者未装载,当文件确实可用时,
SMON 就会由此恢复事务。


4、执行RAC 中失败节点的实例恢复:在一个Oracle RAC 配置中,集群中的一个数据库实例失
败时(例如,实例所在的主机失败),集群中的另外某个节点会打开该失败实例的重做日志文件,
并为该失败实例完成所有数据的恢复。


5、清理OBJ$:OBJ$是一个低级数据字典表,其中几乎对每个对象(表、索引、触发器、视图
等)都包含一个条目。很多情况下,有些条目表示的可能是已经删除的对象,或者表示“not
there”(不在那里)对象(“not there”对象是Oracle 依赖机制中使用的一种对象)。要由SMON
进程来删除这些不再需要的行。


6、收缩回滚段:如果有设置,SMON 会自动将回滚段收缩为所设置的最佳大小。


7、“离线”回滚段:DBA 有可能让一个有活动事务的回滚段离线(offline),或置为不可用。
也有可能活动事务会使用离线的回滚段。在这种情况下,回滚段并没有真正离线;它只是标记
为“将要离线”。在后台,SMON 会定期尝试真正将其置为离线,直至成功为止。

 

 

3. RECO:分布式数据库恢复(Distributed Database Recovery)

RECO 会试图联系事务的协调器来发现协调的结果。在此之前,事务会保持未提交状态。当再次到达事务协调器时,RECO 可能会提交事务,也可能将事务回滚。

 

 

4. CKPT:检查点进程(Checkpoint Process)

CKPT 只是更新数据文件的文件首部,以辅助真正建立检查点的进程(DBWn)

 

 

 

5. DBWn:数据库块写入器(Database Block Writer)

1、数据库块写入器(DBWn)是负责将脏块写入磁盘的后台进程。DBWn 会写出缓冲区缓存中的脏块,通
常是为了在缓存中腾出更多的空间(释放缓冲区来读入其他数据),或者是为了推进检查点(将在线重做日
志文件中的位置前移,如果出现失败,Oracle 会从这个位置开始读取来恢复实例)。

2、可以配置多个DBWn

3、异步:最好的情况下,DBWn 使用异步I/O 将块写至磁盘。采用异步I/O,DBWn 会收集一批要写的块,并把
它们交给操作系统。DBWn 并不等待操作系统真正将块写出;而是立即返回,并收集下一批要写的块。当操
作系统完成写操作时,它会异步地通知DBWn 写操作已经完成。这样,与所有工作都串行进行相比,DBWn
可以更快地工作。在后面的“从属进程”一节中,我们还将介绍如何使用I/O 从属进程在不支持异步I/O
的平台或配置上模拟异步I/O。

4、DBWn 会做大量的分散写(scattered write)。,LGWR 则是向重做日志完成大量的顺序写
(sequential write)。分散写比顺序写慢多了。

 

 

 

6. LGWR:日志写入器(Log Writer)

LGWR 进程负责将SGA 中重做日志缓冲区的内容刷新输出到磁盘。如果满足以下某个条件,就会做这
个工作:
1、每3 秒会刷新输出一次
2、任何事务发出一个提交时
3、重做日志缓冲区1/3 满,或者已经包含1 MB 的缓冲数据

 

 

 

7. ARCn:归档进程(Archive Process)

ARCn 进程的任务是:当LGWR 将在线重做日志文件填满时,就将其复制到另一个位置。此后这些归档
的重做日志文件可以用于完成介质恢复。

 

 

 

8. 其他中心进程

1、自动存储管理后台(Automatic Storage Management Background,ASMB)进程:ASMB 进程
在使用了ASM 的数据库实例中运行。它负责与管理存储的ASM 实例通信、向ASM 实例提供更新

的统计信息,并向ASM 实例提供一个“心跳”,让ASM 实例知道它还活着,而且仍在运行。

2、重新平衡(Rebalance,RBAL)进程:RBAL 进程也在使用了ASM 的数据库实例中运行。向ASM
磁盘组增加或去除磁盘时,RBAL 进程负责处理重新平衡请求(即重新分布负载的请求)。

RAC中特有的

1、锁监视器(Lock monitor,LMON)进程:LMON 监视集群中的所有实例,检测是否有实例失
败。这有利于恢复失败实例持有的全局锁。它还负责在实例离开或加入集群时重新配置锁和其
他资源(实例失败时会离开集群,恢复为在线时又会加入集群,或者可能有新实例实时地增加
到集群中)。

2、锁管理器守护(Lock manager daemon,LMD)进程:LMD 进程为全局缓存服务(保持块缓冲
区在实例间一致)处理锁管理器服务请求。它主要作为代理(broker)向一个队列发出资源请
求,这个队列由LMSn 进程处理。LMD 会处理全局死锁的检测/解析,并监视全局环境中的锁超时。

3、锁管理器服务器(Lock manager server,LMSn)进程:

4、锁(Lock,LCK0)进程:这个进程的功能与前面所述的LMD 进程非常相似,但是它处理所有
全局资源的请求,而不只是数据库块缓冲区的请求。

5、可诊断性守护(Diagnosability daemon,DIAG)进程:DIAG 只能用于RAC 环境中。它负责
监视实例的总体“健康情况”,并捕获处理实例失败时所需的信息。

你可能感兴趣的:(oracle)