- 浏览: 90067 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
zuowoziji123:
跟thinking in java里写的一模一样 晕
匿名内部类的初始化 -
hbyandy:
...
组合模式 -
speedup:
jvmlover 写道zwzm85 写道淘宝研究生是6k--8 ...
阿里巴巴和淘宝的校园应聘经历 -
sdh5724:
30以后的技术人员才是真正的在玩技术, 公司投资那么多IT设备 ...
阿里巴巴和淘宝的校园应聘经历 -
former:
我觉得:
"30岁转行"这句话也许你没有说 ...
阿里巴巴和淘宝的校园应聘经历
后台进程
可以使用一个V$视图查看所有可能的Oracle后台进程,确定你的系统中正在使用哪些后台进程:select paddr, name, description from v$bgprocess order by paddr desc
有两类后台进程:有一个中心(focused)任务的进程(如前所述)以及完成各种其他任务的进程(即工具进程)。
主要的Oracle后台进程:
1. PMON:进程监视器(Process Monitor)
这个进程负责在出现异常中止的连接之后完成清理。PMON会回滚未提交的工作,并释放为失败进程分配的SGA资源。PMON还负责监视其他的Oracle后台进程,并在必要时(如果可能的话)重启这些后台进程。PMON还会为实例做另一件事,这就是向Oracle TNS监听器注册这个实例。实例启动时,PMON进程会询问公认的端口地址(除非直接指定),来查看是否启动并运行了一个监听器。
2. SMON:系统监视器(System Monitor)
SMON进程要完成所有“系统级”任务。是一种数据库“垃圾收集器”。SMON所做的工作包括:
l 清理临时空间:例如,建立一个索引时,创建时为索引分配的区段标记为TEMPORARY。如果出于某种原因CREATE INDEX会话中止了,SMON就要负责清理。其他操作创建的临时区段也要由SMON负责清理。
l 合并空闲空间:如果你在使用字典管理的表空间,SMON要负责取得表空间中相互连续的空闲区段,并把它们合并为一个更大的空闲区段。
l 针对原来不可用的文件恢复活动的事务:这类似于数据库启动时SMON的作用:SMON会恢复一些失败的活动事务。
l 执行RAC中失败节点的实例恢复:在一个Oracle RAC配置中,集群中的一个数据库实例失败时,为该失败实例完成所有数据的恢复。
l 清理OBJ$:OBJ$是一个低级数据字典表,SMON进程删除这些不再需要的行。
l 收缩回滚段:如果有设置,SMON会自动将回滚段收缩为所设置的最佳大小。
l “离线”回滚段。
除此之外,它还会做许多其他的事情,如将DBA_TAB_MONITORING视图中的监视统计信息刷新输出,将SMON_SCN_TIME表中的SCN-时间戳映射信息刷新输出等。
3. RECO:分布式数据库恢复(Distributed Database Recovery)
RECO有一个很中心的任务:由于两段提交(two-phase commit,2PC)期间的崩溃或连接丢失等原因,有些事务可能会保持准备状态,这个进程就是要恢复这些事务。可疑的分布式事务可能导致写入器阻塞读取器(Oracle中只有此时会发生“写阻塞读”的情况)。
4. CKPT:检查点进程(Checkpoint Process)
检查点进程并不像它的名字所暗示的那样真的建立检查点,建立检查点主要是DBWn的任务。CKPT只是更新数据文件的文件首部,以辅助真正建立检查点的进程(DBWn)。
5. DBWn:数据库块写入器(Database Block Writer)
数据库块写入器(DBWn)是负责将脏块写入磁盘的后台进程。DBWn会写出缓冲区缓存中的脏块,通常是为了在缓存中腾出更多的空间(释放缓冲区来读入其他数据),或者是为了推进检查点(将在线重做日志文件中的位置前移,如果出现失败,Oracle会从这个位置开始读取来恢复实例)。
6. LGWR:日志写入器(Log Writer)
LGWR进程负责将SGA中重做日志缓冲区的内容刷新输出到磁盘。如果满足以下某个条件,就会做这个工作:
l 每3秒会刷新输出一次
l 任何事务发出一个提交时
l 重做日志缓冲区1/3满,或者已经包含1 MB的缓冲数据
7. ARCn:归档进程(Archive Process)
ARCn进程的任务是:当LGWR将在线重做日志文件填满时,就将其复制到另一个位置。
8. 其他中心进程
自动存储管理后台(Automatic Storage Management Background,ASMB)进程。
重新平衡(Rebalance,RBAL)进程。
以下进程是RAC环境所特有的,如果不是RAC环境,则看不到这些进程。
锁监视器(Lock monitor,LMON)进程:LMON监视集群中的所有实例,检测是否有实例失败。这有利于恢复失败实例持有的全局锁。
锁管理器守护(Lock manager daemon,LMD)进程。
锁管理器服务器(Lock manager server,LMSn)进程。
锁(Lock, LCK0)进程。
可诊断性守护(Diagnosability daemon, DIAG)进程。
5.2.2 工具后台进程
1. CJQ0和Jnnn进程:作业队列
Jnnn进程会不断地来来去去,也就是说,如果配置了最多1 000个Jnnn进程,并不会看到真的有1 000个进程随数据库启动。相反,开始时只会启动一个进程,即作业队列协调器(CJQ0),它在作业队列表中看到需要运行的作业时,会启动Jnnn进程。如果Jnnn进程完成其工作,并发现没有要处理的新作业,此时Jnnn进程就会退出,也就是说,会消失。
2. QMNC和Qnnn:高级队列
QMNC进程对于AQ表来说就相当于CJQ0进程之于作业表。Qnnn进程对于QMNC进程就相当于Jnnn进程与CJQ0进程的关系。QMNC进程要通知Qnnn进程需要完成什么工作,Qnnn进程则会处理这些工作。
参数AQ_TM_PROCESSES 可以指定最多创建10个这样的进程(分别名为Q000,…,Q009),以及一个QMNC进程。如果AQ_TM_PROCESSES设置为0,就没有QMNC或Qnnn进程。不同于作业队列所用的Jnnn进程,Qnnn进程是持久的。如果将 AQ_TM_PROCESSES设置为10,数据库启动时可以看到10个Qnnn进程和一个QMNC进程,而且在实例的整个生存期中这些进程都存在。
3. EMNn:事件监视器进程(Event Monitor Process)
EMNn进程是AQ体系结构的一部分,用于通知对某些消息感兴趣的队列订购者。
4. MMAN:内存管理器(Memory Manager)
这个进程是Oracle 10g 中新增的,自动设置SGA大小特性会使用这个进程。
5. MMON、MMNL和Mnnn:可管理性监视器(Manageability Monitor)
这些进程用于填充自动工作负载存储库(Automatic Workload Repository,AWR),这是Oracle 10g中新增的一个特性。MMNL进程会根据调度从SGA将统计结果刷新输出至数据库表。MMON进程用于“自动检测”数据库性能问题,并实现新增的自调整特性。Mnnn进程类似于作业队列的Jnnn或Qnnn进程;MMON进程会请求这些从属进程代表它完成工作。Mnnn进程本质上是临时性的,它们将根据需要来来去去。
6. CTWR:修改跟踪进程(Change Tracking Process)
这是Oracle 10g数据库中新增的一个可选进程。CTWR进程负责维护新的修改跟踪文件。
7. RVWR:恢复写入器(Recovery Writer)
这个进程也是Oracle 10g数据库中新增的一个可选进程,负责维护闪回恢复区中块的“前”映像,要与FLASHBACK DATABASE命令一起使用。
5.3 从属进程
从属进程(slave process)。Oracle中有两类从属进程:I/O从属进程和并行查询从属进程。
5.3.1 I/O从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O。采用这种方式,可以得到更高的吞吐量,这是因为会由I/O从属进程来等待慢速的设备,而原来的调用进程得以脱身,可以做其他重要的工作来收集下一次要写的数据。
I/O从属进程在Oracle中有两个用途。DBWn和LGWR可以利用I/O从属进程来模拟异步I/O,另外RMAN写磁带时也可能利用I/O从属进程。
有两个参数控制着I/O从属进程的使用:
BACKUP_TAPE_IO_SLAVES:这个参数指定RMAN是否使用I/O从属进程将数据备份、复制或恢复到磁带上。这个参数是一个布尔值,而不是所用从属进程的个数(这可能出乎你的意料)。
DBWR_IO_SLAVES:这个参数指定了DBW0进程所用I/O从属进程的个数。
DBWR I/O从属进程的名字是I1nn,LGWR I/O从属进程的名字是I2nn,这里nn是一个数。
5.3.2 并行查询从属进程
使用并行查询时,会看到名为Pnnn的进程,这些就是并行查询从属进程。处理一条并行语句时,服务器进程则称为并行查询协调器(parallel query coordinator)。操作系统上服务器进程的名字并不会改变,如果提到了协调器进程,你应该知道这就是原来的服务器进程。
发表评论
-
ORACLE 命令大全(2)
2010-08-08 16:42 1539一些常用的内置程序包: DBMS_OUTPUT 包输出 PL ... -
RMAN 命令拼凑版
2010-08-08 11:08 959http://blog.chinaunix.net/u1/4 ... -
ORACLE 命令大全(1)
2010-08-08 10:54 1583内容包括三大项: 1.o ... -
Oracle进程类别
2009-09-28 16:40 2075Oracle进程类别 n Oracle实 ... -
Oracle内存结构与管理(2)
2009-09-28 16:38 956自动SGA内存管理(ASMM): 要使用自动管理,需要设置参 ... -
Oracle内存结构与管理(1)
2009-09-28 16:34 1584Oracle内存结构与管理 内存结构 SGA(Sys ... -
Oracle触发器增量提取
2009-09-23 10:59 1782--insert触发器提取增量 --delete触发器提取增 ... -
9i SQL notes
2009-09-12 21:59 1314General functions:– NVL– NVL2– ... -
ORACLE 死锁实验
2009-07-25 17:02 817环境: DB: ORACLE 10.2 OS : RHE ... -
oracle启动
2009-07-23 09:10 957oracle启动的状态 学 ... -
Oracle 临时表
2009-07-16 11:22 1384Oracle 临时表 临时表(Temporary ta ... -
ORA-30036 错误重演实验
2009-07-15 21:01 2601实验步骤: 1. 建立一个很小的UNDO表空间,把系统当前的 ... -
Redo 与 Undo (2)
2009-07-14 20:37 14319.4.6 日志竞争 l redo放在 ... -
Redo 与 Undo (1)
2009-07-14 20:33 1653通常对undo有一个误解, ... -
事 务
2009-07-12 10:48 1091事 务 Oracle中的事务体现了所有必要的ACID ... -
并发与多版本
2009-07-11 19:33 1286并发与多版本 7.1 ... -
Oracle 锁(2)
2009-07-11 15:03 14476.3 锁类型 Oracle中主要有3类锁,具体是: ... -
Oracle 锁(1)
2009-07-11 15:01 18586.1 什么是锁? 锁(lock)机制用 ... -
Oracle进程类别(1)
2009-07-09 22:48 958Oracle进程类别 n Oracle实 ... -
Oracle内存结构与管理
2009-07-07 21:19 1580Oracle内存结构与管理 内存结构 SGA(Sys ...
相关推荐
Oracle 等待事件主要分为两种类别:空闲(idle)等待事件和非空闲(non-idle)等待事件。空闲事件指 Oracle 正等待某种工作,在诊断和优化数据库的时候,我们不用过多注意这部分事件。常见的空闲事件有 dispatcher ...
7. **实例与进程状态**:某些错误码与数据库实例或后台进程的状态有关,了解这些状态可以帮助理解错误的上下文。 8. **PL/SQL编程错误**:对于在PL/SQL代码中遇到的错误,手册会指导如何调试和修复代码。 9. **...
下面按类别列出一些 ORACLE 用户常用数据字典的查询使用方法: 1. 用户查看当前用户的缺省表空间: SQL>select username,default_tablespace from user_users; 2. 用户查看当前用户的缺省临时表空间: SQL>...
这些错误代码可以分为不同的类别,如语法错误、语义错误、运行时错误、系统错误等。 下面是 Oracle 错误代码的一些常见示例: 1. ORA-00001: 违反唯一约束条件 这种错误发生在尝试插入或更新数据时,但该操作违反...
ASM实例拥有特定的后台进程(如RBAL)来协调磁盘组的重新平衡,并有两个额外的后台进程(ASMB和RBAL)与数据库实例通信。数据库实例通过ASM实例来获取ASM文件的布局信息。 创建ASM实例通常通过运行Database ...
- **数据库实例**:由系统全局区(SGA)和Oracle进程组成,是访问和控制数据库的软件机制。 - **物理结构**:包括数据文件、重做日志文件、控制文件等操作系统级别的文件。 - **逻辑结构**:包括表空间、段、范围、...
Oracle 等待事件按照类型可细分为多个类别: 1. 管理类:如重建索引时产生的等待。 2. 应用程序类:由用户应用程序代码引起,如锁等待。 3. 群集类:涉及 RAC 资源的等待,如 gc cr block busy。 4. 提交确认类:如...
具体来说,Oracle提供了多个不同类别的性能视图: 1. **实例/数据库**:如`v$database`、`v$instance`、`v$parameter`、`v$system_event`等,用于查看数据库和实例级别的配置和统计信息。 2. **用户/会话**:如`v$...
1. **调整进程数**:Oracle数据库默认的进程数为50,但实际需求可能会更高。可以通过查询`V$DISPATCHER`视图来检查并发连接数是否达到瓶颈。如果某个网络接口的忙闲比例超过50%,则需要增加MTS DISPATCHERS的数量。 ...
- 指定Oracle运行过程中为后台进程(如LGWR、DBWn等)写入跟踪文件的路径名(目录或磁盘)。 - 跟踪文件包含了重要的事件和消息,有助于故障排查。 - **值范围**:任何有效的目录名 - **默认值**:`ORACLE_HOME/...
### Oracle 动态性能表学习:深入理解 v$sysstat #### 一、v$sysstat 视图概述 在 Oracle 数据库管理中,动态性能视图(Dynamic Performance Views)是一组特殊的内置视图,提供了关于数据库实例及其内部组件的...
下面按类别列出一些ORACLE用户常用数据字典的查询使用方法。 1、用户 查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * from user_...
2. Oracle的启动和关闭:在单机环境和双机环境下,Oracle数据库的启动和关闭步骤。 3. 数据库管理员日常工作:介绍如何检查alertSID.log文件和确认环境设置。 4. 数据库日常操作SQL:详细说明了如何查看表空间物理...
`通过这个查询,可以了解哪些进程被锁住以及锁住的对象,有助于解决并发控制问题。 6. **查看活动SQL语句**: `SELECT a.sid, a.serial#, a.username, a.command, a.program, b.sql_text FROM v$session a, v$...
以下是这些语句的主要类别及其详解: 1. **V$视图查询**: Oracle提供了大量的动态性能视图(V$视图),通过查询它们可以获取数据库运行时的详细信息。例如,`V$SESSION`用于查看当前会话状态,`V$INSTANCE`显示...
- 接下来选择“工具”菜单中的“自定义……”选项,找到类别是“宏”的自定义按钮,并将其拖动到菜单栏中。 - 完成以上步骤后,关闭“自定义”窗口。 3. **宏的使用**: - 单击之前设置的笑脸按钮,会跳出一个新...
这些错误代码分为多个类别,包括唯一约束条件错误、会话错误、进程错误、锁定错误、存储错误等等。 唯一约束条件错误 * ORA-00001: 违反唯一约束条件 (.): 这个错误通常发生在尝试插入重复数据时。 * ORA-00017: ...