Oracle体系结构:内存结构和进程结构体系结构:内存结构和进程结构-体系架构体系架构
(一)内存结构和进程结构 Oracle数据库的总体结构如下图:
1:Oracle实例(Instance)
在一个服务器中,每一个运行的Oracle数据库都与一个数据库实例相联系,实例是我们访问数据库的手段。
实例在操作系统中用ORACLE_SID来标识,在Oracle中用参数INSTANCE_NAME来标识,它们两个的值是相同的。数据库启
动时,系统首先在服务器内存中分配系统全局区(SGA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统
进程,即组成了Oracle的进程结构,内存区域和后台进程合称为一个Oracle实例。
数据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个Oracle数据库与一个实例相对应;在并行的数据库系统中,
一个数据库会对应多个实例,同一时间用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库
正常运行。在任何情况下,每个实例都只可以对应一个数据库。
2:Oracle 10g动态内存管理
内存是影响数据库性能的重要因素,Oracle8i使用静态内存管理,Oracle 10g使用动态内存管理。所谓静态内存管理,就是在
数据库系统中,无论是否有用户连接,也无论并发用量大小,只要数据库服务在运行,就会分配固定大小的内存;动态内存管
理允许在数据库服务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数据块时使用小内存,读取标准内存块时
使用标准内存设置。
按照系统对内存使用方法的不同,Oracle数据库的内存可以分为以下几个部分:
系统全局区:SGA(System Global Area)
程序全局区:PGA(Programe Global Area)
排序池:(Sort Area)
大池:(Large Pool)
Java池:(Java Pool)
2-1:系统全局区SGA(System Global Area)
SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果多个用户连接到同一个数据库