欢迎来到天天文库
浏览记录
ID:14416905
大小:167.84 KB
页数:69页
时间:2018-07-28
《oracle 11g优化指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Oracle内存全面解析Oracle的内存配置与oracle性能息息相关。而且关于内存的错误(如4030、4031错误)都是十分令人头疼的问题。可以说,关于内存的配置,是最影响Oracle性能的配置。内存还直接影响到其他两个重要资源的消耗:CPU和IO首先,看看Oracle内存存储的主要内容是什么:程序代码(PLSQL、Java);关于已经连接的会话的信息,包括当前所有活动和非活动会话;程序运行时必须的相关信息,例如查询计划;Oracle进程之间共享的信息和相互交流的信息,例如锁;那些被永久存储在外围存储介质上,被cache在内存中的数据(如redolog条目,数据块)。此外,需要记住的一点
2、是,Oracle的内存是与实例对应的。也就是说,一个实例就有一个独立的内存结构先从Oracle内存的组成架构介绍1. Oracle的内存架构组成Oracle的内存,从总体上讲,可以分为两大块:共享部分(主要是SGA)和进程独享部分(主要是PGA和UGA)。而这两部分内存里面,根据功能不同,还分为不同内存池(Pool)和内存区(Area)。下面就是Oracle内存构成框架图: SGA SharePool BufferCache RedoLogBuffer JavaPool StreamPool(10g) LargePool PGA*nBitmapmergeareaSortAreaHashA
3、rea UGA*nCUA*n下面分别介绍这两块内存区1.1. SGA(SystemGlobalArea)SGA(SystemGlobalArea系统全局区域)是一组包含一个Oracle实例的数据和控制信息的共享内存结构。Oracle进程和一个SGA就构成了一个Oracle实例。当实例启动时,Oracle会自动从系统中分配内存给SGA,而实例关闭时,操作系统会回收这些内存。下面就是当实例启动后,显示已经分配了SGA:SQL>startupORACLEinstancestarted.TotalSystemGlobalArea 289406976bytesFixedSize
4、 1248576bytesVariableSize 117441216bytesDatabaseBuffers 163577856bytesRedoBuffers 7139328bytesDatabasemounted.Databaseopened.SQL>SGA区是可读写的。所有登录到实例的用户都能读取SGA中的信息,而在oracle做执行操作时,服务进程会将修改的信息写入SGA区SGA主要包括了以下的数据结构:数据缓冲(BufferCache)重做日志缓冲(RedoLogBuffer)共享池(S
5、haredPool)Java池(JavaPool)大池(LargePool)流池(StreamsPool---10g以后才有)数据字典缓存(DataDictionaryCache)其他信息(如数据库和实例的状态信息)最后的两种内存信息会被实例的后台进程所访问,它们在实例启动后就固定在SGA中了,而且不会改变,所以这部分又称为固定SGA(FixedSGA)。这部分区域的大小一般小于100K此外,用于并非进程控制的锁(latch)的信息也包含在SGA区中SharedPool、JavaPool、LargePool和StreamsPool这几块内存区的大小是相应系统参数设置而改变的,所以有通称为可变
6、SGA(VariableSGA)1.1.1. SGA的重要参数和特性在设置SGA时,有一些很重要的参数,它们设置正确与否,会直接影响到系统的整体性能。下面一一介绍他们:· SGA_MAX_SIZESGA区包括了各种缓冲区和内存池,而大部分都可以通过特定的参数来指定他们的大小。当实例启动后,各个内存区只分配实例所需要的最小大小,在随后的运行过程中,再根据需要扩展他们的大小,而他们的总和大小受到了SGA_MAX_SIZE的限制当试图增加一个内存的大小,并且如果这个值导致所有内存区大小总和大于SGA_MAX_SIZE时,oracle会提示错误,不允许修改当然,如果在设置参数时,指定区
7、域为spfile时(包括修改SGA_MAX_SIZE本身),是不会受到这个限制的。这样就可能出现这样的情况,在spfile中,SGA各个内存区设置大小总和大于SGA_MAX_SIZE。这时,oracle会如下处理:当实例再次启动时,如果发现SGA各个内存总和大于SGA_MAX_SIZE,它会将SGA_MAX_SIZE的值修改为SGA各个内存区总和的值SGA所分配的是虚拟内存,但是,在我们配置SGA时,一定要使
此文档下载收益归作者所有