https://www.cnblogs.com/chengxiao/p/5904783.html

一、什么是Oracle数据库?

  众所周知,Oracle DataBase是一款关系型数据库管理系统(不了解何谓关系型数据库的童鞋自行google,baidu),同类的产品还有mySql,sqlServer等,很多时候,我们会把那个承载我们核心数据的系统笼统地成为数据库服务器,但从严格意义上来讲Oracle DataBase是由两个部分组成:  

  实例:实例是数据库启动时初始化的一组进程和内存结构

  数据库:数据库则指的是用户存储数据的一些物理文件

  正因为如此我们一般才会说 关闭和启动实例,加载卸载数据库,就是这个道理。

  从实例和数据库的概念上来看,我们能知道,实例暂时的,它不过是一组逻辑划分的内存结构和进程结构,它会随着数据库的关闭而消失,而数据库它其实就是一堆物理文件(控制文件,数据文件,日志文件等等),它是永久存在的(除非磁盘损坏)。数据库和实例通常是一对一的,这种结构我们成为单实例体系结构;当然还有一些复杂的分布式的结构,一个数据库可以对多个实例,像Oracle的RAC(有兴趣的童鞋可以了解下)。

二、交互流程

  下面是从网上找的一张图,描述了单实例体系结构大致的交互流程    

 

1.用户和用户进程交互

用户进程可以是一般的客户端软件,像Oracle的sqlplus,sql developer,或者是一些驱动程序等等都属于用户进程。

2.用户进程和服务器进程交互

  服务器进程有时会称为前台进程,当然是相对于后台进程(后面会提到的数据库写入器,日志写入器等)来说的,服务器进程的主要作用就是处理连接到当前实例的用户进程的请求,

对客户端发来的sql进行执行并返回执行结果。在专有服务器结构中,用户进程和服务器进程是一对一的,也就是说,当监听程序监听到客户端来了一个请求,会为其分配一个对应的服务器进程。

还有一种结构为共享服务器,这种结构就不是一个用户进程对应一个服务器进程了,会通过调度程序进行协调处理,关于共享服务器连接,本文就不在赘述了。

3.服务器进程和实例进程交互

4.实例和数据库进程交互

上面描述了一些我们在进行数据库连接操作的时候,大致的交互流程是什么样的。下面,我们就来看看Oracle 的实例内存结构

三、实例内存结构和进程结构

  (由于内存结构和进程结构关系较紧密,进程会作用到对应的内存区域,比如数据库写入器作用到数据库缓冲区缓存中,日志写入器会作用到日志缓冲区,所以内存结构和进程结构会相互配合地进行描述)

  oracle实例内存结构由两部分组成SGA(系统全局区)和PGA(用户全局区)组成,SGA是一块共享的内存区域,也是最大的一块内存区域;PGA则是用户会话专有的内存区域,每个会话在服务器端都有一块专有的内存区域就是PGA。本文主要对SGA进行分析描述。SGA组成如下

  

闪回

