关于oracle用户进程,服务进程,后台进程

用户进程(User Process)
  是一个需要与Oracle Server交互的程序
  运行于客户端
  当用户运行某个工具或应用程序(如SQL*Plus)时创建,当用户退出上述程序时结束
  用户进程向Oracle Server发出调用,但它并不与Oracle Server直接交互,而是通过Server Process与Oracle Server进行交互。
  --------------------------------------------------------------------------------------
  服务进程(Server Process)
  是一个直接与Oracle Server交互的程序。
  与Oracle Server运行于同一台机器上
  使用PGA执行User Process发出的调用,并向User Process返回结果状态和结果信息。
  --------------------------------------------------------------------------------------
  后台进程(Background Process)注:本人认为比较重要的一部分 。
  后台进程用于维护物理存储与内存中的数据之间的关系。主要包括:
  DBWn
  PMON
  CKPT
  LGWR
  SMON
  RECO
  ARCn
  -----------------------------------------
  Database Writer(DBWn)
  DBWn在以下情况将数据写入磁盘(数据文件data file):
  1)发生检查点
  2)达到脏缓冲区阈值
  3)没有可用的缓冲区
  4)超时
  5)将表空间设置为脱机或只读
  6)删除或截断表
  7)备份表空间
  -----------------------------------------
  LOG Writer(LGWR)
  LGWR在以下情况将缓冲区中的数据写入磁盘(联机日志文件redo log):
  1)事务提交
  2)三分之一的redo日志缓冲区已满
  3)Redo日志缓冲区中的内容超过1M
  4)每三秒钟
  4)在DBWn写磁盘之前
  -----------------------------------------
  System Monitor(SMON)
  负责检查和维护Oracle database的一致性。它主要完成以下工作:
  1)实例恢复
  2)重做已提交的事务
  3)打开数据库
  4)回滚未提交的事务
  5)合并数据文件中相邻的自由空间
  6)释放临时段的空间
  ----------------------------------------
  Process Monitor(PMON)
  当某个进程失效时,清除相关的资源。它主要负责以下工作:
  1)回滚用户的当前事务
  2)释放相关的锁
  3)是否其它相关的资源
  ---------------------------------------
  Checkpoint(CKPT)
  Checkpoint负责:
  1)使DBWn将SGA中所有被修改的数据库缓冲区的内容写入磁盘,无论事务是否被提交
  2)用检查点信息更新数据文件头
  3)用检查点信息更新控制文件
  它可以保证:
  1)将经常被修改的数据块写入磁盘
  2)简化实例恢复
  ---------------------------------------
  Archiver(ARCn)
  是一个可选的后台进程
  当把数据库设置为ARCHIVELOG模式时,可以自动归档联机redo日志
  能够保存所有对数据库所做修改的记录

一个Oracle系统的进程可以分为两个主要的组:
1.用户进程运行应用程序或者Oracle工具代码
2.?Oracle进程运行Oracle数据库服务代码。它们包括服务器进程和后台进程。
进程结构针对不同的Oracle配置、不同的操作系统和Oracle附件的选择都会有所不同。连接用户的代码可以配置为共享服务器或者专用服务器。
在专用服务器情况下,对每个用户来说,数据库应用程序运行的进程(用户进程)和Oracle数据库服务器代码运行的进程(专用服务器进程)不同。
在共享服务器下,数据库应用程序运行在和Oracle数据库代码不同的进程上(用户进程)。每个运行Oracle服务器代码的服务器进程(共享服务器进程)可以对多个用户进程服务。

