- 浏览: 497193 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (258)
- 0-中医 (83)
- 1-工作 (4)
- 2-生活 (17)
- 3-其他 (3)
- oracle_dev (5)
- oracle_dba (35)
- ebs_gl (1)
- ebs_ap (0)
- ebs_po (0)
- ebs_hr_people (0)
- ebs_hr_payroll (0)
- java (12)
- javaScript (7)
- JSP2.0 (4)
- springMVC (3)
- spring (4)
- iBatis (5)
- Hibernate (3)
- tomcat (2)
- linux (13)
- 网络 (3)
- python (25)
- Django (11)
- z-技术 (13)
- PHPCMS (0)
最新评论
-
bo521dai:
Bravo. contains everything.
Oracle调优总结 -
yangxiutian:
固态硬盘是什么东东,既然对硬件有约束,我想推广难啊,除非若干年 ...
未来操作系统(组图) -
showzh:
...
listener.ora 、sqlnet.ora 、tnsnames.ora的关系以及手工配置举例 -
489687009:
我特别想问一下楼主,现在有了框架后,jsp2.0还有用武之地吗 ...
JSP2.0入门 -
liuzl121:
你好 我刚学java,我想请教下这个SignonControl ...
log4j详尽配置实战(for spring)
后台进程包括:
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 note 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 manager server
1)RAC下的进程
2)主要目的是通过cache-to-cache的方式,保证gloabal cache service
3)每个Instance可以配置最多10g LMSn
LCK0:Lock
1)RAC下的进程
2)作用和LMD类似,但它不仅处理data block 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
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 note 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 manager server
1)RAC下的进程
2)主要目的是通过cache-to-cache的方式,保证gloabal cache service
3)每个Instance可以配置最多10g LMSn
LCK0:Lock
1)RAC下的进程
2)作用和LMD类似,但它不仅处理data block 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
发表评论
-
ORACLE 9I UNDO Tablespace
2010-05-13 09:20 1489(9i以前称为Rollback segment;9i称为Und ... -
Archive Log 学习笔记 --oracle 数据库
2010-02-22 14:35 1571一、归档的启用,停用和自动归档 1、启用和停用archi ... -
exp和imp 用法和介绍 --oracle数据库
2010-02-22 13:51 3208EXP导出范例: E:\software>D:\ora ... -
深入理解user和schema --oracle 数据库
2010-02-22 11:39 2566前言: user是控制权限 ... -
Oracle数据库中快照snapshot的使用
2010-02-22 10:57 3233oracle数据库的快照是一个表,它包含有对一个本地或远程数 ... -
Oracle Audit 功能的使用方法介绍
2010-02-22 10:45 5344一. 视图说明: 1. SYS.AUD$ 审计功能的底层视图, ... -
ORACLE EXPLAIN PLAN的总结
2010-02-22 09:29 2065在ORACLE数据库中,需要对SQL语句进行优化的话需要知道其 ... -
oracle常用命令
2010-01-20 16:09 1832一、ORACLE的启动和关闭 ... -
oracle em(Enterprise Manager) 收集贴
2009-12-11 13:56 3326em配置命令 ======================== ... -
ORACLE 簇的详细介绍
2009-12-11 11:35 13851. 什么是聚簇 聚簇是根据码值找到数据的物理存储位置 ... -
动态性能表V$sysstat
2009-09-18 13:54 924from: http://oracledba.iteye.co ... -
Installing Oracle Database 10g Release 2 on Linux x86 (RHEL4 and SLES9 covered)
2009-08-06 15:25 2057by John Smiley Learn the ... -
Linux下oracle常见安装错误总结
2009-08-06 14:37 2523from: http://home.ixpub.net/spa ... -
在RedHat 5下安装Oracle 10g详解
2009-08-06 13:37 7853方案一: 作者:Roc 说明:根据网上很多文档的学习,结合本人 ... -
Oracle9i rman备份恢复总结
2009-06-30 09:23 1832Recovery Manager(RMAN)是一种用于备份( ... -
Oracle使用回闪找回删除的数据
2009-05-15 13:11 2710如果不小心删除了oracle表中不应该删除的数据,这时候又想找 ... -
Oracle面试题集锦-技术篇
2009-05-15 12:32 25971. 解释冷备份和热备份的不同点以及各自的优点 解答:热 ... -
oracle 配置文件 解析
2009-05-13 10:39 1551Oracle主要配置文件: ... -
listener.ora 、sqlnet.ora 、tnsnames.ora的关系以及手工配置举例
2009-05-13 09:56 20798解决问题:TNS或者数据库不能登录。 最简单有效方法:使用or ... -
Oracle备份与恢复案例(By Piner)
2009-05-12 17:11 1569一. 理解什么是数据库 ...
相关推荐
Oracle 12c 内部架构与后台进程详解 Oracle 12c 是一款功能强大且复杂的关系数据库管理系统,了解其内部架构和后台进程是 DBA 的必备知识。本文将详细介绍 Oracle 12c 的后台进程和内存结构图,帮助读者深入了解 ...
### Oracle简明进程架构详解 #### 一、进程体系结构概览 Oracle数据库采用复杂的进程架构来支持高效的数据管理和并发处理。本章节将详细介绍Oracle进程体系结构的基本概念、主要组件及其工作原理。 #### 二、进程...
### Oracle体系架构详解 #### 一、Oracle数据库管理系统体系架构概览 Oracle数据库管理系统作为业界领先的...无论是从数据库管理的角度还是应用程序开发的角度来看,掌握Oracle体系架构的核心概念都是非常重要的。
首先,Oracle数据库的基础部分包括数据模型理论,如关系型数据库的基本概念,以及Oracle的体系架构,包括服务器进程、后台进程、内存结构(如SGA和PGA)和磁盘结构(如数据文件、控制文件、重做日志文件等)。...
后台进程在Oracle体系结构中扮演着重要角色,它们负责数据库的后台操作,如写入重做日志、检查点操作、数据恢复等。常见的后台进程包括DBWR(数据库写入器)负责将缓冲区中的更改写入数据文件,LGWR(日志写入器)将...
【Oracle 体系结构详解】 Oracle数据库的体系结构是其高效管理和优化数据操作的关键。这个复杂的架构设计主要目的是为了有效地管理数据库系统中的稀缺资源,特别是内存,以提高性能并确保数据的完整性和可用性。 1...
### Oracle DBA基础教学知识点详解 #### 一、Oracle数据库安装前准备与要求 ##### 1.1 概述 数据库软件的运行依赖于操作系统提供的资源支持,例如内存、CPU和I/O等。因此,在安装Oracle数据库软件之前,了解并...
《Oracle 8i PL/SQL 高级程序设计》这本书不仅为读者提供了全面的技术指南,还深入探讨了 Oracle 8i 的各个方面,从基础架构到高级功能,涵盖了数据库管理的所有重要领域。无论是初学者还是经验丰富的数据库管理员,...
- **Oracle数据库的基础概念与架构**:从数据库和实例的概念出发,逐步深入到SGA(系统全局区)、后台进程等核心组件。 - **文件管理**:详细介绍Oracle数据库中各种类型的文件,包括参数文件、跟踪文件、警告文件等...
#### 第一部分 体系架构 ##### 第一章:实例与数据库 **1.1 Oracle基础架构及应用环境** Oracle 11g的架构设计旨在提供高效、稳定和安全的数据管理解决方案。该版本不仅在技术上进行了改进,同时也提升了用户体验...
**一、Oracle体系结构** 在《Ch2-Oracle9i体系结构.ppt》中,讲解了Oracle数据库的基础架构,包括数据库实例、进程结构、内存结构(如系统全局区SGA和程序全局区PGA)以及数据文件、控制文件、重做日志文件等存储...
Oracle体系结构详解 Oracle体系结构是指Oracle数据库的架构设计和组件之间的关系。 Oracle数据库实例、物理存储结构、逻辑存储结构、内存结构、数据库实例与进程、数据字典等都是Oracle体系结构的重要组件。 物理...
#### 一、Oracle体系架构概览 Oracle数据库是业界领先的数据库管理系统之一,其复杂的体系架构确保了数据的高度可用性、安全性和高性能。为了更好地理解和掌握Oracle数据库,本章节将深入探讨Oracle的核心组件以及...
### Oracle体系结构详解 #### 一、Oracle体系结构概述 Oracle数据库系统是一种复杂的企业级数据库管理系统,其架构设计旨在提供高性能、可靠性和可扩展性。本文将深入探讨Oracle数据库的体系结构,包括其核心组件...
### Oracle数据库体系结构详解 #### 一、Oracle数据库的核心竞争力 Oracle数据库因其强大的核心竞争力而闻名于世,这些优势体现在可扩展性、可靠性和可管理性三个方面。 **1. 可扩展性** - **定义**:Oracle系统...