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. 实例与数据库的区别

       

  • 相关阅读:
    Linux常用命令集合
    运用栈实现表达式求值(+,-,*,/运算)
    队列
    变参函数
    C语言--递归程序的设计
    指针的灵活应用--内核链表中的container_of
    C语言-求回文数字
    压力测试和负载测试
    测试理论
    Dubbo接口调用
  • 原文地址:https://www.cnblogs.com/eniniemand/p/14062305.html
Copyright © 2011-2022 走看看