【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; 如 ...
随机推荐
- 测试kestrel的队列
一.依赖环境的安装 1.sbt wget http://typesafe.artifactoryonline.com/typesafe/ivy-releases/org.scala-tools.s ...
- hdu 4687 Boke and Tsukkomi
Dancing link twice. Find the maximum combination numbers in the first time. Enumerate each node, dan ...
- Android剪切板(ClipboardManager) 复制文本
Android也有剪切板(ClipboardManager) 注意:导包的时候 API 11之前: android.text.ClipboardManagerAPI 11之后: android.c ...
- javacsript (十一) 对象
他的对象的概念和python的字典的格式一样, JavaScript 对象 对象由花括号分隔.在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义.属性由逗号分隔: var ...
- 在toolbar里动态创建多个button(ext.net)
private void setOneMenu() { string sql = "select id,name,gids from Config where name<>'高级 ...
- java基础---->java调用oracle存储过程(转)
存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天 ...
- LCS小结(O(∩_∩)O~吽吽)
LCS!~如果你在百度上搜这个的话会出来”英雄联盟冠军联赛”,orz..但是今天要讲的LCS是最长公共子序列 ,"Longest Common Subsequence "not&q ...
- SAE php 研究(2)
1.在SAE新建项目打印出phpinfo <?php print phpinfo(); ?> 2. 可见:PHP Version 5.3.8 [使用的是php5.3.8编译的] 3. 可 ...
- 奔小康赚大钱 hdu 2255
奔小康赚大钱 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 《转载》值得学习!Google的编程样式指南
原网址:http://www.csdn.net/article/2012-10-12/2810689-Google-styleguide 本文分享了Google众多编程语言的样式指南,其中包括C语言. ...