2014-08-05 Created By BaoXinjian


1. Oracle的内存结构

  • 内存结构式Oracle数据库体系中最为重要的一部分,内存也是印象数据库性能的第一因素
  • 分类
    • 系统全局区SGA (System Global Area)
    • 程序全局区PGA (Program Gobal Area)
    • 用户全局区UGA (User Global Area)

2. Oracle进程结构

进程是操作系统中的一种机制,它可执行一系列的操作步骤,操作系统会使用多个进程来执行Oracle的不同部分,并且对每个连接的用户都有一个进程

(1). 用户进程

(2). Oracle进程

  • 服务器进程
  • 后台进程
    • PMON(进程监控进程)
    • SMON(系统监控进程)
    • DBWR(数据库写入进程)
    • LGWR(日志写入进程)
    • ARCH(归档进程)
    • CKTP(检查点进程)
    • CJQO(作业队列协调器进程)
    • RECO(恢复进程)

3. Oracle易混淆概念

  • 实例和数据
  • 用户和模式
  • 用户和角色


1. 系统全局区SGA (System Global Area)

(1). 概念:是所有数据都可以访问的实例的共享区, 数据块、事物处理日志、数据字典信息等都存储在SGA中

(2). 详解:其中每个实例都只能有一个系统全局区,它是不同用户进程与服务进程进行通信的中心。数据库的各种操作主要在系统全局区进行。

(3). SGA所包含的数据:

  • 缓存数据块
  • 在数据库上执行的SQL语句
  • 用户执行的存储过程、函数和触发器

(4). SGA的组成:

  • DB高速缓存

    • 数据高速缓存database buffer cache (DBC)
    • DBC的作用:保存最近从数据文件中读取的数据块,其中的数据被所有用户共享
    • 影响DBC的两个参数: DB_BLOCK_SIZE和DB_BLOCK_BUFFERS
  • 共享池
    • 共享池保存了最近执行的SQL语句、PLSQL程序和数据字典信息,是对SQL语句和PLSQL程序进行预防解析、编译执行的内存去
  • 重做日志缓存
    • 重做日志高速缓存就是存储重做记录的缓存
    • 重做记录并不直接写入磁盘的重做日志文件,而是先写入重做的日志缓存
    • 当重做日志缓存中的重做记录达到一定的数量时,由LGWR进程写入重做日志
  • 大型池
    • 大型池用于大内存操作提供相对独立的内存空间那件
    • 需要大型池的操作有:数据库备份和恢复,用于共享服务进程的会话内存(大量排序的SQL语句),并行化数据操作

2. 程序全局区PGA (Program Gobal Area)

(1). 概念: 是一类没有共享的内存,专用于特定的服务器进程,并只能够由这个进程访问

(2). PGA的组成

  • 排序区

    • 保存执行order by、group by等包含排序操作的SQL语句时所产生的临时数据
  • 会话区
    • 保存所具有的权限、角色、性能统计信息
  • 游标区
    • 保存执行带有游标的PLSQL语句所产生的临时数据
  • 堆栈区
    • 保存会话中绑定的变量,会话变量以及SQL语句运行的内存结构信息

3. 用户全局区UGA (User Global Area)

(1).概念: 这个内存区域为我们用户进程存储了会话状态


1. 用户进程

2. Oracle进程

(1). 服务器进程

(2). 后台进程

  • PMON (进程监控进程)

    • 用以监控服务器进程,以确保能否销毁发生损坏或者出现故障的进程,释放他们的资源
    • 在主机操作系统上使用Oracle监听器注册数据库服务器
  • SMON (系统监控进程)
    • 在实例出现故障的情况下,SMON负责重新启动系统,执行崩溃恢复
    • SMON将会清楚已经分配但还没有被释放的临时段
    • SMON也会在表空间管理中执行盘区结合
  • DBWR (数据库写入进程)
    • 该进程将缓存区的用户所使用的数据写入数据文件
    • 使用户进程总是可以得到未用的缓存区
  • LGWR (日志写入进程)
    • 是向在线重做日志文件中所记录的所有数据库的已提交事务
    • 日志写入进程会在以下四种情况执行写入操作
      • 事务处理进程提交
      • 重做日志缓存已填充1/3
      • 重做日志缓存中的数据量达到1MB
      • 每3秒时间
  • ARCH (归档进程)
    • 将重做日志事务变化写入归档日志
  • CKTP (检查点进程)
    • 在检查点出现时,对全部数据文件的标题进行修改
  • CJQO (作业队列协调器进程)
    • 在Oracle中规划将要再数据后台运行的进程或者作业
  • RECO (恢复进程)
    • 在分布式数据库环境中恢复进程自动恢复失败的分布式事务


1. 实例和数据库

(1). 实例 (进程+内存结构)

  • Oracle实例时SGA和后台进程的组合
  • 数据库只是调入到实例所包含的内存和进程中,才可以使用

(2). 数据库 (数据文件+重做文件+控制文件+临时文件)

(3). 两者区别

  • Oracle实例时SGA(系统全局区)和一组后台进程的组合
  • Oralce数据库时指运行数据库所有的所有数据库文件
  • Oracle服务启动时先启动实例,然后转载数据库文件,即装在数据库

2. 用户和模式

(1). 用户:

  • 能够唯一标识一组信任凭着的名称和密码组合
  • Oracle中的用户其实就是用于登录Oracle命名账号
  • 用户可以拥有自己的数据对象

