Oracle 的 9i/10g 中已经对内存管理逐步做了很大的简化,11g 则更进一步,引入了一个新的概念自动化内存管理(Automatic Memory Management,AMM) . 如果 DBA 真的想偷懒的话,只需要设定两个参数就可以把烦心的事情都交给 Oracle 折腾了(只要 DBA 足够心宽)。PGA 与 SGA 一起搞定。这两个参数分别是: Tip: 如果使用的是 pfile,设定了 MEMORY_TARGET 而没有指定 MEMORY_MAX_TARGET 的值,则实例启动后 MEMORY_MAX_TARGET 的值与 MEMORY_TARGET 相等。如果 pfile 中指定了 MEMORY_MAX_TARGET 而没有指定 MEMORY_TARGET ,实例启动后 MEMORY_TARGET 为 0 。 AMM 在后台会启动一个内存管理(Memory Manager, mman)进程。 因为 AMM 的引入,Oracle 内存管理更加灵活多样。 组合出来有 5 种内存管理形式. MEMORY_TARGET--操作系统的角度上 Oracle 所能使用的最大内存值。动态参数
MEMORY_MAX_TARGET--MEMORY_TARGET所能设定的最大值。非动态可调。
1) 自动内存管理
11g引入。如下
SQL> show parameters target
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 1216M
memory_target big integer 1216M
pga_aggregate_target big integer 0
sga_target big integer 0
要注意到 SGA_TARGET 和 pga_aggregate_target 都为 0 。
这两个参数的修改是有严格顺序的,如果不遵守倒也没问题--Oracle 会报告错误。 这个又更加原始了一些。因为原始,所以新的初始化参数 SGA_TARGET 与 MEMORY_TARGET 都要设置为 0. 然后手工设定 share_pool_size 、db_cache_size 等 sga 参数。要注意RESULT_CACHE_SIZE 参数是 11g 新引入的,用来缓存 SQL 结果。 如果使用 AMM , 则对 PGA 不用操心。如果要做到精细控制而切换到自动 PGA 内存管理模式,需要设定WORKAREA_SIZE_POLICY = AUTO(默认即为 AUTO),然后需要指定 PGA_AGGREGATE_TARGET 的值。如需要精确控制PGA,则 WORKAREA_SIZE_POLICY = MANUAL .
前提是 WORKAREA_SIZE_POLICY = manual ,然后分别指定 SORT_AREA_SIZE 等 PGA 相关的参数。估计现在没有人干这个吃力不讨好的事情了。这个模式大可以忽略。 如果初始化参数 LOCK_SGA = true ,则 AMM 是不可用的。2.自动共享内存管理(Automatic Shared Memory Management, ASMM)
这是 10g 引入的管理方式,要使用这种方式,需要设置初始化参数 MEMORY_TARGET=0 ,然后显式的指定 SGA_TARGET 的值。
SQL> alter system set sga_target=1024m scope=both;
alter system set sga_target=1024m scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00839: SGA_TARGET cannot be modified to the specified value
SQL> alter system set memory_target=0 scope=both;
System altered.
SQL> alter system set sga_target=1024m scope=both;
System altered.
SQL>
3.手工共享内存管理
4.自动 PGA 内存管理
5.手动 PGA 管理
AMM 的限制
发表评论
-
Oracle ITL(事务槽)
2013-07-10 10:14 2456ITL描述: ITL(Interested Transac ... -
【转】Oracle TM锁 TX锁
2013-05-12 23:42 1464转自RuleV5:http://blog.csdn.net/ ... -
【转】Oracle: sqlnet.ora、listener.ora、tnsnames.ora的配置
2013-05-07 22:29 916转自 http://blog.csdn.net/wenlel ... -
v$parameter, v$parameter2, v$system_parameter, v$system_parameter2, v$spparamete
2013-05-07 15:05 1339转自:http://blog.csdn.net/huang_ ... -
SQL 连接(左连接,右连接,全连接,内连接,交叉连接,自连接) (转)
2013-02-02 23:10 1048最近公司在招人,同事问了几个自认为数据库可以的应聘者关于库连 ... -
Oracle 回收站 (转)
2013-02-01 17:19 835我们都比较熟悉windows中的回收站,文件删除后放到回收 ... -
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
2011-03-13 14:02 760近日在配置Oracle 10G的 ... -
ORA-28000: the account is locked
2011-03-12 19:36 1818迁移项目,一切弄完后启动服务器,Hibernate报错:OR ... -
ORA-01578: ORACLE 数据块损坏 一种解决方案 (转)
2011-03-11 15:32 31586os: winxp db: 10g r2 错误提 ... -
oracle的备份与恢复 (转)
2011-03-11 14:28 1208oracle中的不使用rman的备 ... -
oracle 存储结构
2011-03-10 13:33 1854总体来说oracle的逻辑结构和物理结构是由块、区、段 ... -
pctused, pctfree, pctincrease , 行迁移 & 行链接 (转)
2011-03-09 19:48 1471关于pctincrease与空间 ... -
表空间管理 用户管理 日志文件管理
2011-03-08 14:09 8251、表空间管理和用户管理 --创建数据表 ... -
oracle initrans maxtrans
2011-03-07 10:35 4040initrans用于对数据块的行级并行操作的控制。首先介绍事 ... -
oracle analyze table(转)
2011-03-04 16:19 1554首先创建四个临时表t1 ... -
oracle 高水位线(转)
2011-03-04 14:30 2560高水位线实验: -- 创建test3表 SQL> cre ... -
Oracle SQL 优化 (转)
2011-03-03 15:16 724Oracle SQL的优化规则: 尽量少用IN操作符,基本上所 ... -
EXECUTE IMMEDIATE用法小解(转)
2011-03-03 14:33 682EXECUTE IMMEDIATE 代替了以前Oracle8i ... -
Oracle distinct的用法(转)
2011-03-03 09:37 846distinct这个关键字来过滤掉多余的重复记录只 ... -
oracle float(b)(转)
2011-03-02 14:48 1189今天有人问我,他把字段类型设计成float(2)后,插入数 ...
相关推荐
在深入理解Oracle内存管理的过程中,我们可以从以下几个方面进行探讨: 1. **内部存储与外部存储**:内部存储主要指的是Oracle实例内存结构,包括SGA(System Global Area)和PGA(Program Global Area)。SGA是...
总的来说,Oracle内存管理涉及到多个层面,包括进程私有内存(PGA)和全局共享内存(SGA)的配置、使用和优化。深入理解这些概念并掌握相应的监控和调整技巧,是确保Oracle数据库高效稳定运行的基础。通过持续的学习...
ORACLE 自动内存管理和存储调整 ORACLE 自动内存管理和存储调整是 ORACLE 数据库中的一种重要配置,它可以根据系统的实际情况自动调整内存和存储的使用,以提高数据库的性能和效率。本文将详细介绍 ORACLE 自动内存...
Oracle内存管理是数据库系统中的关键组成部分,它直接影响到数据库的性能和稳定性。Oracle数据库使用复杂的内存结构来存储和处理数据,这些内存结构包括共享池、数据缓冲区缓存、PGA(程序全局区)和SGA(系统全局区...
冯春培作为一位经验丰富的Oracle专家,他的这篇文章清晰而深入地介绍了Oracle内存管理的关键方面,特别是系统全局区(SGA)和进程全局区(PGA)的配置与优化。 #### 二、Oracle内存架构概览 ##### 2.1 SGA与PGA的区别 ...
Oracle JDBC内存管理主要关注的是Oracle数据库的Java数据库连接(JDBC)驱动程序如何处理内存,以达到性能优化和潜在的内存消耗之间的平衡。在Oracle 10g及更高版本中,这种平衡策略的一个显著变化是驱动程序架构的...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,其性能和稳定性在很大程度上取决于内存管理的效率。本文将深入探讨Oracle内存结构,包括SGA(System Global Area)和PGA(Program Global Area),...
"Oracle内存资源分配"是数据库管理员必须掌握的关键技能,它涉及到Oracle数据库系统的Shared Global Area (SGA) 和Program Global Area (PGA) 的配置与调整。 首先,SGA是Oracle数据库运行时共享内存的主要区域,它...
理解Oracle内存管理不仅有助于提高数据库的运行效率,还能确保系统的稳定性和可靠性。通过对SGA和PGA的深入学习,DBA可以更好地诊断和解决性能问题,从而提升整体的业务运行速度。因此,这份"Oracle 内存全面分析"的...
【操作系统与Oracle内存管理比较】 本文探讨了操作系统与Oracle数据库在内存管理上的异同,作者王润中通过对比分析,揭示了两者在内存利用和进程管理上的策略。 1. 操作系统的内存管理 操作系统的内存管理主要...
内存管理策略涉及如何有效地分配和回收这些内存区域,以确保Oracle的高效运行。例如,Oracle使用LRU(Least Recently Used)算法来管理Buffer Cache中的数据块,将最近最少使用的数据块替换出内存。而SQL语句的解析...
### Oracle自动内存管理ASMM详解 #### 一、引言 随着Oracle数据库技术的发展,内存管理变得越来越自动化和智能化。其中,“Oracle自动内存管理(Automatic Shared Memory Management, ASMM)”是一个重要的里程碑...
本文将深入探讨Oracle内存管理的核心概念,包括内存结构、内存分配策略以及如何通过配置来提升数据库效率。 Oracle内存主要分为两大部分:系统全局区(System Global Area, SGA)和程序全局区(Program Global Area, ...
1. 使用自动内存管理:Oracle 10g及以后版本引入了自动内存管理,DBA可以设置一个总的内存预算,让Oracle自动分配SGA和PGA。 2. 分析工作负载:通过监控工具如AWR(Automatic Workload Repository)和ASH(Active ...
### Oracle内存分配与调整:深度解析 #### 一、引言 在Oracle数据库的运维与优化过程中,内存管理扮演着至关重要的角色。特别是在Oracle 9iR2及之前的版本中,有效的内存管理策略能显著提升数据库性能,反之则可能...
#### Oracle内存管理 Oracle数据库的内存管理对于确保数据库高效运行至关重要。内存配置不当可能导致性能下降甚至系统崩溃。在默认情况下,Oracle会根据系统的总内存自动调整其内存分配。然而,在某些情况下,可能...
第二讲:Oracle实例中内存结构 第三讲:Oracle实例中后台进程管理 第四讲:Oracle数据数据文件管理 第五讲:Oracle数据库在线日志文件管理 第六讲:Oracle数据库归档日志文件管理 第七讲:Oracle数据库控制文件管理...
oracle 的内存可以按照共享和私有的角度分为系统全局区和进程全局区,也就是 SGA和 PGA(process global area or private global area)。
有关Oracle数据库内存的分配与管理的原理及相关命令