`

Oracle的内存规划(原创)

 
阅读更多

Oracle的内存分配和使用

Oracle数据库在系统占用的内存分为两个部分:SGA和PGA。如何设置和规划Oracle的内存分配一直以来是一个广为争论的话题。

在Oracle9i之前,PGA的内存使用估算一直比较复杂;从Oracle 9i开始,Oracle的自动PGA管理新特性使得Oracle的内存规划得以简化。

根据Oracle的建议,Oracle最多可以使用80%的物理内存,其余20%保留给操作系统使用,在这80%的内存中,对于OLTP系统,Oracle建议分配20%给PGA使用;对于DSS系统,可以分配50%给PGA使用,再引述一下前文的等式:

·对于OLTP系统,PGA_AGGREGATE_TARGET=(<Total Physical Memory>*80%)*20%;

·对于DSS系统,PGA_AGGREGATE_TARGET=(<Total Physical Memory>*80%)*50%。

进一步归纳一下就是:

SGA+PGA <=Total Physical Memory>*80%

也就是:

SGA_MAX_SIZE+PGA_AGGREGATE_TARGET <= <Total Physical Memory>*80%

现在Oracle Database 11g引入了自动内存管理,这个公式得以进一步简化:

MEMORY_TARGET <= MEMORY_MAX_TARGET <= <Total Physical Memory>*80%

这是一个可以参考的数值,在为Oracle规划内存使用时,我们必须清楚,如果Oracle耗用的内存过高,甚至超过了系统的物理内存,那么系统的性能就会受到严重的影响,当系统执行任务时,如果没有足够的内存,那么系统就会进行分页或交换,以完成当前活动事务。

当系统执行分页时,会将当前没有使用的信息从内存转移到硬盘上,这样就可以为当前需要内存的程序分配内存。如果频繁发生分页,系统性能就会严重降低,从而导致很多程序的执行时间变长。

当系统执行交换时,会将某些进程所分配的不活跃内存页(根据LRU算法)从内存转移到硬盘上,这样另一个活动进程就可以得到所需要的内存。交换基于系统循环时间。如果交换太过频繁,系统甚至会出现宕机。

SGA 的参数设置原则

1、SGA_MAX_SIZE:尽量不要超过物理内存大小,否则将会使用到硬盘上的虚拟内存,反而导致性能低下。如果 SGA_MAX_SIZE 之设定值小于其它 SGA 相关参数设定值的总和,或是小于各相关参数默认值的总和,则 SGA_MAX_SIZE 之设定值无效。

2、shared_pool_size:建议在150M-500M之间。如果系统内存为1G,该值可设为150M-200M;如果为2G,该值设为250M-300M;每增加1G内存,该值增加100M;但该值最大不应超过500M。

3、log_buffer:重做日志缓冲区建议设为2M,太大没有意义。

4、Large pool:用于MTS、并行查询和RMAN。如果使用了MTS或RMAN,large_pool特别有用,它可以降低用户对share pool的争用。如果应用系统不使用MTS,也不使用RMAN,large_pool_size的大小可设为1M。否则设为16MB。

5、Java pool:Oracle8I以后,oracle数据库内置了对java的支持,如果数据库安装时选择了JServer组件,则这个值可以设置为20M-30M之间。可以查询v$option动态视图,如果java那一项值为true,则表示安装了JServer,为false,表示未安装。如果应用系统不使用PORTAL,APPS,也不使用RMAN,Java pool值的大小可设为1M。如果系统需要安装补丁,建议先把Java pool值的大小临时增加到50-150M。

以上参数的设定值均为SGA在内存自动管理下中各个pool的最小值,即无论SGA的内存如何分配,也不会低于该值,单位都byte

 

参考至:http://vb118.blog.163.com/blog/static/173933100201142531527355/

                http://www.dbtan.com/2009/11/oracle-memory-allocation-and-use.html

本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com

0
1
分享到:
评论

相关推荐

    oracle11 RHEL5 安装官方中文手册(原创)

    Oracle 11g Release 1 (11.1) 是一款企业级的数据库管理系统,用于在Linux x86平台...总的来说,Oracle 11g在RHEL5上的安装过程是一个涉及多个步骤的系统工程,需要仔细规划和配置,以确保数据库的稳定运行和高效性能。

    原创文档详细说明ORACLE10G参数文件PFILE与SPFILE

    但实际启动数据库后,SGA总大小为176M,这是因为Oracle还会预留一部分内存给其他非手动配置的SGA组件,如重做日志缓冲区。 为了验证SGA的实际分配情况,可以通过查询`v$sgainfo`视图来查看各组件的大小。`v$sgainfo...

    [原创]Guide: Installing Oracle Enterprise Manager Grid Control 10.2.0.5 on Oracle Database 11gR2 and RHEL Linux 5.4

    - **硬件**: 足够的CPU、内存和存储空间 - **网络**: 正确配置的网络接口,如eth0和eth1 - **Oracle用户**: 已经创建并具备正确权限的用户账户 #### 安装前的系统配置 根据提供的部分内容,可以看到系统的基本配置...

    ORACLE DBA工作笔记 运维数据迁移与性能调优

    2. 性能调优的策略和方法,包括监控数据库性能指标,分析SQL语句的执行计划,调整数据库的内存参数和配置文件等。 3. Oracle数据库的架构和存储结构,例如表空间、段、数据块等概念,对这些基础概念的深入理解对于...

    linux RedHat5.3下安装Oracle10R2手册[原创]

    总的来说,安装Oracle 10R2在Red Hat 5.3上是一个复杂的过程,需要仔细规划和执行。通过详细记录每个步骤,可以有效地学习和掌握Oracle在Linux环境中的部署技巧,这对于数据库管理员和IT专业人员来说是一项重要的...

    [原创]在Solaris 10 x86_64平台上安装Oracle 11gR2

    - **内存大小**:至少需要4GB的物理内存(如示例中显示的4096MB)。 - **交换空间**:足够的交换空间对运行数据库至关重要。示例中的系统有32GB的交换空间,这通常足够满足大部分需求。 - **处理器架构**:64位AMD64...

    【SQL Server与Oracle区别.(经典、原创)】

    - 内存结构:Oracle的SGA(System Global Area)包含多个内存结构,而SQL Server有缓冲池、计划缓存等独立的内存组件。 4.7 价格: SQL Server的定价策略相对简单,有多种版本可供选择,如Express版免费,企业版...

    杨廷琨_从自动化到自治数据库 - 从 Oracle 12c 到 18c 的新进展

    杨廷琨作为资深的Oracle专家,拥有17年的一线DBA经验和丰富的知识储备,以及大量原创技术文章。他对Oracle数据库性能优化和管理有着深入的研究,对于广大的Oracle DBA来说,关注杨廷琨,关注Oracle技术的最新进展,...

    Oracle由10.2.0.1升级到10.2.0.5

    接下来,执行`startup upgrade`指令,这会启动Oracle实例进入升级模式,系统将显示关于总系统全局区、固定大小区域、可变大小区域、数据库缓冲区和重做日志缓冲区等关键内存参数的信息。 ### 检查数据库状态 在...

    Oracle大师Thomas Kyte的好书.pdf

    1. Oracle数据库架构:本书详细讨论了Oracle数据库的核心架构设计,包括内存结构、进程模型以及存储组织方式。对Oracle数据库的架构深入理解是进行高效数据库设计、优化和故障排查的前提。 2. Oracle 9i和10g的编程...

    oracle入门ppt

    这份PPT文档由作者原创,旨在帮助初学者轻松入门Oracle世界。 在Oracle培训教程中,可能会包含以下几个关键知识点: 1. **Oracle概述**:介绍Oracle公司的历史、Oracle数据库的版本发展以及其在业界的地位。解释...

    Oracle Solaris 9 - man pages section 9: DDI and DKI Kernel Funct

    文档的出版者 Sun Microsystems(已被 Oracle 收购)是 Solaris 操作系统的原创开发者,其版权信息表明该文档受到严格的版权保护,并且可能包含第三方软件和技术,如字体技术,这些都遵循特定的许可证条款。...

    【原创】20180510_RAC节点重启原因分析.zip

    在Oracle数据库系统中,Real Application Clusters (RAC) 是一种高级集群技术,它允许多台服务器共享同一数据库,提供高可用性和性能。本话题主要探讨2018年5月10日发生的RAC节点重启事件的原因分析,旨在帮助数据库...

    原创技术:史上最灵活,强大的分页框架

    对于服务器而言,分页减少了每次请求的数据量,从而降低了内存占用和响应时间。 现在,让我们聚焦于这个被称作“史上最灵活,强大”的分页框架。通常,一个优秀的分页框架应具备以下特性: 1. **灵活性**:框架应...

    Win7下编译openjdk8源代码 完整版本 原创

    在实际编译过程中,还可能需要考虑硬件配置,如至少需要双核CPU、至少2GB的内存以及足够的硬盘空间以存储源代码和编译后的产品。 编译OpenJDK的源代码是一个复杂的过程,需要对各个组件的作用有所理解,同时还要对...

    从性能监控到性能管理—Ignite.pdf

    - 杨廷琨参与编写了多部关于Oracle数据库的著作,如《Oracle数据库性能优化》、《Oracle DBA手记》等,并且在个人BLOG上积累了2500篇原创技术文章。 - 作为一名拥有十三年一线DBA(数据库管理员)经验的专业人士,...

    mysql 数据库基础原创

    - **1.1 保存到内存** - 特点:快速读写数据,但数据易失性高,程序关闭后数据丢失。 - **1.2 保存到文件** - 特点:数据可持久化存储,但频繁的 I/O 操作导致读写效率较低。 - **1.3 保存到数据库软件** - ...

    [原创]Informatica PowerCenter 8.1安装配置手册(杨晓东2006-08-24)

    - **硬件需求:** 至少需要2GB内存,推荐4GB或以上;硬盘空间至少需要10GB,推荐20GB以上。 **1.2 数据库配置要求** - **支持的数据库:** Oracle、Microsoft SQL Server、IBM DB2等主流关系型数据库管理系统。 - **...

Global site tag (gtag.js) - Google Analytics