`
happmaoo
  • 浏览: 4504358 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle10g 后台进程

阅读更多

$ ps -ef | grep ora_ | grep -v grep
oracle 14385 1 0 Oct10 ? 00:00:01 ora_pmon_WENDING
oracle 14387 1 0 Oct10 ? 00:00:00 ora_psp0_WENDING
oracle 14389 1 0 Oct10 ? 00:00:00 ora_mman_WENDING
oracle 14391 1 0 Oct10 ? 00:00:21 ora_dbw0_WENDING
oracle 14393 1 0 Oct10 ? 00:01:01 ora_lgwr_WENDING
oracle 14395 1 0 Oct10 ? 00:00:01 ora_ckpt_WENDING
oracle 14397 1 0 Oct10 ? 00:01:00 ora_smon_WENDING
oracle 14399 1 0 Oct10 ? 00:00:00 ora_reco_WENDING
oracle 14401 1 0 Oct10 ? 00:00:26 ora_cjq0_WENDING
oracle 14403 1 0 Oct10 ? 00:01:45 ora_mmon_WENDING
oracle 14405 1 0 Oct10 ? 00:00:37 ora_mmnl_WENDING
oracle 14409 1 0 Oct10 ? 00:00:04 ora_arc0_WENDING
oracle 14411 1 0 Oct10 ? 00:00:03 ora_arc1_WENDING
oracle 14415 1 0 Oct10 ? 00:00:00 ora_qmnc_WENDING
oracle 14421 1 0 Oct10 ? 00:00:15 ora_q000_WENDING
oracle 19027 1 0 Oct20 ? 00:00:00 ora_q002_WENDING
$

一、后台进程包括

1)Focused Background Processes
2)Utility Background Processes

1. Focused Background Processes

PMON:
1)connection在不正常终止时,pmon负责释放资源,rollback未提交的事务;
2)监控后台进程,如果某些后台进程不正常终止,则会重启它(比如dispatcher),或者直接终止实例(比如lgmr终止时);
3)实例启动时,pmon负责注册实例到监听上,当实例启动时,pmon进程会检查默认监听器是否启动,如果使用非默认的监听器,需要设置local_listener参数。

SMON:
1)clean up临时空间:真正的临时段不需要clean up,但某些操作,比如create index产生的临时段当create index的session不正常终止时,此时需要smon来清理。
2)Coalesces free space:如果使用字典管理表空间,smon负责将连续的空闲extent合并;
3)Recovers transactions active against unavailable files: 这个过程和实例启动时进行的instance crash recovery(自动前滚和回滚)相似,只不过由于实例启动时某些文件无法访问,而实例启动后的某个时间这些文件可以访问时,smon就会对其执行 recover;
4)Performs instance recovery of a failed node in RAC: 当rac的某个节点失败时,某个剩余的节点会打开失败节点对应的redo log,进行recover;
5)Cleans up OBJ$: obj$是个底层的数据字典,包括所有的数据库对象信息,很多时候,某些对象被删除时,由smon进程来clean up 该视图;
6)Shrinks rollback segments:如果设置了optimal size参数,smon进程负责执行回滚段的自动收缩
7)"Offlines" rollback segments:当用户offline某个回滚段,但此时该回滚断有active trancsaction,这是回滚段的状态其实是pending offline,而smon进程会定期的检查该回滚段的事务是否完成,完成即将其变为offline;
8)还有很多其它任务。

RECO:Distributed Database Recovery
1)reco有个主要工作,就是recover那些两阶段提交的但由于网络或其它原因造成状态为prepared 的挂起事务。
两阶段提交的概念:A 2PC is a distributed protocol that allows for a modification that affects many disparate databases to be committed automically. It attempts to close the window for distributed failure as much as possible before committing. In a 2PC between N databases, one of the databases—typically (but not always) the one the client logged into initially—will be the coordinator. This one site will ask the other N-1 sites if they are ready to commit. In effect, this one site will go to the N-1 sites and ask them to be prepared to commit. Each of the N-1 sites reports back its “prepared state” as YES or NO. If any one of the sites votes NO, the entire transaction is rolled back. If all sites vote YES,then the site coordinator broadcasts a message to make the commit permanent on each of the N-1 sites.
关于2pc的中文帖子说明:http://flyhorse2k.spaces.live.com/blog/cns!9C7106D3DF7B09DE!178.entry
2) 当某些节点反馈yes给事务协调器可以提交时,但事务协调器还未正式发出可以提交的最后指示时,由于网络的原因,这些节点失去了和事务协调节点的联系,此时这些事务就成为了an in-doubt distributed transaction。此时,RECO就负责定期的联系事务协调器,当联系到时,就会提交或者回滚这些事务了。
3)对于某些大的事务,如果使用reco的成本比较高,可以人为的干涉来处理掉这些事务
SQL> select local_tran_id,global_tran_id,state from dba_2pc_pending;
SQL> rollback force "";

CKPT: Checkpoint Process
1)CKPT 进程不是做checkpoint(A checkpoint is the writing of dirty (modified) blocks from the buffer cache to disk)的,而是在发生checkpoint时,修改数据文件头的。
2)在oracle8以前,CKPT的任务可以由LGWR进程来执行,因此CKPT进程可选,但从8.0开始,CKPT进程是必须的,LGWR也减少了执行负担。

DBWR: Database Block Writer
1)负责将dirty buffer写入到datafile中,目的是腾出sga空间和advance checkpoint;
2)Advance checkpoint后,oracle在做instance recover时,就从online redo file的新位置做为起点位置做恢复;
3)当发生log switch时,会出发checkpoint;
4)当online log file 需要被重用时,checkpoint还没有做完的话,警告文件里面会有checkpoint not complete的警告;
5)如果dbwr的性能低下,我们会发现很多free buffer waits和write complete waits的等待;
6)可以配置多个dbwr进程,比如dbw1,dbw2,...dbw9,...dbwj,最多20个,参数为db_writer_processes,这可以利用多个CPU的并行处理功能;
7)如果操作系统支持AIO,dbwr就可以不用等待操作系统写完,而继续下一个dbwr请求;
8)如果操作系统不支持AIO,可以利用dbwr slaves来模拟,参数为dbwr_io_slaves;

LGWR: Log Writer
1)将redo log buffer写入到redo log file中;
2)3s,commit,redo log buffer 1/3满时,都会触发lgwr写;
3)因此redo log buffer不需要太大;
4)lgwr采用sequenctial地写入,不像dbwr是scatter的写入,因此lgwr的性能要高很多;

ASMB:Automatic Storage Manangement Background
1)当使用ASM存储database file时,启用该进程;
2)该进程负责与ASM实例进行通信;

RBAL:Reblance
1)当使用ASM存储database file时,启用该进程;
2)该进程负责当从ASM disk group中增加或减少disk时,rebalance数据。

LMON:Lock monitor
1)RAC下的进程;
2)负责监控RAC集群中的实例是否fail;
3)当RAC中实例增加或减少时,负责重新配置lock和其他资源;

LMD:Lock mananger daemon
1)RAC下的进程;
2)将global cache service(keep he block buffer consistent between instances)的锁请求发送给LMSn控制的队列中;

LMSn:Lock managerserver
1)RAC下的进程;
2)主要目的是通过cache-to-cache的方式,保证gloabal cache service;
3)每个Instance可以配置最多10gLMSn;

LCK0:Lock
1)RAC下的进程;
2)作用和LMD类似,但它不仅处理datablock buffer的请求,也处理其它的global resource;

DIAG:Diagnosability daemon
1)RAC下的进程;
2)监控各个实例是否health,并且在发生fail时,进行capture;

2. Utility Background Processes

CJQ0 and Jnnn Processes:Job Queue
1)当配置job_queue_processes时,会有Jnnn和CJQ0进程;
2)Jnnn进程最多可有1000个;
3)Jnnn进程在job之间是共享的,但同时每个Jnnn只能执行一个job,并且它使用的内存是在UGA中;
4)物化试图的刷新一般要用到job;
5)streams一般用到AQ;
6)CJQ0,做为jnnn的coordinator,它来控制jnnn的启动和关闭;
7)Jnnn进程只会在有job需要处理时才会启动;

QMNC and Qnnn Processes:Job Queue
1)用于AQ功能;
2)Qnnn处理每个message queue,QMNC做为Qnnn的coordinator;
3)如果配置了aq_tm_processes,就会启动QMNC和Qnnn进程,不论有没有queue要处理,Qnnn都会全部启动;

EMNn:Event Monitor Processes
1)用于AQ功能;
2)用于监控queue,向订购者反馈消息。

MMAN:Memory Manager
1)当使用自动管理内存功能时,MMAN负责处理sga各组件的内存动态分配,包括有default buffer pool,shared pool,java pool,large pool。

MMON,MMNL,Mnnn:Manageability Monitors
1)用于AWR(autmatic workload repository);
2)MMNL负责将SGA中的统计信息写入到表中;
3)MMON监控数据库性能,进行自动调优;
4)Mnnn属于MMON的帮手,帮助进行调优工作。

CTWR:Change Tracking Processes
1)负责维护new change tracking file。

RVWR:Recovery Writer
1)负责维护flash recovery area中的before images数据。

还有一些其他的utility process,比如为dataguard服务的,为streams服务的,为data pump服务的等等。

二、从进程包括

1)I/O slaves
2)Parallel query Slaves

I/O Slaves
1)如果操作系统不支持AIO,可以利用io slaves模拟aio;
2)backup_tape_io_slaves为rman服务,设置为true的话,rman会根据需要自动启动一些slaves来完成与tape的相关读写操作;
3)dbwr_io_slaves为dbwr使用,当设置dbwr_io_slave大于0时,lgwr和arch会使用他们自己的slaves(最多4个);
4)dbwr的从进程为I1nn,lgwr的从进程为I2nn。

Parallel Query Slaves
1)当执行某些语句时,会产生很多执行计划,这些执行其实可以并行执行,然后合并成一个输出结果;
2)可以利用并行查询功能来实现并行;
3)产生的并行查询进程名为Pnnn。

--End--

转自http://hi.baidu.com/edeed/blog/item/b33f0208a5a49cd562d986fe.html

分享到:
评论

相关推荐

    Oracle后台进程

    ### Oracle后台进程详解 Oracle数据库系统的高效运行离不开一系列精心设计的后台进程,这些进程负责处理各种关键任务,如数据管理、日志维护、系统监控等。以下是对几个核心Oracle后台进程的深入解析: #### ...

    Oracle 10g 联机文档

    Oracle 10g提供了多种开发工具和API,如JDBC、ODBC和Oracle Application Framework,方便开发者构建基于Oracle的Web和企业级应用程序。 通过深入学习Oracle 10g联机文档,你将能够全面掌握数据库管理、开发和优化的...

    Oracle 10g 安装(Windows下)

    - **后台进程**:如DBWR(数据库写入进程)、LGWR(日志写入进程)和PMON(进程监控进程)等,它们是Oracle实例的重要组成部分,负责执行各种数据库操作。 2. **Oracle 10g安装准备** - **系统需求**:检查操作...

    Oracle10g技术文档

    2. **数据库实例与物理结构**:Oracle10g中的数据库实例是由内存结构(如数据缓冲区高速缓存、重做日志缓冲区、共享池)和后台进程组成,而物理结构则涉及表空间、段、区和块的层次结构。 3. **SQL优化**:Oracle10...

    oracle10g administration

    3. **数据库实例与表空间**:数据库实例是Oracle内存结构和后台进程的集合,而表空间是数据存储的逻辑单位,由一个或多个数据文件组成。管理表空间是数据库管理员的日常工作,包括创建、扩展和删除表空间。 4. **...

    Oracle10g培训PPT

    1. 数据库实例与服务:在Oracle 10g中,数据库实例是内存结构和后台进程的集合,而服务则是用户连接到数据库的入口。通过企业管理器(EM),可以轻松创建、管理和监控这些服务。 2. 数据泵(Data Pump):Oracle 10g...

    Oracle 10g 标准教程课件 PPT

    其中,数据库服务器又分为进程和内存结构,如用户进程、服务器进程、后台进程等。 2. RAC(Real Application Clusters):Oracle 10g引入了RAC技术,实现了多个实例共享同一数据库,增强了系统的可用性和可扩展性,...

    Oracle10G培训日志

    3. 实例和进程:Oracle10G中包括一个或多个实例,每个实例由多个后台进程组成,如SMON(System Monitor)、PMON(Process Monitor)等。 三、Oracle10G的管理 1. 用户管理:创建、删除和管理数据库用户,分配权限,...

    Oracle 10g 课件

    Oracle数据库由多个后台进程和用户进程协同工作,如DBWR(数据库写入进程)、LGWR(日志写入进程)等,它们负责数据的写入和日志记录。内存结构中的SGA(系统全局区)和PGA(程序全局区)是数据库运行的关键组成部分...

    Oracle 10g 架构简述

    ### Oracle 10g 架构简述 #### 一、概述 Oracle 10g 数据库管理系统在架构设计上有着独特的...这些知识点不仅有助于数据库管理员进行日常维护,也有助于开发人员更好地设计应用程序以充分利用Oracle 10g 的强大功能。

    Oracle10g基础架构

    实例由内存结构(如系统全局区SGA和程序全局区PGA)和一组后台进程组成。SGA 是数据库运行时共享的内存区域,它包含了数据缓冲区、共享池、日志缓冲区、大池和Java池等组件。数据缓冲区存储了数据库的数据块,以减少...

    Oracle10g数据库 Windows32位+Linux32位 合集

    2. Oracle体系结构:Oracle10g由多个组件构成,包括服务器进程、后台进程、内存结构和磁盘结构。其中,服务器进程如数据库服务器(DBWn)、用户进程、检查点进程(CKPT)等协同工作;后台进程如系统监控(SMON)、...

    Oracle 10g/11g编程艺术

    - **进程与线程**:Oracle使用后台进程(如SMON、PMON)和用户进程来执行数据库操作,了解它们的作用有助于问题排查。 4. **编程艺术**: - **SQL和PL/SQL**:Oracle的SQL用于查询和操作数据,而PL/SQL是其过程式...

    Oracle 10g数据库基础教程[孙风栋 等][课后习题解答(选择题答案)]

    Oracle 10g数据库是Oracle公司推出的一款关系型数据库管理系统,是Oracle数据库产品线中的一个重要版本,尤其对于初学者和专业DBA来说,掌握Oracle 10g的基础知识至关重要。本教程由孙风栋等专家编写,提供了全面的...

    Oracle 10g中文手册

    ### Oracle 10g中文手册知识点总结 #### 一、Oracle Database 10g概述 - **Oracle Database 10g**:这是Oracle Corporation推出的一个关系型数据库管理系统,旨在为组织提供高性能的数据存储和处理解决方案。“g”...

    oracle9i oracle11g oracle10g 性能调优 基础学习 视频地址

    - **Oracle10g**: 作为Oracle9i的后续版本,Oracle10g进一步增强了网格计算能力,提供了自动存储管理和资源管理等功能,提高了系统的可伸缩性和可用性。 - **Oracle11g**: Oracle11g在Oracle10g的基础上增加了更多的...

    Oracle 10g 系统管理员简明教程目录

    * Oracle 服务器结构:包括 Oracle 服务器、Oracle 实例、物理结构、逻辑结构、系统全局区 SGA、后台进程、程序全局区 PGA 等方面的介绍。 * 数据字典:包括 Oracle 数据字典的组成、常用数据字典、常用动态性能视图...

    Oracle10g客户端安装与配置说明

    - **启动安装**:通过虚拟光驱加载Oracle10g客户端的安装镜像,系统会自动启动安装程序。 - **欢迎界面**:点击“开始安装”进入安装流程。 - **DOS界面**:这是安装程序的初始化阶段,系统会进行一些后台准备...

    window7上安装oracle10g

    在Window 7操作系统中安装Oracle 10g是一项技术性的任务,涉及到多个步骤和注意事项。Oracle 10g是一款强大的关系数据库管理系统,广泛应用于企业级数据管理。在Window 7环境下安装,主要涉及硬件和软件配置、安装...

Global site tag (gtag.js) - Google Analytics