服务器进程
Oracle创建服务器进程来处理连接到这个实例的用户进程的请求。在应用程序和Oracle运行在一台机器的情况下,可以将用户进程和对应的服务器进程合并来降低系统开销。但是,当应用程序和Oracle在不同的计算机上运行时,用户进程总是通过不同的服务器进程连接Oracle。
为每个用户应用程序创建的服务器进程(或者合并的用户/服务器进程的服务器部分)可以执行下列任务:
1,解析和运行应用程序发布的SQL语句
2,如果SGA中不存在一些数据块的数据,服务器进程会从磁盘上的数据文件读取必要的数据块到SGA的共享服务器缓存中。
3,以应用程序可以处理的信息方式返回结果。
后台进程
为获得最高的性能和适应多用户,一个多进程Oracle系统使用一些叫做后台进程的额外Oracle进程。
一个Oracle实例可以有很多后台进程;但不是所有的都必须存在。后台进程数量很多。查看视图V$BGPROCESS可以得到关于后台进程的信息。一个Oracle实例中的后台进程可以包含下列进程:
1,数据库写入进程(Database Writer Process,DBWn)
2,日志写入进程(Log Writer Process,LGWR)
3,检查点进程(Checkpoint  Process,CKPT)
4,?系统监视进程(System Monitor Proces

ORACLE 的前后台进程的更多相关文章

  1. Linux下使用ps命令来查看Oracle相关的进程

    Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...

  2. Oracle删除死锁进程的方法

    本文实例讲述了Oracle删除死锁进程的方法.分享给大家供大家参考.具体如下: 步骤1:用以下SQL查看进程列表,判断出被锁定的表 复制代码代码如下: SELECT dob.OBJECT_NAME T ...

  3. Oracle体系结构之进程

    Oracle体系结构之进程 一.概述 Oracle中的每个进程都要执行一个特定的任务(或者一组任务),每个进程都会为自己分配内存(PGA)来完成它的任务.一个Oracle实例主要有以下3类进程: (1 ...

  4. Linux下可以使用ps命令来查看Oracle相关的进程

    Linux下可以使用ps命令来查看Oracle相关的进程 Oracle Listener 这个命令会列出Oracle Net Listener的进程 [oracle@ www.linuxidc.com ...

  5. oracle错误:1067进程意外终止

    oracle错误:1067进程意外终止我Oracle安装完了之后可以运行的 ,过了一段时间不可以了,就上网找了一下,原来是自己的ip已经改变.我一直使用IP地址的. 将D:\oracle\produc ...

  6. Linux学习笔记(16)Linux前后台进程切换(fg/bg/jobs/ctrl+z)

    关键词:Linux前后台进程切换,linux进程切换 fg.bg.jobs.&.ctrl + z都是跟系统任务有关的,虽然现在基本上不怎么需要用到这些命令,但学会了也是很实用的一.& ...

  7. Oracle 11g 体系结构 --SGA PGA 前后台进程

    Oracle服务器主要由实例.数据库.程序全局区.前台进程 实例:用来提供管理数据库的功能 数据库:由Oracle数据库文件组成,用来存储系统数据 ;一般有:数据文件.控制文件.重做日志文件 而实例可 ...

  8. ORACLE会话连接进程三者总结

    概念介绍 通俗来讲,会话(Session) 是通信双方从开始通信到通信结束期间的一个上下文(Context).这个上下文是一段位于服务器端的内存:记录了本次连接的客户端机器.通过哪个应用程序.哪个用户 ...

  9. 中断ORACLE数据库关闭进程导致错误案例

    昨晚下班的时候,我准备关闭本机的虚拟机上的ORACLE数据库后准备下班,但是由于我SecureCRT开了多个窗口,结果一不小心,疏忽之下在一个生产服务器上执行了shutdown immediate命令 ...

随机推荐

  1. hbuilder mui html vue ul li 自定义循环赋值ID

    <ul class="mui-table-view mui-table-view-chevron"> <li class="mui-table-view ...

  2. Log4j2 - 日志框架中isDebugEnabled()的作用

    为什么要使用isDebugEnabled() 之前在系统的代码中发现有时候会在打印日志的时候先进行一次判断,如下: if (LOGGER.isDebugEnabled()) { LOGGER.debu ...

  3. zabbix(x)

    问题现象: 客户端设置好自定义监控项,脚本执行或者命令执行都可以正常的输出,但是服务器端通过zabbix-get从客户端获取数据的时候,获取到不正常的值(比如客户端获取到1,服务端获取时显示0或者直接 ...

  4. json页面解析

    List<TjfxDTO> cyjbList = new ArrayList<TjfxDTO>(); cyjbList=tjfxService.cyjb_wcjd(tjfxDT ...

  5. Qt学习大全

    这边文章的目的是把自己之前写的关于Qt的文章整理归纳成一个Qt学习的专栏,会提供之前文章的导航,同时也会留一些坑待自己日后填. 1.Qt 元对象系统 2.Qt的信号和槽 3.Qt的插件开发 4.Qml ...

  6. RK3399 修改系统默认语言为简体中文

    CPU:RK3288 系统:Android 7.1 修改系统默认语言为简体中文 diff --git a/build/target/product/full_base.mk b/build/targe ...

  7. CentOS 7 安装MySQL8

    安装 下载Linux对应的MySQL https://dev.mysql.com/downloads/mysql/ CentOS选择Red Hat Enterprise Linux 在/usr/loc ...

  8. 对Zlib单元进行再封装

    对Zlib单元进行再封装 低版本DELPHI,如D7,ZLIB.pas单元封装的很简陋,因此有必要再封装,以增加使用的便利性. 高版本DELPHI,zlib.pas本身提供的接口已经相当完善. Zli ...

  9. 关于Vue.use()详解

    问题 相信很多人在用Vue使用别人的组件时,会用到 Vue.use() .例如:Vue.use(VueRouter).Vue.use(MintUI).但是用 axios时,就不需要用 Vue.use( ...

  10. BitmapFactory之Options

    package com.loaderman.customviewdemo; import android.app.Activity; import android.graphics.Bitmap; i ...