zoukankan      html  css  js  c++  java
  • 2.1.3 后台进程

    1,SMON(System Monitor)

    执行例程恢复

    (1)REDO:重新应用那些被记载到重做日志但尚未写入数据文件的数据。因为所有被提交的事务已经记载到了重做日志,所以可以确保恢复事务数据。

    (2)打开数据库。在打开数据库时,既包括了已提交的数据,也包括了未提交的数据(加锁)。

    (3)UNDO。取消未提交的数据。在打开数据库之后,Oracle 会自动使用UNDO 段回退未提交的数据。

    2,PMON(Process Monitor)

    PMON 用于监视服务器进程的执行,并且在服务器进程失败时清除该服务器进程。当访问Oracle Server 时,Oracle 会在服务器端为用户进程分配服务器进程。假定用户进程地址例外意外终止运行,PMON 可以轮询检测该服务器进程,并执行以下操作:

    • 回退用户的当前事务。
    • 释放服务器进程所占有的表锁和行锁。
    • 释放用户所占用的其他资源。

    3,DBWR(Database Writer)

    DBWR 用于将数据高速缓存的脏缓冲区数据写入到数据文件中。当执行DML 操作时,服务器进程会修改缓冲区,并且将这些缓冲区标识为“脏缓冲区”,将来这些脏缓冲区数据会由后台进程DBWR 写入到数据文件中。

    默认情况下只有一个DBW0 进程,通过设置初始化参数db_writer_processes 可以定义最多10个DBWR 进程(DBW0~DBW9)。在出现以下情况时,DBWR 进程会开始工作:

    • 系统发出检查点(checkpoint)。
    • 服务器进程不能找到空闲缓冲区。
    • 删除或截断表。
    • 使表空间正常脱机(ALTER TABLE ... OFFLINE NORMAL)。
    • 开始表空间备份(ALTER TABLESPACE ... BEGIN BACKUP)。

    4,LGWR(Log Writer)

    LGWR 用于将重做日志缓冲区所记载的全部内容写入到重做日志。当执行DML 或DDL 语句时,服务器进程首先将事务变化写到重做日志缓冲区,然后才会修改高速缓存。注意,Oracle  总是“先日志后修改”(先记载变化后修改数据)。因此,在将脏缓冲区数据写入到数据文件之前,Oracle 首先将事务变化写入到重做日志。也就是说,在DBWR 工作之前,LGWR 首先将事务变化写入到重做日志。

    在以下情况中LGWR 进程会开始工作:

    • 提交事务(COMMIT)。
    • 每隔三秒钟。
    • 当重做信息超过1M 时。
    • 重做日志缓冲区已有1/3 填满。
    • 在DBWR 进程将脏缓冲区写入到数据文件之前。

    5,CKPT(Checkpoint Process)

    CKPT 用于发出检查点,并且检查点会同步数据库的数据文件、控制文件和重做日志。当发出检查点时,后台进程CKPT 会将检查点时刻的SCN(System Change Number)写入到控制文件和数据文件头部,同时会促使后台进程DBWR 将所有脏缓冲区数据写入到数据文件中。

    当发出检查点时,不仅后台进程CKPT 和DBWR 要开始工作,而且LGWR 也会将重做日志缓冲区写入到重做日志,从而确保了数据文件、控制文件和重做日志的一致性。

    在以下情况中CKPT 会开始工作:

    • 日志切换。
    • 关闭例程(SHUTDOWN ABORT 除外)。
    • 手工检查点操作(ALTER SYSTEM CHECKPOINT)。
    • 由初始化参数fast_start_mrrt_target 强制发出检查点。

    6,ARCH(Archive Process)

    ARCH 用于将重做日志的事务变化复制到归档日志中。

    在ARCHIVELOG 模式下才会被启动。

    默认只有两个进程(ARC0、ARC1),通过初始化参数log_archive_max_processes 可以最多定义10个归档进程(ARC0~ARC9)。

    在ARCHIVELOG 模式下,当进行日志切换时会自动生成归档日志。

    通过查询动态性能视图v$bgprocess ,可以显示所有后台进程信息。

    SQL> select name, description from v$bgprocess where paddr<>'00';

    NAME  DESCRIPTION
    ----- ----------------------------------------------------------------
    PMON  process cleanup
    PSP0  process spawner 0
    MMAN  Memory Manager
    DBW0  db writer process 0
    LGWR  Redo etc.
    CKPT  checkpoint
    SMON  System Monitor Process
    RECO  distributed recovery
    CJQ0  Job Queue Coordinator
    QMNC  AQ Coordinator
    MMON  Manageability Monitor Process
    MMNL  Manageability Monitor Process 2

    已选择12行。

    E-MAIL:yiwuya@hotmail.com
    MSN:yiwuya@hotmail.com
    QQ:304899972
    纺织软件
  • 相关阅读:
    English Training Material
    SingleThreadModel is deprecated in Servlet API version 2.4
    What is the difference Apache (Http Server) and Tomcat (Servlet Container)
    Add a stylesheet link programmatically in ASP.NET
    Detail in Response.redirect and Server.transfer in ASP.NET
    @font-face usage
    实习面试总结(只写了昨天腾讯的面试和拿到offer的一个小公司, 有空再把前面的补上吧)
    redis-cli启动问题
    关于结构体内存对齐
    memcpy 和 memmove
  • 原文地址:https://www.cnblogs.com/yiwuya/p/1281241.html
Copyright © 2011-2022 走看看