Oracle体系结构的认识

  Oracle体系结构
  可以区分为两个主要部分:Oracle实例和Oracle数据库文件

  一、Oracle实例 (Oracle Instance)数据库引擎主要由两个部件组成。系统全局区(SGA)和后台处理程序。

  1、 SGA

  用来存储每个用户所需存取的数据,以及Oracle运行时所必备的系统信息。分为:

  块缓冲区高速缓存(Database Buffer Cache ):用来存放从数据文件的读取的数据块副本,或用户曾经处理过的数据。可以有效的减少存取数据时的磁盘读取操作提高数据存取的效率,所有同时上线的用户可以共享此缓冲区。

  重做日志缓冲区(Redo Log Buffer):是记录数据库内所有数据修改区,所有修改都按顺序记录在该缓冲区并在适当的时候由LGWR进程(window操作系统称线程)将它写入磁盘。重做日志缓冲区的作用同样也是提高数据库操作的速度。

  共享池(Shared Pool):共享池是SGA中最关键的内存片段。其又分为:SQL语句缓冲区和数据字典缓冲区。作用同样是为了提高数据库操作的效率。

  2、后台处理程序

  数据写进程(DBWR):负责将Database Buffer Cache 内修改过的数据写入到硬盘内的数据文件。

  日志写进程(LGWR):将重做日志区中的更改数据写入重做日志文件。

  系统监控(SMON):当数据库在不正常被关闭的情况下由SMON进行必要的数据库修复动作。

  进程监控(PMON):负责在一个Oracle进程失败时清理资源。

  检查点进程(CKPT):相当于设置系统还原点。

  归档进程(ARCH):在每次日志切换时把已满的日志进行备份或归档。

  二、数据库文件

  由操作系统内的各种文件组成。通过后台进程与Qracle实例相互沟通。

  构成要素就是操作系统内各种文件,最重要的有数据文件、重做日志文件、控制文件、参数文件等。

  数据文件(Data File):每个Oracle数据库都包含数量不等的物理数据文件。数据库内所有的逻辑数据库对象都是存放在数据文件中的。

  重做日志文件(Redo Log File):负责记录所有数据库内的任何数据处理情况。Oracle可以通过日志文件内的相关记录将数据复原到最完整的状态。

  控制文件(Control File):用来记录与描述数据库的实体结构。当数据库被激活时,Oracle会在实例激活后立刻读取控制文件的内容,所有数据库实体组成文件的所在信息收集完毕数据库才会被开启。

  参数文件(Initialization Parameter File):在激活Oracle实例之前,Oracle将依照参数文件中的参数来设置配置内存空间等。