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
相关推荐
Oracle 11g Release 1 (11.1) 是一款企业级的数据库管理系统,用于在Linux x86平台...总的来说,Oracle 11g在RHEL5上的安装过程是一个涉及多个步骤的系统工程,需要仔细规划和配置,以确保数据库的稳定运行和高效性能。
但实际启动数据库后,SGA总大小为176M,这是因为Oracle还会预留一部分内存给其他非手动配置的SGA组件,如重做日志缓冲区。 为了验证SGA的实际分配情况,可以通过查询`v$sgainfo`视图来查看各组件的大小。`v$sgainfo...
实例恢复处理的是由于系统崩溃导致的内存中的数据丢失,而介质恢复则针对数据文件、控制文件或重做日志文件的物理损坏。实例恢复通常在数据库启动时自动完成,而介质恢复则需要使用RMAN或手工操作来修复损坏的文件。...
- **硬件**: 足够的CPU、内存和存储空间 - **网络**: 正确配置的网络接口,如eth0和eth1 - **Oracle用户**: 已经创建并具备正确权限的用户账户 #### 安装前的系统配置 根据提供的部分内容,可以看到系统的基本配置...
2. 性能调优的策略和方法,包括监控数据库性能指标,分析SQL语句的执行计划,调整数据库的内存参数和配置文件等。 3. Oracle数据库的架构和存储结构,例如表空间、段、数据块等概念,对这些基础概念的深入理解对于...
总的来说,安装Oracle 10R2在Red Hat 5.3上是一个复杂的过程,需要仔细规划和执行。通过详细记录每个步骤,可以有效地学习和掌握Oracle在Linux环境中的部署技巧,这对于数据库管理员和IT专业人员来说是一项重要的...
- **内存大小**:至少需要4GB的物理内存(如示例中显示的4096MB)。 - **交换空间**:足够的交换空间对运行数据库至关重要。示例中的系统有32GB的交换空间,这通常足够满足大部分需求。 - **处理器架构**:64位AMD64...
- 内存结构:Oracle的SGA(System Global Area)包含多个内存结构,而SQL Server有缓冲池、计划缓存等独立的内存组件。 4.7 价格: SQL Server的定价策略相对简单,有多种版本可供选择,如Express版免费,企业版...
杨廷琨作为资深的Oracle专家,拥有17年的一线DBA经验和丰富的知识储备,以及大量原创技术文章。他对Oracle数据库性能优化和管理有着深入的研究,对于广大的Oracle DBA来说,关注杨廷琨,关注Oracle技术的最新进展,...
接下来,执行`startup upgrade`指令,这会启动Oracle实例进入升级模式,系统将显示关于总系统全局区、固定大小区域、可变大小区域、数据库缓冲区和重做日志缓冲区等关键内存参数的信息。 ### 检查数据库状态 在...
1. Oracle数据库架构:本书详细讨论了Oracle数据库的核心架构设计,包括内存结构、进程模型以及存储组织方式。对Oracle数据库的架构深入理解是进行高效数据库设计、优化和故障排查的前提。 2. Oracle 9i和10g的编程...
这份PPT文档由作者原创,旨在帮助初学者轻松入门Oracle世界。 在Oracle培训教程中,可能会包含以下几个关键知识点: 1. **Oracle概述**:介绍Oracle公司的历史、Oracle数据库的版本发展以及其在业界的地位。解释...
文档的出版者 Sun Microsystems(已被 Oracle 收购)是 Solaris 操作系统的原创开发者,其版权信息表明该文档受到严格的版权保护,并且可能包含第三方软件和技术,如字体技术,这些都遵循特定的许可证条款。...
- **参数文件**:定义Oracle实例的配置,如内存分配等。 - **口令文件**:用于认证哪些用户可以启动或关闭Oracle实例。 - **归档的重做日志文件**:离线副本,用于介质故障恢复。 ### 二、Oracle Server Oracle ...
在Oracle数据库系统中,Real Application Clusters (RAC) 是一种高级集群技术,它允许多台服务器共享同一数据库,提供高可用性和性能。本话题主要探讨2018年5月10日发生的RAC节点重启事件的原因分析,旨在帮助数据库...
对于服务器而言,分页减少了每次请求的数据量,从而降低了内存占用和响应时间。 现在,让我们聚焦于这个被称作“史上最灵活,强大”的分页框架。通常,一个优秀的分页框架应具备以下特性: 1. **灵活性**:框架应...
在实际编译过程中,还可能需要考虑硬件配置,如至少需要双核CPU、至少2GB的内存以及足够的硬盘空间以存储源代码和编译后的产品。 编译OpenJDK的源代码是一个复杂的过程,需要对各个组件的作用有所理解,同时还要对...
- 杨廷琨参与编写了多部关于Oracle数据库的著作,如《Oracle数据库性能优化》、《Oracle DBA手记》等,并且在个人BLOG上积累了2500篇原创技术文章。 - 作为一名拥有十三年一线DBA(数据库管理员)经验的专业人士,...
- **1.1 保存到内存** - 特点:快速读写数据,但数据易失性高,程序关闭后数据丢失。 - **1.2 保存到文件** - 特点:数据可持久化存储,但频繁的 I/O 操作导致读写效率较低。 - **1.3 保存到数据库软件** - ...
- **硬件需求:** 至少需要2GB内存,推荐4GB或以上;硬盘空间至少需要10GB,推荐20GB以上。 **1.2 数据库配置要求** - **支持的数据库:** Oracle、Microsoft SQL Server、IBM DB2等主流关系型数据库管理系统。 - **...