ORACLE11G内存管理参数
今天,对ORACLE11G的几个内存参数看了一下,记录如下,大家可以参考:
1、首先,在ORACLE11G的INIT.ORA里,有“__”开头的参数,也就是以两个下划线开头的参数,这种参数应该是系统自动调整的结果,第一次启动系统后,系统对这些参数进行了调整,然后,把调整后的结果记录在了参数文件里,我想可能在SPFILE里也有的。而以一个下划线开头的参数,我们大家都知道,是隐含参数,就是在ORACLE的公开的文档里没说明的,也就是ORACLE不主张用户自己调整的参数。
2、现在开始讨论一下ORACLE11G里的内存参数:MEMORY_MAX_TARGET,MEMORY_TARGET,SGA_MAX_SIZE,SGA_TARGET,PGA_AGGREGATE_TARGET,WORK_SIZE_POLICY,DB_BLOCK_BUFFERS,DB_CACHE_SIZE等。
(1)MEMORY_MAX_TARGER:确定DBA能确定的MEMORY_TARGET的最大值,K|M|G;
(2)MEMORY_TARGET:确定ORACLE系统范围可用的内存大小,数据库系统调整SGA和PGA的大小来适应MEMORY_TARGET,在初始化参数里,如果你确定了MEMORY_TARGET的大小,而没确定MEMORY_MAX_TARGET,那么系统自动确定MEMORY_MAX_TARGET为MEMORY_TARGET的大小,反之,系统确定MEMORY_TARGET为0,系统启动后再动态调整MEMORY_TARGET的大小,但不会超过MEMORY_MAX_TARGET,K|M|G。
(3)SGA_MAX_SIZE:确定SGA在整个实例生命期的最大值,K|M|G。
(4)SGA_TARGET:确定SGA各组件的总大小,如果SGA_TARGET被确定,那么下面各SGA组件ORACLE自动调整:DB_CACHE_SIZE,SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE,STREAMS_POOL_SIZE;当你设置这些POOL为非零值时,那么,ORACLE的自动共享内存管理会把这些值当做这些POOL的最低值。而下面这些POOL需要手工调整,不受SGA_TARGET的影响:
Log buffer;Other buffer caches, such as KEEP, RECYCLE, and other block sizes;Fixed SGA and other internal allocations
(5)PGA_AGGREGATE_TARGET:确定属于ORACLE实例的所有服务器进程的、可用的、总的PGA的目标大小,确定这个参数的值为非零,会自动设置WORK_SIZE_POLICY为AUTO,这样,系统会自动调整每个SQL工作区大小,来适应该PGA_AGGREGATE_TARGET大小,如果你没确定它的值,那么系统缺省该值为SGA的20%和10M中最大的值;当你设置这个值为0时,系统自动设置WORK_SIZE_POLICY为MANUAL,这时,系统会启用系统的*_AREA_SIZE,K|M|G。
(6)WORK_SIZE_POLICY:确定WORK AREA调整模式:AUTO,MANUAL。
(7)DB_BLOCK_BUFFERS:该参数和DB_CACHE_SIZE不能一起使用的,同时,也不能和SGA_TARGET参数一起使用,因为该参数是9i以前配置DATA BUFFERS的参数,留着它可能是为了向后兼容,一般不使用它了,使用它时,不能使用DB_CACHE_SIZE和SGA_TARGET参数,该参数不能设置大小,只能设置成块数,而不能设置成K|M|G。
(8)DB_CACHE_SIZE:设置数据库缓冲的大小,当SGA_TARGET设置为非零值时,那么该参数设置数据缓冲的最小值;
(9)11g新特性,从内存参数生成SPFILE文件:
以前只能:CREATE SPFILE FROM PFILE;
现在可以:CREATE SPFILE FROM MEMORY;
1、首先,在ORACLE11G的INIT.ORA里,有“__”开头的参数,也就是以两个下划线开头的参数,这种参数应该是系统自动调整的结果,第一次启动系统后,系统对这些参数进行了调整,然后,把调整后的结果记录在了参数文件里,我想可能在SPFILE里也有的。而以一个下划线开头的参数,我们大家都知道,是隐含参数,就是在ORACLE的公开的文档里没说明的,也就是ORACLE不主张用户自己调整的参数。
2、现在开始讨论一下ORACLE11G里的内存参数:MEMORY_MAX_TARGET,MEMORY_TARGET,SGA_MAX_SIZE,SGA_TARGET,PGA_AGGREGATE_TARGET,WORK_SIZE_POLICY,DB_BLOCK_BUFFERS,DB_CACHE_SIZE等。
(1)MEMORY_MAX_TARGER:确定DBA能确定的MEMORY_TARGET的最大值,K|M|G;
(2)MEMORY_TARGET:确定ORACLE系统范围可用的内存大小,数据库系统调整SGA和PGA的大小来适应MEMORY_TARGET,在初始化参数里,如果你确定了MEMORY_TARGET的大小,而没确定MEMORY_MAX_TARGET,那么系统自动确定MEMORY_MAX_TARGET为MEMORY_TARGET的大小,反之,系统确定MEMORY_TARGET为0,系统启动后再动态调整MEMORY_TARGET的大小,但不会超过MEMORY_MAX_TARGET,K|M|G。
(3)SGA_MAX_SIZE:确定SGA在整个实例生命期的最大值,K|M|G。
(4)SGA_TARGET:确定SGA各组件的总大小,如果SGA_TARGET被确定,那么下面各SGA组件ORACLE自动调整:DB_CACHE_SIZE,SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE,STREAMS_POOL_SIZE;当你设置这些POOL为非零值时,那么,ORACLE的自动共享内存管理会把这些值当做这些POOL的最低值。而下面这些POOL需要手工调整,不受SGA_TARGET的影响:
Log buffer;Other buffer caches, such as KEEP, RECYCLE, and other block sizes;Fixed SGA and other internal allocations
(5)PGA_AGGREGATE_TARGET:确定属于ORACLE实例的所有服务器进程的、可用的、总的PGA的目标大小,确定这个参数的值为非零,会自动设置WORK_SIZE_POLICY为AUTO,这样,系统会自动调整每个SQL工作区大小,来适应该PGA_AGGREGATE_TARGET大小,如果你没确定它的值,那么系统缺省该值为SGA的20%和10M中最大的值;当你设置这个值为0时,系统自动设置WORK_SIZE_POLICY为MANUAL,这时,系统会启用系统的*_AREA_SIZE,K|M|G。
(6)WORK_SIZE_POLICY:确定WORK AREA调整模式:AUTO,MANUAL。
(7)DB_BLOCK_BUFFERS:该参数和DB_CACHE_SIZE不能一起使用的,同时,也不能和SGA_TARGET参数一起使用,因为该参数是9i以前配置DATA BUFFERS的参数,留着它可能是为了向后兼容,一般不使用它了,使用它时,不能使用DB_CACHE_SIZE和SGA_TARGET参数,该参数不能设置大小,只能设置成块数,而不能设置成K|M|G。
(8)DB_CACHE_SIZE:设置数据库缓冲的大小,当SGA_TARGET设置为非零值时,那么该参数设置数据缓冲的最小值;
(9)11g新特性,从内存参数生成SPFILE文件:
以前只能:CREATE SPFILE FROM PFILE;
现在可以:CREATE SPFILE FROM MEMORY;
仅供大家参考,如需转载,请注明出处。
Oracle & Mysql & Postgresql & MSSQL 调优 & 优化
----------------------------------------------------------
《高性能SQL调优精要与案例解析》
blog1:http://www.cnblogs.com/lhdz_bj
blog2:http://blog.itpub.net/8484829
blog3:http://blog.csdn.net/tuning_optmization
----------------------------------------------------------
《高性能SQL调优精要与案例解析》
blog1:http://www.cnblogs.com/lhdz_bj
blog2:http://blog.itpub.net/8484829
blog3:http://blog.csdn.net/tuning_optmization