zoukankan      html  css  js  c++  java
  • 【转载】oracle 体系架构图

    1. 几个重要的Oracle术语
    要学习Oracle的体系结构,先要搞明白几个重要的术语:Oracle服务器、Oracle实例、Oracle数据库。
    Oracle服务器:即Oracle server,由Oracle实例和Oracle数据库组成。
    Oracle实例:即Oracle instance,是在Oracle启动的第一个阶段根据参数文件,生成的一系列的后台进程和一块共享内存SGA共同组成。
    Oracle数据库:即Oracle database,是由Oracle所有的物理文件所组成。其中最关键的有:控制文件、数据文件、redo log文件等。
    Oracle实例与Oracle数据库进行交互,Oracle实例来对数据库进行各种操作,从而对外提供数据库的存储和检索服务。

    2. Oracle总体结构
    Oracle server由Oracle instance和Oracle database组成。而Oracle instance又由后台进程和共享内存组成,所以Oracle的结构又包含了内存结构进程结构;而Oracle database有物理文件组成,所以Oracle结构也包含了存储结构

    下面分别对Oracle内存结构、Oracle进程结构、Oracle存储结构进行概述,让我们对Oracle有一个对初步的概念。
    3. Oracle内存结构
    总体而言Oracle的内存由两大部分组成:PGA和SGA,其结构如下图所示:


    不管是Server process,还是后台进程,他们都有自己进程私有的内存空间,即PGA;而SGA则为所有后台进程间共享访问使用。
    给Server process分配的PGA,根据其功能有划分为几个具体的部分。后续博客再进行具体探讨。
    SGA在Oracle10g中分为6个部分,如上图所示。下面分别概述其作用:
    1)shared pool(共享池):
    主要作用是提高SQL语句以及PL/SQL语句的执行效率,缓存执行过的SQL语句,执行计划;PL/SQL语句的代码块、执行码等(该部分称为library cache);以及在编译SQL, PL/SQL语句是参照的数据字典信息(该部分称为dictionary cacherow cache)。是SGA中最重要的部分之一。
    2)database buffer cache(数据库缓冲区):
    主要作用是缓存曾经读取过的数据块,Oracle数据库中对数据的所有修改操作都是在buffer cache中进行的。因为所有的操作都必须先将物理文件上的数据块读取到buffer cache中,然后才能进行各种操作。buffer cache是SGA中最大的内存区域,也是SGA中最重要的部分之一。
    3)redo log buffer(重做日志缓冲区):
    缓存生成的redo log记录,日志写后台进程会将log buffer中的记录写到磁盘中。也是SGA中最重要的部分之一。
    4)Large pool(大池):
    可选的内存池,其主要作用是分担shared pool的压力。某些情况,比如备份恢复,如果没有分配Large pool,则会从shared pool中分配内存,这会增加shared pool的负担。
    5)Java pool(Java池):
    用于Java程序使用。
    6)stream pool(流池):
    数据库在流工作是使用的内存区域。
    4. Oracle进程结构
    Oracle的进程主要有后台进程和Server process(其实按照Linux的严格意义来说,Server process也是属于后台进程)。后台进程主要对Oracle数据库进程各种维护和操作,而Server process主要来处理用户的请求:

    用户进程通过监听器来访问Oracle instacne,那么就会触发生成一个Server process进程,来对该用户进程的请求进程处理。后台进程一般有:LGWR, DBWn, ARCn, CKPT, SMON, PMON等等。
    1)DBWn(database writer数据库写):
    主要作用是将被修改过的buffer cache按照一定的条件写入物理磁盘。
    2)LGWR(log writer,日志写):
    主要作用是将log buffer中的redo log记录按照一定的条件写入联机的redo log文件。
    3)CKPT(checkpoint,检查点进程):
    主要作用是将检查点位置(checkpoint position)写入控制文件和数据文件的头部。
    4)SMON(system monitor,系统监控进程):
    主要作用是在数据库启动时,判断实例上次是否正常关闭,如果是非正常关闭,则进程实例恢复。另外,还会合并相连的可以空间。
    5)PMON(process monitor,进程监控):
    监控Server process, 如果Server process非正常关闭,则PMON负责清理它占用的各种资源。
    5. Oracle存储结构
    存储结构即物理文件的组成结构,Oracle涉及的物理文件如下所示:

    图2:

    其中的控制文件、数据文件、重做日志文件是不可或缺的关键文件:
    1)control file(控制文件):
    包含了数据库物理结构的信息,比如各种文件的存放位置,当前数据库的运行状态等。十分重要,丢失则数据库实例不能启动。
    2)datafile(数据文件):
    存放数据的文件。
    3)online redo log file(联机重做日志文件):
    存放redo log的文件。维护数据库的一致性,用于数据库恢复。

  • 相关阅读:
    C语言 sprintf 函数 C语言零基础入门教程
    C语言 printf 函数 C语言零基础入门教程
    C语言 文件读写 fgets 函数 C语言零基础入门教程
    C语言 文件读写 fputs 函数 C语言零基础入门教程
    C语言 fprintf 函数 C语言零基础入门教程
    C语言 文件读写 fgetc 函数 C语言零基础入门教程
    C语言 文件读写 fputc 函数 C语言零基础入门教程
    C语言 strlen 函数 C语言零基础入门教程
    Brad Abrams关于Naming Conventions的演讲中涉及到的生词集解
    适配器模式
  • 原文地址:https://www.cnblogs.com/tango-dg/p/3805439.html
Copyright © 2011-2022 走看看