oracle体系结构(笔记二) 中庸

   " 学习一东西,一般思路是:框架->细节",某老师曾经这样说,这也符合本人的习惯,废话不多说,进入正题.

   一.oracle体系的组成

      oracle的体系结构主要分为三大部分:

           1.文件 主要包括构成数据库的五大类文件:参数文件,数据文件,临时文件,控制文件和重做日志文件。

           2.内存结构 主要包括系统全局区(System Global Area,SGA),进程全局区(System Global Area,PGA)和

                            用户全局区(User Global Area,UGA).

           3.进程或线程 主要包括3类不同的进程:服务器进程,后台进程和从属进程

     二.常用术语

          实例与数据库

          数据库:物理操作系统文件或磁盘的集合。

    实例:一组oracle后台进程或线程以及一个共享内存区,内存共享区,有同一个计算机上运行的进程或线程所共享, 没

             有磁盘存储,数据库实例也能存在.

    关系:一个数据库可以由多个实例装载和打开,而实例在其生存期中最多能装载和打开一个数据库.

    本质:实例就是一组操作系统进程(或者一个多线程的进程)以及一些内存,这些进程可以操作数据库.而数据库只

             是 一个文件的集合(数据文件,临时文件,重做日志文件,控制文件等).一个实例只能有一组相关的文件.

             (与一个数据库关联)

     典型的应用:oracle的真正应用集群(Real Application Clusters,RAC),允许多个实例同时装载并打开一个数据库

                      (位于一组共享物理磁盘上),因此,我们可以同时从多台不同的计算机上访问这个数据库.

     一个实例能打开多个数据库吗?

     答:可以,一个磁盘上有4个数据库和一个实例,只要有不同的配置文件,就能装载并打开4个数据库中的任意一个.

           在任意时间点上只能访问一个数据库.

三.连接oracle的模式

     服务器处理请求的两种常见方式:专用服务器连接和共享服务器连接

    专用服务器连接:在登陆时,oracle在服务端总会创建一个新的进程,这个服务进程在会话生存期中会专门为我

        服务,会话与专用服务器之间存在一对一的映射.客户进程会与这个专用服务器直接通信,并有

         这个服务器接收和执行我的sql,并返回结果.

    共享服务器连接:这种方式不会对每个用户的连接创建另外的进程或线程,在共享服务器中,oracle使用一个"共享

                       进程"池为大量用户提供服务.利用共享服务器,不用为1000个数据库会话创建1000个专用服务

                       器(进程或线程),而只需很少的一部分进程或线程,这些进程或线程将由所有会话共享.这样可以

                       让更多的用户与数据库连接.否者很难连接更多用户.

   区别:与数据库连接的用户不会与共享服务器直接通信,因为服务进程是共享的,为共享进程,引入了"调度器"的机制,

          用户与调度机直接通信.而专用服务器,客户进程与专用服务器直接通信。

原文地址:https://www.cnblogs.com/liangjie/p/2095160.html