最近看网上的oracle体系结构总结太杂太乱,自己根据他们的文档和自己的理解总结了一下
oracle体系结构总结
传统上Oracle体系结构由内存结构、进程结构、存储结构组成。其中,内存结构由SGA、PGA组成;进程结构由用户进程和Oracle进程组成;存储结构由逻辑存储、物理存储组成。 通过数据库的启动过程和一条sql的执行过程可以将oracle的内存结构、进程结构、存储结构串起来。
一、内存结构
(1)SGA(System Global Area):一个包含实例数据和控制信息的共享内存区域
(2)PGA(Program Global Area):一个包含服务器进程和后台进程的数据和控制信息的共享内存区域
1.1系统全局区SGA
系统全局区,是 DB Server 中实例的必要组成部分,由很多小内存区共同构成,各个小内存区存放不同的信息,系统全局区用于暂存可以被所有进程( 包括 server process 以 及background process)共享的信息,对系统的运行性能有好处,SGA 在实例启动的时候自动分配 ,实例关闭时自动释放。
SGA 暂存系统的大量共享数据,对系统有相当的性能影响,所以需要为SGA 选择适当的管理方式,根据所使用的数据库版本不同,SGA 的管理有三种方式:
1)8i:SGA 的大小由所有内存组件大小之和决定,不能直接定义 SGA 大小,对内存组件的大小可后台进行修改,但只能通过直接修改参数文件的内存参数大小,而且修改完数据库必须重起后才能生效,所以这种内存管理方法叫做 SGA 的静态管理。
2)9i:SGA 的大小由初始化参数 SGA_MAX_SIZ E 确定,各个内存组件大小之和不能超过这个参数 。可以直接通过命令进行修改内存组件大小而不用重启,这种叫做 SGA 的动态管理