oracle 体系结构简介
1.1、SGA(system global area)
SGA是oracle Instance的基本组成部分,在示例启动是分配。是一组包含一个oracle实例的数据和控制信息的共享内存结构。主要用于存储数据库信息的内存区,该信息为数据库进程所共享。
1.1.1、共享池(shared pool)
1)data dictionary cache(缓存的是数据字典信息)
2)library cache
a)编译后的sql语句,当有新的语句来了之后,就从这里找,如果有的话,就直接执行了。
b)也涉及到命中率的问题
c)优化:以绑定变量方式,将where 过滤条件不同而其他相同的语句进行变量绑定,降低硬解析。
3)共享模式的情况下,PGA在共享池中。
4)每一个会话分配一个UGA,UGA在共享池中分配,如果是共享模式,那么久在Large pool中。
1.1.2、数据高速缓存区(database buffer cache)
1)命中率的概念
读内存的时候,如果在DB buffer cache中的话,那么就从内存中返回,如果没有的话,那么久从数据库中读到内存中。从内存中返回的比率越高说明命中率也高,性能相对也会较好。命中率较低的优化:加大内存,也可以将开辟一个keep缓存区,将经常访问的数据放到keep内存中。
1.1.3、重做日志缓存区(redo log buffer)
触发redo log buffer的写入规则
1)三秒钟
2)无论何时,只要有提交
3)三分之一满或者缓存了1M的重做日志数据
4)切换日志或检查点事件
1.2、PGA(program global Areas)
此区域包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA正相反,PGA是只被一个进程使用的私有区域,PGA在创建进程时分配,在终止进程时回收。专用模式下每一个服务器进程分配使用一个PGA。
1.3、内存结构
1)用户进程(user process)
》是一个需要与oracle server交互的程序
》运行于客户端
》当用户运行于某个工具或应用程序时创建,当用户退出上述程序时结束。
》用户向oracle server 发出调用,但它并不与oracle server 直接交互,而是用过server process与oracle server进行交互。
2)服务进程(server process)
》是一个直接与oracle server交互的程序
》与oracle server运行于同一台机器上
》使用PGA执行user process发出的调用,并向user process返回结果状态和结果信息。
3)后台进程(background)
后台进程用于维护物理存储于内存中的数据之间的关系。主要包括:
》SMON:系统监视进程,进程负责在实例启动时恢复实例,包括清除临时段以及恢复因系统崩溃而中断的事务。
a)实例恢复
b)重做已提交的事务
c)打开数据库
d)回滚未提交的事务
e)合并数据文件中相邻的自由空间
f)释放临时段的空间
》PMON:进程监视进程,进程负责监视数据库的处理情况,并负责清除掉死掉的进程。PMON还负责重启失败的调度进程。
a)回滚用户的当前事务。
b)释放相关的锁。
c)释放其他相关的资源。
》DBWn:数据库写入进程,进程负责将脏数据(已经修改但是没有提交的数据)从数据缓存区写回磁盘。当一个事务修改数据块中的数据以后,不需要立即将数据块写回磁盘。由于oracle所采用的先进机制,修改后的数据可以不用立即回写,并且出现故障也不会丢失。因此DBWR可以采取更有效的写回方式,而不用在事务提交完之后立即写回。DBWR通常定时写回数据,除非数据缓冲区需要清空或已满。
数据写回时,采用了最近最少使用原则。对于支持异步io的系统,只需要一个DBWR进程即可,对不支持异步io的可以通过增加DBWR的个数来提升效率。
触发DBWR进程的情况:
#发生检查点
#达到脏缓冲区阈值
#超时
#将表空间设置为脱机或只读
#删除或截断表
#备份表空间
》CKPT:检查点进程,CKPT进程负责向DBWR进程发送信号,要求执行一次检查点,并更新数据库的所有数据和控制文件为一直检查点。
SKPT会检查控制文件的SCN和数据文件的SCN是否一直,如果不一致,它会触发DBWR保证数据库的一致性。checkpoint(检查点),是指由DBWR进程将所有修改过的数据缓冲区里的脏数据写回数据文件。CKPT是可选的,如果没有CKPT进程,则有LGWR进程代行这些任务。
a)是DBWR将SGA中所有被修改的数据库缓冲区的内容写入磁盘,无论事务是否被提交
b)用检查点信息更新数据文件头
c)用检查点信息更新控制文件
它可以保证
d)将经常被修改的数据写入磁盘
e)简化实例恢复
》LGWR进程:日志写入进程LGWR负责将日志缓冲区中的数据写入重做日志。由于COMMIT操作依赖于LGWR写回日志(commit操作触发LGWR将日志缓冲区数据写入redo日志),因此系统性能容易受到LGWR的影响。
LGWR的执行要早于DBWR
触发条件:
a)事务提交
b)三分之一的redo日志缓冲区已满
c)每三秒钟
d)在DBWR写磁盘之前
》ARCH进程:归档日志进程,ARCH进程负责将在线重做日志复制到归档存储器,保障redo log文件的完整性。
以上是对oracle体系结构中的一些常用的进程与内存区做一个基础的描述,如果想深入去了解oracle体系结构原因,还是需要找一些详细全面的文档来研究。
oracle 体系结构简介的更多相关文章
- oracle体系结构简介
oracle体系结构简介 一.物理存储结构 1.数据文件 存放数据库数据,以dbf为扩展名.将数据放在多个数据文件中, 再将数据文件分放在不同的硬盘中,可以提高存取速度. ...
- Oracle数据库简介
Oracle数据库简介 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或浏览 ...
- Oracle体系结构学习笔记
Oracle体系结构由实例和一组数据文件组成,实例由SGA内存区,SGA意思是共享内存区,由share pool(共享池).data buffer(数据缓冲区).log buffer(日志缓冲区)组成 ...
- 黑马oracle_day01:01.oracle体系结构
01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象 05.oracle编程 01.oracle体系结构 开发环境:VMware® Worksta ...
- 1.Oracle数据库简介
Oracle数据库简介 Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracl ...
- Oracle体系结构总结
1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 可参考Oracle Architecture系列随堂笔记: ...
- oracle 体系结构
oracle 体系结构 数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. 1. oracle工作原理: 1).在数据库服务器上启动Oracle实例:2).应用程序 ...
- Oracle实例和Oracle数据库(Oracle体系结构)
--========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...
- 【转载】Oracle实例和Oracle数据库(Oracle体系结构)
免责声明: 本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除. 原文作者:Leshami 原文地址:http://blog.csdn.net/ ...
随机推荐
- Android 性能优化——之控件的优化
Android 性能优化——之控件的优化 前面讲了图像的优化,接下来分享一下控件的性能优化,这里主要是面向自定义View的优化. 1.首先先说一下我们在自定义View中可能会犯的3个错误: 1)Use ...
- LinkBar选中项字体颜色
通过控制disabledColor样式来控制,选中项字体的颜色.
- ZJOI2017 Round#2 滚粗记
在杭州的火车站的KFC餐厅里,独自一人,闲来无事,便写写这篇博客.刚刚的一个礼拜,经历了余姚的省选和杭州的数学集训,感觉有些浪,学校里现在还在上新课,我已经落下一个礼拜的文化课了,回去估计补死:最重要 ...
- CVE-2014-0038内核漏洞原理与本地提权利用代码实现分析 作者:seteuid0
关键字:CVE-2014-0038,内核漏洞,POC,利用代码,本地提权,提权,exploit,cve analysis, privilege escalation, cve, kernel vuln ...
- Centos6.5_x86上Oracle11g2 32位的安装与卸载以及相关问题汇总
需要注意的问题: 1.Linux包括内核和要安装的oralce版本是否符合(这个在官方文档中有说明). 2.安装oracle一般会新建一个为oracle的账户,注意在安装的过程中的root和oracl ...
- 增强for循环 -- foreach循环
1 作用 简化迭代器的书写格式.(注意:foreach循环的底层还是使用了迭代器遍历.) 2 适用范围 如果是实现了Iterable接口的对象或者是数组对象都可以使用foreach循环. 3 格 ...
- MyBatis之级联小结
在这之前我们知道了MyBatis为我们提供了三种级联:一对一关系(assocation).一对多关系(collection).鉴别器(discriminator).在最后一个鉴别器例子中,看到了当层级 ...
- C#在属性中用Lambda语法
今天看代码改功能的时候遇到了个比较奇怪的地方,在属性里也能用Lambda,我看了好久,也不是很理解,我都开始怀疑这是不是属性了,又在群里讨论了下这个问题,觉得有必要记下来,因为又涨知识了. 问题1:这 ...
- HTML5 进阶系列:canvas 动态图表
前言 canvas 强大的功能让它成为了 HTML5 中非常重要的部分,至于它是什么,这里就不需要我多作介绍了.而可视化图表,则是 canvas 强大功能的表现之一. 现在已经有了很多成熟的图表插件都 ...
- 9.Java 加解密技术系列之 RSA
Java 加解密技术系列之 RSA 序 概念 工作流程 RSA 代码实现 加解密结果 结束语 序 距 离上一次写博客感觉已经很长时间了,先吐槽一下,这个月以来,公司一直在加班,又是发版.上线,又是新项 ...