zoukankan      html  css  js  c++  java
  • Oracle传统基本体系结构初步介绍(2) 老猫

    e、大池(Large Pool)

    大池的得名不是因为大,而是因为它用来分配大块的内存,处理比共享池更大的内存,在8.0开始引入。

    下面对象使用大池:

    MTS——在SGA的Large Pool中分配UGA

    语句的并行查询(Parallel Executeion of Statements)——允许进程间消息缓冲区的分配,用来协调 并行查询服务器

    备份(Backup)——用于RMAN磁盘I/O缓存

    4、后台进程(Background process)

    后台进程是Oracle的程序,用来管理数据库的读写,恢复和监视等工作。Server Process主要是通过他和user process进行联系和沟通,并由他和user process进行数据的交换。在Unix机器上,Oracle后台进程相对于操作系统进程,也就是说,一个Oracle后台进程将启动一个操作系统进程;在Windows机器上, Oracle后台进程相对于操作系统线程,打开任务管理器,我们只能看到一个ORACLE.EXE的进程,但是通过另外的工具,就可以看到包含在这里进程中的线程。

    在Unix上可以通过如下方法查看后台进程:

    ps –ef | grep ora_
      # ps -ef | grep ora_ | grep XCLUAT
      oracle 29431 1 0 Sep 02 2:02 ora_dbwr_SID
      oracle 29444 1 0 Sep 02 0:03 ora_ckpt_SID
      oracle 29448 1 0 Sep 02 2:42 ora_smon_SID
      oracle 29442 1 0 Sep 02 3:25 ora_lgwr_SID
      oracle 29427 1 0 Sep 02 0:01 ora_pmon_SID

      

    a、Oracle系统有5 个基本进程他们是

    DBWR(数据文件写入进程)

    LGWR(日志文件写入进程)

    SMON(系统监护进程)

    PMON(用户进程监护进程)

    CKPT(检查点进程,同步数据文件, 日志文件,控制文件)

    b、DBWR

    将修改过的数据缓冲区的数据写入对应数据文件

    维护系统内的空缓冲区

    这里指出几个容易错误的概念:

    当一个更新提交后,DBWR把数据写到磁盘并返回给用户提交完成.

    DBWR会触发CKPT 后台进程

    DBWR不会触发LGWR 进程

    上面的概念都是错误的.

    DBWR是一个很底层的工作进程,他批量的把缓冲区的数据写入磁盘。和任何前台用户的进程几乎没有什么关系,也不受他们的控制。至于DBWR会不会触发LGWR和CKPT进程,我们将在下面几节里讨论。

    DBWR工作的主要条件如下

    DBWR 超时

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

    CKPT 进程触发DBWR 等

    c、LGWR

    将重做日志缓冲区的数据写入重做日志文件,LGWR是一个必须和前台用户进程通信的进程。当数据被修改的时候,系统会产生一个重做日志并记录在重做日志缓冲区内。这个重做日志可以类似的认为是以下的一个结构:

    SCN=000000001000

    数据块ID

    对象ID=0801

    数据行=02

    修改后的数据=0011 

  • 相关阅读:
    HDU1316 fib+高精度
    HDU1868
    HDU2586 LCA
    HDU1113 字符串处理
    HDU1115 几何+多边形重心
    HDU1124
    HDU1110 几何
    HDU1103
    HDU2670 DP
    linux 下查看机器是cpu是几核的
  • 原文地址:https://www.cnblogs.com/oldcat/p/2179937.html
Copyright © 2011-2022 走看看