(三)orcale体系结构的更多相关文章

  1. SharePoint咨询师之路:设计之前的那些事三:体系结构

    提示:本系列只是一个学习笔记系列,大部分内容都可以从微软官方网站找到,本人只是按照自己的学习路径来学习和呈现这些知识.有些内容是自己的经验和积累,如果有不当之处,请指正. 咨询师更多的时候是解决方案提 ...

  2. [Architecture] 系统架构正交分解法

    [Architecture] 系统架构正交分解法 前言 随着企业成长,支持企业业务的软件,也会越来越庞大与复杂.当系统复杂到一定程度,开发人员会发现很多系统架构的设计细节,很难有条理.有组织的用一张大 ...

  3. [Architecture Design] 累进式Domain Layer

    [Architecture Design] 累进式Domain Layer 前言 本篇的内容大幅度的简化了分析设计.面向对象等等相关知识,用以传达累进式Domain Layer的核心概念.实际开发软件 ...

  4. [Architecture Design] 3-Layer基础架构

    [Architecture Design] 3-Layer基础架构 三层式体系结构 只要是软件从业人员,不管是不是本科系出身的,相信对于三层式体系结构一定都不陌生.在三层式体系结构中,将软件开发所产出 ...

  5. Intel 80x86 Linux Kernel Interrupt(中断)、Interrupt Priority、Interrupt nesting、Prohibit Things Whthin CPU In The Interrupt Off State

    目录 . 引言 . Linux 中断的概念 . 中断处理流程 . Linux 中断相关的源代码分析 . Linux 硬件中断 . Linux 软中断 . 中断优先级 . CPU在关中断状态下编程要注意 ...

  6. 二 J2EE 概述

    一 WEB 应用 1. WEB 应用工作方式:B/S 模式 (浏览器/服务器模式) 2. WEB 应用结构组成: a. WEB 服务器:是安装在 WEB 服务器计算机上的一个软件包,负责接收用户请求并 ...

  7. 嵌入式系统基础知识(一): 系统结构和嵌入式Linux

    目录 一. 嵌入式体系结构 二. 开发过程中的分工 三. 嵌入式软件体系结构 四. 嵌入式Linux 一. 嵌入式体系结构 <嵌入式系统设计师教程>这本书的前三章脉络很清晰, 按照嵌入式系 ...

  8. [Linux] LVS虚拟服务器四层负载均衡

    随着互联网的爆炸性增长及其在我们生活中日益重要的作用,互联网上的流量急剧增加,并且每年以超过100%的速度增长.服务器上的工作负载正在迅速增加,因此服务器很容易在短时间内过载,尤其是对于流行的网站.为 ...

  9. mina学习总结

    一.简介: Apache Mina Server 是一个网络通信应用框架,Mina 可以帮助我们快速开发高性能.高扩展性的网络通信应用,Mina 提供了事件驱动.异步(Mina 的异步 IO 默认使用 ...

随机推荐

  1. 对于修改jsp页面后页面不发生变化的解决方法

    1.清除 Tomcat 6.0\work\Catalina\localhost 里面这个工程的内容:2.清除 Tomcat 6.0 webapps 里面的这个工程内容,然后重新部署,重启服务器:3.清 ...

  2. 【转】解决Maxwell发送Kafka消息数据倾斜问题

    最近用Maxwell解析MySQL的Binlog,发送到Kafka进行处理,测试的时候发现一个问题,就是Kafka的Offset严重倾斜,三个partition,其中一个的offset已经快200万了 ...

  3. Golang的面向对象实践method

    最近在系统的学习go的语法,一切都弄好了之后准备弄个im项目出来玩.在这个过程中会把看到有趣的写法和语法啥的拿出来分析一下. 我一直以为go语言对面向对象没有支持,但是后面看到了类似类的概念,meth ...

  4. prometheus和metrucs-server (k8s监控)

    资源指标:metrucs-server 自定义指标:prometheus, k8s-prometheus-adapter(转换prometheus数据的格式) 新一代架构: 核心指标流水线:由kube ...

  5. Ajax的post表单,不在url后接一大串参数键值对的方法

    $('#loginForm').on('submit',function (ev) { //阻止表单参数附在url后面 ev.stopPropagation(); ev.preventDefault( ...

  6. SpringBoot之显示本地图片范例

    controller // 扫描指定目录下的图片进行展示 @RequestMapping("/showPics") public ModelAndView showPics(Mod ...

  7. Lodop打印较大的超出纸张的图片

    ADD_PRINT_IMAGE打印图片时,如果一个图片过大,超出纸张,默认超出部分是不显示的,也不会分页.最近遇到有人利用ADD_PRINT_URL打印图片,说图片自动分了多页,因为这个方法一般是用来 ...

  8. 百度编辑器UEditor使用方法

    http://www.cnblogs.com/lionden/archive/2012/07/13/ueditor.html 介绍图片上传:http://uikoo9.com/blog/detail/ ...

  9. jQuery 获取url中的参数

    //获取url中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "= ...

  10. How to mount HFS EFI on macOS

    mount_hfs /dev/disk0s1 /volumes/efi