(2). 模式

  • 是用户所创建的数据库对象的总称
  • 模式中的对象包括:表、视图、索引、同义词、序列、过程、程序包

(3). 两者关系

  • 模式本身不是对象,模式只是一个用来描述特定用户的对象集合的属于
  • 模式和用户是一一对应的关系

3. 用户和角色

(1). 用户

用户就是用户登录Oracle的命名账号

例如:sys, system, scott, hr

(2). 角色

角色就是一组相关权限的命名结合

例如:connect, resource, DBA

(3). 两者关系

角色是一组权限的组合,我么将角色付给用户,从而让用户拥有角色所拥有的权限

Thanks and Regards

DBA_Oracle基本体系内存和进程结构(概念)的更多相关文章

  1. PG进程结构和内存结构

    ​ 本文主要介绍PostgreSQL数据库(后文简称PG)进程结构和内存结构,物理结构将在后续继续整理分享. ​ 上图描述了PG进程结构.内存结构和部分物理结构的内容.图中的内容包含了两个部分: PG ...

  2. (1.1)学习笔记之mysql体系结构(内存、进程、线程)

    关键词:mysql体系结构 参考:https://www.cnblogs.com/zhoubaojian/articles/7866292.html 一.mysql体系架构概述 1.mysql体系结构 ...

  3. 第5章 进程环境(1)_进程结构(task_struct)

    1. 进程的概念和进程结构 1.1 进程 (1)程序(program):是一些保存在磁盘上有序指令的集合,是存放在磁盘文件中的可执行文件.但没有任何执行的概念,它是静态的. (2)进程(process ...

  4. Oracle体系结构之Oracle10gR2体系结构-内存、进程

    oracle体系结构图1 oracle体系结构图2 用户进程(访问oracle的客户端的总称) 工具的使用:sqlplus.pl/sql developer 如何访问数据库: 本机直接通过sock方式 ...

  5. swoole(2)swoole进程结构

    一:进程基本概念 系统中正在运行的一个程序,程序一旦运行就是进程 一个进程可以拥有多个线程 核心内容分为两部分:内存(进程创建时从系统分配的,它所创建的变量都会存储在这一块内存中).上下文环境 二:s ...

  6. Linux程序存储结构与进程结构堆和栈的区别【转】

    转自:http://www.hongkevip.com/caozuoxitong/Unix_Linux/24581.html 红客VIP(http://www.hongkevip.com):Linux ...

  7. Oracle数据库体系结构之进程结构(4)

    Oracle进程结构包括用户进程,服务进程,后台进程. 1. 用户进程 用户进程在数据库用户要求连接到Oracle服务器时开始启动. 用户进程是要求Oracle服务器交互的一种进程 它必须首先建立一个 ...

  8. Linux进程调度与源码分析(二)——进程生命周期与task_struct进程结构体

    1.进程生命周期 Linux操作系统属于多任务操作系统,系统中的每个进程能够分时复用CPU时间片,通过有效的进程调度策略实现多任务并行执行.而进程在被CPU调度运行,等待CPU资源分配以及等待外部事件 ...

  9. Linux程序存储结构与进程结构 堆和栈的差别

    摘要:本文主要讲述了Linux系统中.程序存储结构(代码区.数据段和BBS区)与进程的基本结构(代码区.数据段.BBS区.堆和栈).以及堆和栈的差别. Linux程序存储结构与进程结构 1.Linux ...

随机推荐

  1. php连接MongoDB

    一.安装php的mongo扩展 # wget https://github.com/mongodb/mongo-php-driver-legacy/archive/master.zip -O /usr ...

  2. Android 开发 之 Fragment 详解

    本文转载于 : http://blog.csdn.net/shulianghan/article/details/38064191 本博客代码地址 : -- 单一 Fragment 示例 : http ...

  3. php 代码大全

    1.子类访问父类静态方法 <?php class A{ static function loadById(){ $class_name = get_called_class(); $model ...

  4. 论文笔记之:Attention For Fine-Grained Categorization

    Attention For Fine-Grained Categorization Google ICLR 2015 本文说是将Ba et al. 的基于RNN 的attention model 拓展 ...

  5. 此博客记录我的进阶之路(PHP、C、Python、Erlang)

    强大自己!赚钱,装修,娶媳妇!!

  6. Oracle RAC 并发与架构

    10g RAC进程总概 一. RAC 并发 RAC 的本质是一个数据库,运行在多台计算机上的数据库,它的主要任务是数据库就是事务处理,它通过 Distributed Lock Management(D ...

  7. docker镜像、容器

    第一部分:Docker镜像的基本知识 1.1 什么是Docker镜像 从整体的角度来讲,一个完整的Docker镜像可以支撑一个Docker容器的运行,在 Docker容器运行过程中主要提供文件系统视角 ...

  8. 使用支持向量机训练mnist数据

    # encoding: utf-8 import numpy as np import matplotlib.pyplot as plt import cPickle import gzip clas ...

  9. AndroidStudio导入项目常见问题

    问题一: 解决:少了依赖的路径 问题二: 解决:把runProguard 改成minfyEnable 来源:http://blog.csdn.net/pengkv/article/details/44 ...

  10. ABBYY将JPEG文件转换成Word文档的方法

    日常工作中处理JPEG格式的图像文件时,有时需要转换成Word文档进行编辑,市场上应用而生了很多转换工具,相信不少人听说过OCR(光学字符识别)软件,可以用来转换图像文件,而在OCR软件中, ABBY ...