一、ORACLE 物理体系结构

  1. 原理结构图

各部分解释:

PGA: 私有内存区,仅供当前发起用户使用。

三个作用

  1. 用户登录后的session信息会保存在PGA。
  2. 执行排序,如果内存不够,oracle会在临时表空间中完成
  3. 保存用户权限信息

SGA: 包含共享池,数据缓冲区,日志缓冲区以及一些相关的进程。

DATABASE: 数据最终存放的地方,其中一块区域是日志存放区。数据和记录日志又由DBWR和LGWR来写入数据库和重做日志组,待一个重做日志组满了之后切换到下一个,等到循环了一次之后,原来排序为第一组的日志会被ARCH进程写入归档日志。

2结构深入

2.1 从一条查询sql语句解析结构

假设有一条sql: select * from user where user_id='20'

  1. Sql被解析后,(1区)PGA保存其登陆和权限信息。这一点必须注意,如果保存了该信息,下次调用sql的时候就不需要重新校验,直接玩PGA里取就行了。
  2. 随后该sql会匹配一条唯一的HASH值并到达2区的共享池,共享池判断此HASH值是否之前已经存在,如果存在就直接执行就OK了;如果不存在,就要检查sql的语法、语义等进行验证并解析。解析什么呢?就是要把select * from user where user_id='20' 这条语句,在user_id存在索引的情况下,oracle对最优COST做出选择(到底是索引扫描还是全表扫描),作出选择后oracle会把改执行计划和之前的那条HASH值放在一起。
  3. 带着条件,sql下一步会到数据缓冲区中查找是否存在user_id为20的记录。如果缓冲区有则马上返回结果;如果无,则要到3区(database)中查找,无论是否找到都要返回结果。

2.2 从一条更新sql语句解析结构

假设有一条sql:update user set user_name='萧红'

  1. 如上步骤1.2 。
  2. 把数据的操作记录写到重做日志
  3. 写入数据库中,持久化数据,把数据库user表的user_name 字段都改为萧红。

3提交与回滚

  1. 当用户提交commit的时候,数据并不会马上刷进数据库。数据何时会被刷入数据库?

    这与CKPT进程有关,当缓冲区的数据量达到一定的程度时,CKPT进程会被触发,数据此时才批量刷入数据库。当刷入数据库前断电了怎么办?REDU机制重新执行日志恢复数据。

      2. ROLLBACK 执行的是UNDO

Oracle物理体系结构的更多相关文章

  1. 【Oracle】物理体系结构

     一.ORACLE 物理体系结构 原理结构图 各部分解释: PGA: 私有内存区,仅供当前发起用户使用. 三个作用 用户登录后的session信息会保存在PGA. 运行排序.假设内存不够,orac ...

  2. Oracle的体系结构

    前言 这个章节主要想说的是Oracle的体系结构,这个也是理论强些.还有一些比较理论的知识点(比如表空间啊),就暂时先不写了,下一章节开始进入Oracle的操作阶段,比如表的查询啊.插入以及重点是和S ...

  3. Oracle基础(九) Oracle的体系结构

    一.Oracle体系结构概述: Oracle的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制.要了解Oracle数据库的体系结构,必须理解Oracle系统的重要概念和主要 ...

  4. Oracle学习笔记--第2章 oracle 数据库体系结构

    第2章 oracle 数据库体系结构 目录: ————————————— 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...

  5. Oracle学习笔记之二,Oracle 11g体系结构

    Oracle 11g体系结构概述 实例(Instance),是指一组Oracle后台进程以及在服务器中分配的共享内存区域: 数据库(Database),是由基于磁盘的数据文件.控制文件.日志文件.参数 ...

  6. Oracle数据库体系结构(2)数据库实例

    Oracle实例的概念: 实例(Instance):就是数据库管理系统,处于用户与物理数据库之间的一个中间层软件,由一系列内存结构和后台进程组成. 用户操作数据库的过程实质上与数据库实例建立连接,然后 ...

  7. oracle数据库体系结构

    一.oracle数据库体系结构 基本组成: Oracle server:一般情况下是一个instance和一个database组成 一般:1个instance只能对应一个数据库. 特殊:1个数据库可以 ...

  8. Oracle数据库体系结构、启动过程、关闭过程

    一.Oracle数据库体系结构体系结构由下面组件组成:1.Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1 ...

  9. Oracle 物理备份--rman

    Oracle 物理备份--rman 1.直接在服务器,打开命令行,输入: rman target/ 2.配置参数也一同备份 configure controlfile autobackup on; 如 ...

随机推荐

  1. 相克军_Oracle体系_随堂笔记006-日志原理

    简单来说,学习Oracle数据库就两个目标: 保证数据库数据的一致性: 提高数据库的性能(这个和日志没关系).   日志的功能:     只是保证数据库数据的一致性:   1.Oracle日志原理   ...

  2. SSH整合时执行hibernate查询报错:java.lang.ClassCastException: com.ch.hibernate.Department_$$_javassist_0 cannot be cast to javassist.util.proxy

    今天在整合ssh三个框架时,有一个功能,是查询所有员工信息,且员工表和部门表是多对一的映射关系,代码能正常运行到查询得到一个List集合,但在页面展示的时候,就报异常了, java.lang.Clas ...

  3. mongodb安装配置

    下载安装 官网下载地址:https://www.mongodb.com/download-center 执行msi文件. 环境配置 可以参照我的步骤来进行配置,目录根据个人需要设置. 解压安装包到D: ...

  4. Quartz.net 开源job调度框架(一)

    Quartz.NET是一个开源的作业调度框架,非常适合在平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等. Quartz.NET允许开发人员根据时间间隔(或天)来调度作业.它实现了作业和 ...

  5. failover机制的小讨论

    对于一个7*24小时无间断的线上服务来说,在服役时间内难免会遇到一些fail,例如db断开连接且短暂连接不上了, 下游的某个节点忽然挂了,运维部署上依赖的某一个东西不存在了等等场景.本文主要来讨论一下 ...

  6. Java IO之字节流

    Java中的输入是指从数据源等读到Java程序中,这里的数据源可以是文件,内存或网络连接,输出则是指从Java程序中写到目的地. 输入输出流可以分为以下几种类型(暂时不考虑File类) 类名 中文名 ...

  7. 如何寻找“真爱”型合伙人

          曾与朋友笑侃,现在找人结婚,跟合伙开公司差不多,各自条件一一对比,细细斟酌,最后双方达成一致,才得凑成一对冤家.谁说不是呢?两种关系都实为"伙伴",开公司重" ...

  8. 第二十六章 hystrix-dashboard + turbine

    一.使用turbine的意义 引入多个hystrix stream: 1.使用hystrix-dashboard的可以添加多个stream的功能 图中添加的两个stream会在真正monitor的时候 ...

  9. ajax分页与组合查询配合使用

    使用纯HTML页与js.ajax.Linq实现分页与组合查询的配合使用 <body> <div id="top"><input type=" ...

  10. 迷你版jQuery——zepto核心源码分析

    前言 zepto号称迷你版jQuery,并且成为移动端dom操作库的首选 事实上zepto很多时候只是借用了jQuery的名气,保持了与其基本一致的API,其内部实现早已面目全非! 艾伦分析了jQue ...