`

Oracle 数据库有五个必需的后台进程,DBWR,LGWR,CKPT,SMON,PMON

阅读更多

SMON

是系统监视器(System Monitor)的缩写。如果Oracle实例失败,则在SGA中的任何没有写到磁盘中的数据都会丢失。有许多情况可能引起Oracle实例失败,例如,操作系统的崩溃就会引起Oracle实例的失败。当实例失败之后,如果重新打开该数据库,则背景进程SMON自动执行实例的复原操作。

 

PMON

是进程监视器(Process Monitor)的缩写。当取消当前的事务,或释放进程占用的锁以及释放其它资源之后,PMON进程清空那些失败的进程。

 

DBWR

是数据库书写器(Database Write)的缩写.该服务器进程在缓冲存储区中记录所有的变化和数据,DBWR把来自数据库的缓冲存储区中的脏数据写到数据文件中,以便确保数据库缓冲存储区中有足够的空闲的缓冲存储区。脏数据就是正在使用但是没有写到数据文件中的数据 , 数据缓冲区中的脏数据指的是更新后的数据。

 

触发DBWR进程的条件:

1.  DBWR超时,大约3秒 

2. 系统中没有多余的空缓冲区来存放数据 

3.  CKPT 进程触发DBWR

 

LGWR

是日志书写器(Log Write)的缩写。LGWR负责把重做日志缓冲存储区中的数据写入到重做日志文件中。

Redo Log Buffer是 SGA中一段保存数据库修改信息的缓存。这些信息被存储在重做条目(Redo Entry)中.重做条目中包含了由于INSERT、UPDATE、DELETE、CREATE、ALTER或DROP所做的修改操作而需要对数据库重新组织或重做的必须信息。在必要时,重做条目还可以用于数据库恢复。

 

触发LGWR进程的条件:

  1. 用户提交 

  2. 有1/3重做日志缓冲区未被写入磁盘 

  3. 有大于1M的重做日志缓冲区未被写入磁盘 

  4. 3秒超时 

  5. DBWR 需要写入的数据的SCN大于LGWR记录的SCN,DBWR 触发LGWR写入。 

 

Redo record 包含4个数据块:

回滚段的段头块:相应的事务表上标注事务信息,其中包括了xid,uba等;并且分配回滚块

数据块的块头块:分配事务槽,标注事务信息,其中包含了xid,uba等

回滚块:记录前镜像

数据块:修改

 

重做条目是Oracle数据库进程从用户内存中拷贝到Redo Log Buffer中去的。重做条目在内存中是连续相连的。后台进程LGWR负责将Redo Log Buffer中的信息写入到磁盘上活动的重做日志文件(Redo Log File)或文件组中去的。

 

参数LOG_BUFFER决定了Redo Log Buffer的大小。它的默认值是512K(一般这个大小都是足够的),最大可以到4G。当系统中存在很多的大事务或者事务数量非常多时,可能会导致日志文件IO增加,降低性能。这时就可以考虑增加LOG_BUFFER。

 

CKPT

进程是检查点(Checkpoint)的缩写。该进程可以用来同步化数据库的文件,它可以把日志中的文件写入到数据库中。

 

一个checkpoint操作可以分成三个不同的阶段:

第一阶段,checkpoint进程开始一个checkpoint事件,并记录下checkpoint RBA,这个通常是当前的RBA。

第二阶段,checkpoint进程通知DBWn进程将所有checkpoint RBA之前的buffer cache里面的脏块写入磁盘。

确定脏块都被写入磁盘以后进入到第三阶段,checkpoint进程将checkpoint信息(SCN)写入/更新数据文件和控制文件中。

 

触发CHECKPOINT的条件

1. 自动日志切换,或通过ALTER SYSTEM SWITCH LOGFILE。

2. DBA发出checkpoint命令,通过ALTER SYSTEM checkpoint。

3. 对数据文件进行热备时,针对该数据文件的checkpoint也会进行,ALTER TABLESPACE TS_NAME BEGIN BACKUP/END BACKUP。

4. 当运行ALTER TABLESPACE/DATAFILE READ ONLY的时候。

5. SHUTDOWN命令发出时。 

 

--------------------------------------------------------------------

UNDO

通常对undo 有一个误解,认为undo 用于数据库物理地恢复到执行语句或事务之前的样子,但实际

上并非如此。数据库只是逻辑地恢复到原来的样子,所有修改都被逻辑地取消,但是数据结构以及数据库块本身在回滚后可能大不相同。原因在于:在所有多用户系统中,可能会有数十、数百甚至数千个并发事务。

数据库的主要功能之一就是协调对数据的并发访问。也许我们的事务在修改一些块,而一般来讲往往会有

许多其他的事务也在修改这些块。因此,不能简单地将一个块放回到我们的事务开始前的样子,这样会撤

销其他人(其他事务)的工作!例如,假设我们的事务执行了一个INSERT 语句,这条语句导致分配一个新区段(也就是说,导致表的空间增大)。通过执行这个INSET,我们将得到一个新的块,格式化这个块以便使用,并在其中放上一些数据。此时,可能出现另外某个事务,它也向这个块中插入数据。如果要回滚我们的事务,显然不能取消对这个块的格式化和空间分配。因此,Oracle 回滚时,它实际上会做与先前逻辑上相反的工作。对于每个INSERT,Oracle 会完成一个DELETE。对于每个DELETE,Oracle 会执行一个INSERT。对于每个UPDATE,Oracle则会执行一个“反UPDATE“,或者执行另一个UPDATE 将修改前的行放回去。

分享到:
评论

相关推荐

    Oracle数据库入门(PPT)

    (6)后台进程 PMON,LCLN,RECO,SMON,DBWR,LGWR,CKPT,ARCH PMON 做程序的清洁工作,处理一些不正常退出的事件. SMON 做系统的清洁工作,执行系统出错后自动恢复工作. LCKN Oracle系统表级或行级加锁的进程. ...

    ORACLE数据库入门1.ppt

    ORACLE数据库的后台进程包括PMON、LCKN、RECO、SMON、DBWR、LGWR、CKPT和ARCH等。这些进程负责处理数据库的各种操作,如事务恢复、系统清洁、锁管理等。 七、SQL语句执行过程 SQL语句的执行过程包括语法分析、...

    ORACLE 数据库入门.ppt

    - **后台进程**:Oracle包含多个后台进程,如PMON(进程监控器)负责清理异常退出的进程,SMON(系统监控器)执行系统恢复,LCKN(锁定进程)处理锁机制,RECO(恢复进程)用于分布式事务,DBWR(数据写进程)将...

    Oracle进程结构及后台进程简介

    单进程Oracle实例适用于简单的环境,比如MS-DOS,其中数据库系统和用户应用程序都在同一个进程中运行,只允许一个用户同时访问。而在多进程实例中,Oracle为每个连接的用户分配一个进程,提高了并发性和性能。多进程...

    oracle数据库体系结构之一【进程结构】

    在多进程结构中,Oracle后台进程扮演着关键角色,包括Dnnn(Dispatcher)、DBWR(Database Writer)、LGWR(Log Writer)、ARCH(Archiver Log Process)、PMON(Process Monitor)、SMON(System Monitor)、CKPT...

    ORACLE数据库期末考试练习题 ORACLE数据库复习题、练习题、训练题 共14页.pdf

    Oracle系统进程包括PMON进程、SMON系统监控、DBWR数据写进程、LGWR日志写进程、CKPT检查点进程等。这些进程都是Oracle数据库的核心组件,负责数据库的管理和维护。 数据库逻辑单位 Oracle数据库由称为表空间的逻辑...

    Oracle数据库试题.pdf

    10. **Oracle进程结构**:Oracle实例由SGA和后台进程组成,后台进程包括SMON、PMON、DBWR、LGWR等,而PGA(程序全局区)是与每个用户会话关联的内存区域,不属于实例的组成部分。 11. **资源管理**:当数据缓冲区无...

    经典ORACLE 数据库学习(PPT)精简通俗易懂

    - 包括PMON(进程监控)、LCKN(锁定)、RECO(恢复)、SMON(系统监控)、DBWR(数据写)、LGWR(日志写)、CKPT(检查点)和ARCH(归档)。这些进程负责数据库的维护、恢复、日志写入、数据刷新和归档备份。 7. ...

    Oracle数据库试题.docx

    6. Oracle实例的组成部分包括系统全局区域(SGA)、服务器进程和后台进程,不包括数据库作者。 7. PMON(Process Monitor)进程的主要职责是监控服务器进程和注册数据库服务。 8. 控制文件不是Oracle实例的组成...

    培训讲义:Oracle 数据库体系结构

    后台进程则负责数据库的维护和管理,如DBWR(数据库写入进程)负责将缓冲区中的脏数据写回磁盘,LGWR(日志写入进程)负责将重做日志缓冲区的内容写入重做日志文件,CKPT(检查点进程)用于记录数据库的检查点信息,...

    管理Oracle数据库知识.pptx

    后台进程主要包括 SMON、PMON、DBWR、CKPT 和 LGWR 等,而内存结构则包括数据缓冲区、重做日志缓冲区、共享池等,合称为系统全局区(SGA)。 实例管理是 Oracle 数据库管理的核心内容之一。一个实例只能访问一个...

    ORACLE 数据库入门视频

    本文将深入探讨Oracle数据库的基础知识,包括其体系结构、内存结构、实例、会话、事务、后台进程以及SQL语句的执行流程。 1. **Oracle体系结构** - **物理结构**:Oracle数据库的核心组成部分包括数据文件(*.dbf...

    Oracle数据库体系架构图

    系统全局区(SGA)是Oracle数据库内存中的一个共享区域,所有后台进程都会访问它。SGA主要包含以下几个部分: 1. **共享池**(Shared Pool):这是SGA的一部分,用于存储解析后的SQL语句和PL/SQL块,以及数据字典...

    Oracle数据库

    后台进程在Oracle数据库中扮演着关键角色,如SMON(System Monitor)负责数据库的自动恢复,PMON(Process Monitor)监控和清理挂起的进程,DBWR(Database Writer)将数据高速缓存中的更改写入数据文件,CKPT...

    oracle11g数据库基础教程第2版重要知识点总结.docx

    + 后台进程=DBWR+LGWR+CKPT+SMON+PMON+ARCH+其他 * 数据字典 + 数据字典=数据字典表+数据字典视图 + 数据字典表和视图都属于 SYS 模式,存储于 SYSTEM 表空间中 第四章 案例数据库的创建与客户端的连接 * 创建...

    ORACLE+数据库入门

    6. **后台进程**:Oracle有一系列后台进程,如PMON(进程监控)、LCKN(锁定进程)、RECO(恢复进程)、SMON(系统监控)、DBWR(数据写入)、LGWR(日志写入)、CKPT(检查点)和ARCH(归档)。这些进程各自负责...

    对ORACLE数据库的一些认识.pdf

    本文将深入探讨Oracle数据库的一些核心概念,包括Oracle实例、内存结构、后台进程以及物理结构。 1. Oracle实例理解 Oracle实例是Oracle数据库运行时的核心组成部分,由数据库本身和与其关联的内存结构及后台进程...

    oracle数据库入门

    Oracle数据库中存在多种后台进程,它们负责不同的管理和维护任务: - **PMON(Process Monitor)**:监控用户进程,当用户进程异常终止时,PMON负责清理资源并通知用户。 - **SMON(System Monitor)**:负责实例...

Global site tag (gtag.js) - Google Analytics