• 1->Oracle10g体系结构概述


    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的文件。维护数据库的一致性,用于数据库恢复。
  • 相关阅读:
    HTML5 浏览器返回按钮/手机返回按钮事件监听
    Asp.Net Core获取请求信息/获取请求地址
    Asp.Net 获取物理路径
    .Net AppDomain详解(二)
    .Net AppDomain详解(一)
    asp.net core部署到iis中出现 HTTP Error 502.5
    Asp.Net Core 静态文件目录操作
    Asp.Net Core Web相对路径、绝对路径整理
    .Net Core Bitmap位图处理
    ngRx 官方示例分析
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331303.html
Copyright © 2020-2023  润新知