zoukankan      html  css  js  c++  java
  • oracle学习笔记002---oracle的体系结构

    一、oracle术语

          Oracle服务器:oracle server。由oracle实例和oracle数据库组成。

          Oracle实例:oracle instance,是在oracle启动的第一个阶段根据参数文件,生成的一系列后台进程和一块共享内存SGA共同组成。

          Oracle数据库:oracle database,是由oracle所有的物理文件所组成。其中最关键的有:控制文件、数据文件、redo log文件。

       Oracle实例与oracle数据库进行交互,oracle实例对数据库进行各种操作,从而对外提供数据库的存储和检索服务。数据库就像一个仓库,存储了各类货物,而实例就像出入仓库的搬运工,负      责将货物搬出、搬入仓库。

    二、oracle总体结构

         由oracle实例、oracle数据库组成。Oracle实例由后台进程和共享内存组成,所以oracle的结构又包含了进程结构和内存结构。Oracle数据库由物理文件组成,所以oracle结构又包含了存储结构。

    三、oracle进程结构

         Oracle的进程主要有后台进程和server process。后台进程主要对oracle数据库进程进行维护和操作,而server process主要用来处理用户的请求。

         后台进程一般有:DBWn、LGWR、CKPT、SMON、PMON等。

         1)DBWn(database writer数据库写):主要作用是将被修改过的buffer cache按照一定的条件写入物理磁盘。

         2)LGWR(logo writer日志写):主要作用是把logo buffer的中的redo log记录按照一定条件写入联机的redo log文件。

         3)CKPT(cheakpoint检查点进程):主要作用是将检查点位置写入控制文件和数据文件的头部。

         4)SMON(system monitor系统监控进程):主要作用是在数据库启动时,判断实例上次是否正常关闭,如果是非正常关闭,则进程实例恢复。另外,还会合并相连的空间。

         5)PMON(process monitor进程监控):监控server process,如果server process非正常关闭,则PMON负责清理它所占用的各种资源。

    四、oracle的内存结构

       由两大部分组成:SGA、PGA。

       PGA:program global area程序全局区;专门作为当前用户会话的内存区。(私有的,只能被一个进程使用)

       SGA:System global area系统全局区;SGA包括6部分:

        1)共享池shared pool:主要作用是提高SQL语句及PL/SQL语句的执行效率,缓存执行过的SQL语句,执行计划。

        2)数据库缓冲区database buffer cache:主要作用是缓存曾经读取过的数据块,oracl数据库中对数据的所有修改都是在buffer cache中进行的。因为所有的操作都必须先将物理上的数据块读取到buffer cache中,然后才能进行各种操作。Buffer cache是SGA中最大的内存区域。

       3)重做日志缓冲区redo log buffer:缓存生成的redo log记录,日志写后后台进程会将log buffer中的记录写到磁盘中。

       4)大池large pool:可选的内存池,主要作用是分担shared pool的压力。某些情况,比如备份恢复,如果没有分配large pool则会从shared pool中分配内存,这会增加shared pool的负担。

       5)java池java pool:供java程序使用。

       6)流池stream pool:数据库在流工作时使用的内存区域。

    五、oracle的存储结构

        存储结构即物理文件的组成结构。其中控制文件、数据文件、重做日志文件是不可或缺的关键文件。

       1)控制文件control files:包含了数据库物理结构的信息,比如各种文件的存放位置、当前数据库的运行状态等。十分重要,丢失则数据库实例无法启动。

       2)数据文件datafile: 存放数据的文件。

       3)联机重做日志文件online redo log file:存放redo log的文件,维护数据库的一致性,用于数据恢复。

       其他文件:Parameter Files,Password Files等

  • 相关阅读:
    如何创建并运行Java线程
    PHP捕获Fatal error错误与异常处理
    WEB系统启动时加载Log4j的配置文件
    Log4j日志配置
    CharacterEncodingFilter-Spring字符编码过滤器
    Struts2的属性驱动与模型驱动的区别
    Filter之——GZIP全站压缩
    乱码问题总结
    【总结】编写自己的JDBC框架
    四大域总结
  • 原文地址:https://www.cnblogs.com/jinf/p/3613524.html
Copyright © 2011-2022 走看看