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等

oracle学习笔记002---oracle的体系结构,布布扣,bubuko.com

oracle学习笔记002---oracle的体系结构

上一篇:查询红帽linux/Oracle Linux的发行版本的方法


下一篇:dango+python+mysql数据库同步(把数据库'aa'同步到default数据库中)