zoukankan      html  css  js  c++  java
  • 体系结构 --- 实例和数据库

    话不多说,直接上图

    1. 各种概念

    实例(INSTANCE):由内存区SGA:system global area (六大池:共享池,数据缓冲区,日志缓冲区,JAVA池,流池,大池)+ 后台进程(六大后台进程:DBWR、LGWR、PMON、SMON、CKPT、LEGR)组成

    数据库:由一系列文件组成的(数据文件 .dbf,控制文件 .ctl,在线日志文件 .log,参数文件,口令密码文件等)

    SGA(System global area):系统全局区,也可以称为共享全局区,共享内存。SGA由所有服务器进程和后台进程共享。

    PGA(Program global area):程序全局区,也可以称为私有全局区,私有内存。服务器进程(User progress)对PGA的访问是独占的,每个服务器进程(User progress)都有自己的PGA。

    Oracle Server : 实例(Instance) + 数据库(Database)

    Instance : 内存 + 后台进程

    Oracle Memory : SGA + PGA

    把内存中的数据写入数据库(磁盘),是由后台进程主导的

    把数据库(磁盘)中的数据写入内存区,是由服务进程(Server progress)主导的

    2. 图片解析(针对专有服务模式 Dedicated server)

    实验:假设用户A要查询数据库中EMP表的数据,用户A在客户端发出 SQL> select * from emp; 指令后,后台的运转流程如下:

    解析:用户A发出指令后,就产生了用户进程(User progress),此时服务器监听到此用户进程,就会派生出一个服务进程(Server progress)与之对接,服务进程(Server progress)拿着用户的请求到SGA中索取与用户相关的数据。

               如果SGA中有该数据的缓存,则服务进程(Server progress)直接返回该数据给用户;

       如果SGA中没有该数据的缓存,则服务进程(Server progress)会到数据库(磁盘)中调取该数据到SGA中,然后再把数据返回给用户。

       如果用户A在客户端发出的请求是 SQL> select * from emp order by sal;  则服务进程(Server progress)将数据返回给用户前,需先把数据放进PGA(Program global area)进行排序处理,处理完成后再返回给用户。

    3. 实例与数据库的区别

       

  • 相关阅读:
    hexo在git上搭建个人博客
    C++中的const
    C++ 面试 (1) 指针
    struct 大小计算
    php多路复用(多线程)socket相关应用
    centos6.5 redis应用环境搭建
    WebSocket的Cookie问题(转)
    java 获取参数泛型类型
    php编写TCP服务端和客户端程序
    phpize的作用(资料整理)
  • 原文地址:https://www.cnblogs.com/eniniemand/p/14062305.html
Copyright © 2011-2022 走看看