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 体系结构简介的更多相关文章

  1. oracle体系结构简介

    oracle体系结构简介 一.物理存储结构    1.数据文件       存放数据库数据,以dbf为扩展名.将数据放在多个数据文件中,       再将数据文件分放在不同的硬盘中,可以提高存取速度. ...

  2. Oracle数据库简介

    Oracle数据库简介 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或浏览 ...

  3. Oracle体系结构学习笔记

    Oracle体系结构由实例和一组数据文件组成,实例由SGA内存区,SGA意思是共享内存区,由share pool(共享池).data buffer(数据缓冲区).log buffer(日志缓冲区)组成 ...

  4. 黑马oracle_day01:01.oracle体系结构

    01.oracle体系结构 02.oracle的基本操作 03.oracle的查询 04.oracle对象 05.oracle编程 01.oracle体系结构 开发环境:VMware® Worksta ...

  5. 1.Oracle数据库简介

    Oracle数据库简介 Oracle Database,又名Oracle RDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracl ...

  6. Oracle体系结构总结

    1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 1.Oracle 体系结构摘要图 2.Oracle 体系结构相关笔记 可参考Oracle Architecture系列随堂笔记: ...

  7. oracle 体系结构

    oracle 体系结构 数据库的体系结构是指数据库的组成.工作过程与原理,以及数据在数据库中的组织与管理机制. 1. oracle工作原理: 1).在数据库服务器上启动Oracle实例:2).应用程序 ...

  8. Oracle实例和Oracle数据库(Oracle体系结构)

    --========================================== --Oracle实例和Oracle数据库(Oracle体系结构) --==================== ...

  9. 【转载】Oracle实例和Oracle数据库(Oracle体系结构)

    免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:Leshami      原文地址:http://blog.csdn.net/ ...

随机推荐

  1. js小数处理

    js中的小数处理   先说说Math的几个方法: 1.Math.floor(x)   返回不大于当前数的最大整数. 我的记法:floor 直译 地板  也就是不大于的的意思 (x-0.5 四舍五入取整 ...

  2. Ubuntu14.04双网卡主备配置

    近日有个需求,交换机有两台,做了堆叠,服务器双网卡,每个分别连到一台交换机上.这样就需要将服务器的网卡做成主备模式,以增加安全性,使得当其中一个交换机不通的时候网卡能够自动切换. 整体配置不难,网上也 ...

  3. 阿里云主机试用之自建站点和ftp上传所遇的2个问题

    1.Access to the requested object is only available from the local network 其实我并没有自建站点,只是使用了XAMPP来建了ap ...

  4. 写具有良好风格的ABAP代码

    编程风格是一个经久不衰的话题,大家所公认的事实是:一个良好的编程风格会带来很多的好处.而对于“良好”的标准,则众说纷纭,莫衷一是.编程风格在ABAP程序中当然也有着重要的意义,因为很少看到专门针对AB ...

  5. js与juery基础知识对比(一)---2017-05-06

    用表格做的,想要对比的内容一目了然,红色部分为重点   js jquery 取元素 id: document.getElementById("aa"); 取到的是dom对象 cla ...

  6. 前端开发需要了解的JS插件

    excanvas.js/Chart.js/cubism.js/d3.js/dc.js/dx.chartjs.js/echarts.js/flot.js 用途:构建数据统计图表,兼容多浏览器 jquer ...

  7. 什么是mybatis 为什么要使用my batis

    1.定义MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.2.使用原因MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用 ...

  8. 【安装Python环境】之“安装 setuptools ”时出现的问题以及解决办法

    安装Python环境时,还需要安装"setuptools 与 pip",但是安装setuptools时出现了几个问题,如下: setuptools 与 pip 下载地址如下:htt ...

  9. python 使用 'python -m pip install --upgrade pip'提示PermissionError: [WinError 5] 拒绝访问

    执行pip install --upgrade pip 提示"PermissionError: [WinError 5] 拒绝访问",如下图,由于更新的用户权限不够,换成管理员运行 ...

  10. 在Excel上写程序(ExcelEx)

    首先要说明的是:Ctrl+D,是执行框选的的扩展函数+号,一个单元格里多个函数用+号分隔*号,相当于链式操作(没法子,公式里不能写"."号) 虽还有很大的局限性,至少很多小程序和数 ...