- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Oracle 内存分配与调整.doc
Oracle 内存分配与调整
一、 前言
对于oracle 的内存的管理,截止到9iR2, 都是相当重要的环节, 管理不善,将可能给数据库带来严重的性能问题。下面我们将一步一步就内存管理的各个方面进行探讨。
二、 概述
oracle 的内存可以按照共享和私有的角度分为系统全局区和进程全局区,也就是SGA 和PGA(process global area or private global area) 。对于SGA 区域内的内存来说,是共享的全局的,在UNIX 上,必须为oracle 设置共享内存段(可以是一个或者多个),因为oracle 在UNIX 上是多进程;而在WINDOWS 上oracle 是单进程(多个线程),所以不用设置共享内存段。PGA 是属于进程(线程)私有的区域。在oracle 使用共享服务器模式下(MTS),PGA 中的一部分,也就是UGA 会被放入共享内存(SGA)的large_pool_size 中。对于SGA 部分,我们通过sqlplus 中查询可以看到:
SQL select * from v$sga;
NAME VALUE
Fixed Size 454032
Variable Size 109051904
Database Buffers 385875968
Redo Buffers 667648
其中:
Fixed Size:
oracle 的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面存储了SGA 各部分组件的信息,可以看作引导建立SGA 的区域。Variable Size:
包含了shared_pool_size 、java_pool_size 、large_pool_size 等内存设置
Database Buffers:
指数据缓冲区,在8i 中包含db_block_buffer*db_block_size 、buffer_pool_keep 、buffer_pool_recycle 三部分内存。在9i 中包含db_cache_size 、db_keep_cache_size 、db_recycle_cache_size 、db_nk_cache_size 。
Redo Buffers:
指日志缓冲区,log_buffer 。在这里要额外说明一点的是,对于v$parameter 、v$sgastat 、v$sga 查询值可能不一样。v$parameter 里面的值,是指用户在初始化参数文件里面设置的值,v$sgastat 是oracle 实际分配的日志缓冲区大小( 因为缓冲区的分配值实际上是离散的,也不是以block 为最小单位进行分配的),v$sga 里面查询的值, 是在oracle 分配了日志缓冲区后,为了保护日志缓冲区,设置了一些保护页,通常我们会发现保护页大小大约是11k(不同环境可能不一样)。参考如下内容
SQL select substr(name,1,10) name,substr(value,1,10) value
2 from v$parameter where name = log_buffer;
NAME VALUE
log_buffer 524288
SQL select * from v$sgastat ;
POOL NAME BYTES
fixed_sga 454032
buffer_cache 385875968
log_buffer 656384
SQL select * from v$sga;
NAME VALUE
Fixed Size 454032
Variable Size 109051904
Database Buffers 385875968
Redo Buffers 667648
关于各部分内存的作用,参考oracle 体系结构,在此不再叙述。
l 、SGA 的大小
那么我们现在来考察内存参数的设置。实际上, 对于特定的环境,总是存在着不同的最优设置的,没有任何一种普遍适用的最优方案。但为什么在这里我们还要来谈设置这个话题呢,那仅仅是出于一个目的,避免过度的犯错误。事实上, 在任何一个生产系统正式投入使用之前,我们不拥有任何系统运行信息让我们去调整,这样就只有两种可能,一是根据文档推荐设置,另外一种就是根据经验设置。相对来说,根据经验的设置比根据文档的设置要可靠一些。尤其是那些24*7 的系统,我们更要减少错误的发生。那么我们尝试去了解不同的系统不同的应用的具体设置情况,从而提供一个参照信息给大家。为了得出一个参照设置,我们就必须假定一个参照环境。以下所有设置我们基于这样一个假定,那就是硬件服务器上只考虑存在操作系统和数据库,在这个单一的环境中,我们来
考虑内存的设置。在设置参
文档评论(0)