以oracle9i为例,可以将oracle体系结构大致分为两个部分:
1.oracle 实例(oracle instant)
2 数据库文件
oracle9 i instant 是指数据库服务器的内存以及相关的处理程序
下面将对这两个部分进行进一步说明:
--------------------------------------------------------------------------------
oracle9i instant 又包含系统全局区(SystemGlobalArea,略为sga) 和
后台进程
--------------------------------------------------------------------------------
sga:
是由oracle9i在启动时,在内存中划分的一个固定区域,用来存储每个用户所需存取的数据,以及oracle9i运行时所需的必要信息.
sga可以大致分为块缓冲区高速缓存(database buffer cache),重做日志缓冲区(redo log buffer),共享池(share pool) 以及大池(large pool) 等,下面对重要的内存区域作进一步描述:
database buffer cache: 用于存放读取自数据文件的副本,或者用户曾经处理过的数据. 优点:减少读取数据库文件的io操作,提高系统运行速度 缺点:一致占用内存.
redo log buffer: 按顺序记录用户对数据库的修改 优缺点与database buffer cache 相同.
hare pool: 其中又包含两个内存缓冲区: sql语句缓冲(Library Cache)和数据字典 缓冲 Data Dictionary Cache .
Library Cache:用于保存系统刚分析过的sql语句. 优点:减少系统对sql语句分析(parse)的次数,大大地提高了系统对sql语句的执行速度.
Data dictionary Cache 用于保存oracle 数据字典.
后台进程:
数据写进程(dawr):负责将database buffer cache中改动过的数据块写到硬盘的数据文件
日志写进程(lgwr):将redo log buffer 中的改动写入重做日志文件.
系统监控(smon):若oracle被不正常关闭,下次激活oracle时将会调用此进程进行必要的修复
进程监控(pmon) :负责在oracle启动失败时进行资源清理
检查点进程(ckpt):负责更新控制文件和数据文件中的数据库状态信息.
归档进程(arch):在日志切换时把已满的日志组进行备份或归档
------------------------------------------------------------------------------
数据库文件
-------------------------------------------------------------------------------
是指从物理的角度来看oracle的物理构成. 包含许多文件. 重要的有:
数据文件 重做日志文件 参数文件 控制文件 口令文件 归档文件