oracle内存结构的组成部分
oracle的内存结构由两部分组成:sga(system global area),pga(program global area).
SGA:在一个实例启动时分配,是实例的组成部分。
PGA:一个服务进程启动就分配了一个PGA.(多个)。
1.系统全局区(SGA):由一组内存结构组成,是所有用户进程共享的的一块内存区域.其中可以包含一个数据库实例的数据和控制信息。在一个数据库实例中,可以有多个用户进程,这些用户进程可以共享系统全局区中的数据,因次系统全局区,可以称为 共享全局区。总内存大小由参数sga_max_size来决定。
2.程序全局区(Program Global Area.PGA)包含单个用户或服务器数据和控制信息,是Oracle系统分配给一个进程的私有内存区域。其在用户进程连接到Oracle数据库并创建一个会话时,由Oracle自动分配,由参数pga_aggregate_target决定,通过 SHOW PARAMETER语句可以查询该参数信息.
3. 排序区:是由Oracle系统为排序 *** 作所产生的临时数据提供的内从空间。实际上存放Oracle 为排序 *** 作所产生的临时数据的区域有2个(内存排序区和磁盘临时段);当运行排序 *** 作时,Oracle系统会优先使用内存排序区,如果内存空间不够,才使用磁盘临时段,由参数sort_area_size 决定通过 SHOW PARAMETER语句可以查询该参数信息.
依据你计算机的内存大小、是否是32位系统、以及你使用oracle环境。你要注意的是,为oracle分配内存不可以超过1.5G,若服务器物理内存小于2G时,分配比例为60%;大于2G,根据实际情况调整。例如物理内存4G,为oracle分配30%即可(以上是对32位机器的内存说明,64位计算机oracle分配内存没有1.5G限制,可根据实际内存情况分配)。
假如你是自己配制内存,那你按照你的需求合理分配shared pool、 buffor cache、 java pool等大小。
请教Oracle 11G 自动内存管理如何分配内存在11g中oracle引入了自动化内存管理(Automatic Memory Management)概念,仅用两个参数就能完成oracle的内存管理工作。
1 :MEMORY_TARGET:oracle所能使用的最大内存,该参数可以动态调整。
2 :MEMORY_MAX_TARGET:MEMORY_TARGET参数所能动态设定的最大值,不能动态调整,需要重启数据库。
至于具体如何分配
正常看数据库服务器一共有多少内存,是否还有其他系统或程序在跑。
可以分配全部内存的2/3 到 3/4 给oracle ;oracle自己分配 pga 和 sga 及其内部的内存结构。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)