Oracle数据库的体系结构可以分为:实例和数据库。
实例又包括了:内存和进程。
内存结构区主要由共享内存区的系统全局区SGA(System Global Area)和非共享内存区的程序全局区PGA(Program Global Area)组成。
SGA包括几个重要的区域:共享池,有两类缓冲区,分别是库缓存(包括共享SQL区和私有SQL区)和数据词典缓存(如表结构)。日志缓冲区,缓冲增删改时所写的日志,主要是为了提供事务。数据缓冲区,缓冲经常查询的数据,提高数据的存取效率。
进程主要包括:数据写进程(DBWR)负责将DataBase Buffer Cache内改动过的数据块写入到硬盘内的数据文件;日志写进程(LGWR),将重做日志缓冲区中的更改写入重做日志文件;系统监控(SMON),如果是由于断电导致Oracle数据库非正常关闭,下一次激活数据库时将由SMON进行必要的数据库修复工作;进程监控(PMON)负责在一个Oracle进程失败时清理资源;检查点进程(CKPT),负责在缓冲区中高速缓存中的更改永久地记录在数据库中的时候,更新控制文件和数据文件中的数据库状态信息;归档进程,在每次日志切换时把已满的日志进行备份或归档。
数据库又分为物理结构和逻辑结构。
物理结构:就是指存放在硬盘上的各种文件。
逻辑结构:块,是Oracle数据库中最小的存储单元;区,是Oracle数据库中最小分配单元,由一连串的块组成;段,是按照不同的数据类型划分出来的区域,以用来存放不同的数据;表空间,一个软件系统的数据通常保存在一个独立的表空间中,类似于Sql Server中的数据库,需要通过用户名才能访问。