
第1章 Oracle体系结构
作为一个关系数据库产品,Oracle占据了关系数据库市场的最大份额。与同类产品(SQL SERVER、SYBASE ASE、MySQL等)比较,Oracle提供了一套独有的机制,确保用户快速、安全地访问数据库,同时确保数据库安全、稳定地运行。在用户的评价中,Oracle具有性能稳定、运行高效等特点。
Oracle的特点是显而易见的,然而它的体系结构非常复杂。作为一名数据库管理员,为了使数据库高效、安全地运行,并且在出现故障时能够快速进行恢复等,了解Oracle的体系结构是必要的。
数据库中的数据是以文件的形式存储在磁盘上的,数据库就是指这些存储。数据库的数据文件是一个静态的概念,对数据库的访问则是一个动态的过程,必须通过数据库服务器来进行。数据库服务器不仅包括数据文件,还包括一组用来访问数据文件的内存结构和后台进程,这些内存结构和后台进程构成Oracle实例。换句话说,实例是区分不同数据库的唯一标识,是外部访问该数据库的入口及接口,它凌驾于整套数据库之上。
实例是Oracle体系结构中最重要的概念。除此之外,读者还应该了解数据在逻辑上和物理上的组织形式。
Oracle体系结构如图1-1所示。

图1-1
Instance(实例)包含SGA(系统全局区)和Background Processes(后台进程)两部分。SGA(系统全局区)则由Shared Pool(共享池)、DataBase Buffer Cache(数据库高速缓冲区)、Redo Buffer(日志缓冲区)以及Java Pool(Java池)等构成。其中,Shared Pool(共享池)与Server(服务器进程,主要是PGA,程序全局区)交互,而Server(服务器进程,主要是PGA,程序全局区)又与User(用户进程)交互。Background Processes(后台进程)则由DBW0(数据库写进程)、SMON(系统监视进程)、PMON(监控和管理进程)、CKPT(检查点进程)、LGWR(日志写进程)以及ARC0(归档进程)等进程构成。其中,DBW0(数据库写进程)负责将内存数据写入Datafile(数据库物理数据文件);CKPT(检查点进程)与Control File(控制文件)交互;LGWR(日志写进程)负责将内存数据写入Redo Log File(重做日志文件);ARC0(归档进程)负责将Redo Log File(重做日志文件)归档到Archive Log File(归档日志文件)。
除Oracle实例外,Oracle数据库还包含Parameter File(参数文件)、Password File(口令文件)、Alert File(警报文件)、Trace File(跟踪文件)以及External Tables(外部表)等辅助管理。
接下来详细介绍Oracle的体系结构。