本文从网上找了一张介绍oracle体系结构图,用于总体的描述oracle的体系结构
1 oracle数据库主要有数据文件database和数据库实例instance组成。用户通过用户进程链接到server process。在数据库启动的时候,需要依赖于参数文件parameter file,如果我们的数据库是归档模式的话,oracle数据库会把 redo log files 写入到 archived log files,避免redo log files 被覆盖
2 instance 介绍
数据库启动的时候,会读取参数文件spfile,并且根据参数文件分配一个System globle area(SGA),每个oracle数据会话连接都共享的内存,对于SGA又可以分为shared pool的共享池,存放一些数据字典缓存和通用的函数库。对于SGA中,比较重要的有 database buffer cache,redo log buffer, java pool, large pool等
对于PGA和SGA的分配:PGA:每当有一个tcp连接oracle的话就会产生一个session会话,分配一个PGA。对于SGA:是所有会话session共享的内存,当oracle数据库启动就会初始化分配一个共享内存区域,启动以后这个SGA的大小不会改变
2 database数据库文件: data files,control files,Redo Log files。对于数据文件data files 主要是用于存放业务数据的文件,对于control files 存放的是控制文件,Redo log files存放的是对数据库操作的记录,如果数据库发生异常关闭,则启动的时候会读取Redo log files对数据库进行修复
3 oracle数据库的database和instance之间是通过一系列的后台进行进行通信。不同的操作有不同的后台进程进行处理