【Oracle】物理体系结构
一、ORACLE 物理体系结构
原理结构图

各部分解释:
PGA: 私有内存区,仅供当前发起用户使用。
三个作用
- 用户登录后的session信息会保存在PGA。
- 运行排序。假设内存不够,oracle会在暂时表空间中完毕
- 保存用户权限信息
SGA: 包括共享池,数据缓冲区,日志缓冲区以及一些相关的进程。
DATABASE: 数据终于存放的地方,当中一块区域是日志存放区。数据和记录日志又由DBWR和LGWR来写入数据库和重做日志组,待一个重做日志组满了之后切换到下一个,等到循环了一次之后,原来排序为第一组的日志会被ARCH进程写入归档日志。
2结构深入
2.1 从一条查询sql语句解析结构
如果有一条sql: select * from user where user_id='20'
- Sql被解析后。(1区)PGA保存其登陆和权限信息。这一点必须注意,假设保存了该信息,下次调用sql的时候就不须要又一次校验。直接玩PGA里取即可了。
- 随后该sql会匹配一条唯一的HASH值并到达2区的共享池。共享池推断此HASH值是否之前已经存在,假设存在就直接运行就OK了;假设不存在,就要检查sql的语法、语义等进行验证并解析。
解析什么呢?就是要把select * from user where
user_id='20' 这条语句,在user_id存在索引的情况下,oracle对最优COST做出选择(究竟是索引扫描还是全表扫描),作出选择后oracle会把改运行计划和之前的那条HASH值放在一起。 - 带着条件,sql下一步会到数据缓冲区中查找是否存在user_id为20的记录。假设缓冲区有则立即返回结果。假设无,则要到3区(database)中查找。不管是否找到都要返回结果。
2.2 从一条更新sql语句解析结构
如果有一条sql:update user set user_name='萧红'
- 如上步骤1.2 。
- 把数据的操作记录写到重做日志
- 写入数据库中。持久化数据。把数据库user表的user_name 字段都改为萧红。
3提交与回滚
- 当用户提交commit的时候,数据并不会立即刷进数据库。
数据何时会被刷入数据库?
这与CKPT进程有关。当缓冲区的数据量达到一定的程度时,CKPT进程会被触发,数据此时才批量刷入数据库。
当刷入数据库前断电了怎么办?REDU机制又一次运行日志恢复数据。
2. ROLLBACK 运行的是UNDO
【Oracle】物理体系结构的更多相关文章
- Oracle物理体系结构
一.ORACLE 物理体系结构 原理结构图 各部分解释: PGA: 私有内存区,仅供当前发起用户使用. 三个作用 用户登录后的session信息会保存在PGA. 执行排序,如果内存不够,oracle会 ...
- Oracle的体系结构
前言 这个章节主要想说的是Oracle的体系结构,这个也是理论强些.还有一些比较理论的知识点(比如表空间啊),就暂时先不写了,下一章节开始进入Oracle的操作阶段,比如表的查询啊.插入以及重点是和S ...
- Oracle基础(九) Oracle的体系结构
一.Oracle体系结构概述: Oracle的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制.要了解Oracle数据库的体系结构,必须理解Oracle系统的重要概念和主要 ...
- Oracle学习笔记--第2章 oracle 数据库体系结构
第2章 oracle 数据库体系结构 目录: ————————————— 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...
- Oracle学习笔记之二,Oracle 11g体系结构
Oracle 11g体系结构概述 实例(Instance),是指一组Oracle后台进程以及在服务器中分配的共享内存区域: 数据库(Database),是由基于磁盘的数据文件.控制文件.日志文件.参数 ...
- Oracle数据库体系结构(2)数据库实例
Oracle实例的概念: 实例(Instance):就是数据库管理系统,处于用户与物理数据库之间的一个中间层软件,由一系列内存结构和后台进程组成. 用户操作数据库的过程实质上与数据库实例建立连接,然后 ...
- oracle数据库体系结构
一.oracle数据库体系结构 基本组成: Oracle server:一般情况下是一个instance和一个database组成 一般:1个instance只能对应一个数据库. 特殊:1个数据库可以 ...
- Oracle数据库体系结构、启动过程、关闭过程
一.Oracle数据库体系结构体系结构由下面组件组成:1.Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1 ...
- Oracle 物理备份--rman
Oracle 物理备份--rman 1.直接在服务器,打开命令行,输入: rman target/ 2.配置参数也一同备份 configure controlfile autobackup on; 如 ...
随机推荐
- 《转》OpenStack Live Migration
This post is based assumption that KVM as hypervisor, and Openstack is running in Grizzly on top of ...
- 让Android中的webview支持页面中的文件上传
android webview在默认情况下是不支持网页中的文件上传功能的: 如果在网页中有<input type="file" />,在android webview中 ...
- MySQL 存储过程例子,不能在if else里面用begin end否则会报错Error Code : 1064!
Error Code : 1064 You have an error in your SQL syntax; check the manual that corresponds to your My ...
- HTML事件
Media 事件
- [C#基础] 泛型
为什么泛型? 在泛型中,最重要的应用便是集合类,因此我们模拟一个简单的集合类 对于上述示例,可以有如下应用 从上可看出,自定义的代码太丑陋了,只能用于string类型. 当然我们可以用object作为 ...
- Android开发5:布局管理器2(表格布局TableLayout)
版本:Android4.3 API18 学习整理:liuxinming 概念 TableLayout继承了LinearLayout,因此它的本质依然是线性布局管理器. 表格布局采 ...
- MySQL的Master/Slave群集安装和配置
本文介绍MySQL的Master/Slave群集安装和配置,版本号安装最新的稳定版GA 5.6.19. 为了支持有限HA.我们用Master/Slave读写简单孤立的集群.有限HA这是当Master不 ...
- Tiny server:小型Web服务器
一.背景 csapp的网络编程粗略的介绍了关于网络编程的一些知识,在最后的一节主要就实现了一个小型的Webserver.这个server名叫Tiny,它是一个小型的可是功能齐全的Webserver.在 ...
- Java使用Socket传输文件遇到的问题(转)
1.写了一个socket传输文件的程序,发现传输过去文件有问题.找了一下午终于似乎找到了原因,记录下来警示一下: 接受文件的一端,向本地写文件之前使用Thread.sleep(time)休息一下就解决 ...
- adnroid仿miui的dialog
先来看下效果图: 当中show和dismiss的时候有动画效果. 原先试过使用PopupWindow来做,可是使用的时候不是那么舒服,毕竟不是dialog嘛. 所以这次尝试还是使用dialog来做 , ...