`

ORACLE11G 自动内存管理学习

阅读更多

Oracle在简化内存管理方面过去几年做了巨大的努力,从Oracle 9i通过PGA_AGGREGATE_TARGET参数实现PGA自动管理开始,Oracle 10g通过SGA_TARGET参数实现了SGA的自动管理,Oracle 11g更是惊人地实现了数据库所有内存块的全自动化管理,它使得动态管理SGA和PGA成为现实。

写本文时,自动内存管理(AMM)已经在主流平台上得到支持,包括Linux,Windows,Solaris,HP-UX,AIX。

AMM参数

自动内存管理是用两个初始化参数进行配置的:

MEMORY_TARGET:动态控制SGA和PGA时,Oracle总共可以使用的共享内存大小,这个参数是动态的,因此提供给Oracle的内存总量是可以动态增大,也可以动态减小的。它不能超过MEMORY_MAX_TARGET参数设置的大小。默认值是0。

MEMORY_MAX_TARGET:这个参数定义了MEMORY_TARGET最大可以达到而不用重启实例的值,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。

使用动态内存管理时,SGA_TARGET和PGA_AGGREGATE_TARGET代表它们各自内存区域的最小设置,要让Oracle完全控制内存管理,这两个参数应该设置为0。

AMM配置

在数据库创建过程中,数据库配置助手(DBCA)允许你配置自动内存管理。

在手动创建数据库时,只需要在创建数据库之前设置合适的MEMORY_TARGET和MEMORY_MAX_TARGET初始化参数。

在一个系统上启用自动内存管理其实很简单,不需要事先做太多的事情,可以使用下面的计算公式来计算:

MEMORY_TARGET=SGA_TARGET+GREATEST(PGA_AGGREGATE_TARGET,"maximumPGAallocated")

下面的查询语句向你展示有关的信息,以及如何计算出需要的值:
-- Individual values.
COLUMN name FORMAT A30
COLUMN value FORMAT A10

SELECT name, value
FROM   v$parameter
WHERE  name IN ('pga_aggregate_target', 'sga_target')
UNION
SELECT 'maximum PGA allocated' AS name, TO_CHAR(value) AS value
FROM   v$pgastat
WHERE  name = 'maximum PGA allocated';

-- Calculate MEMORY_TARGET
SELECT sga.value + GREATEST(pga.value, max_pga.value) AS memory_target
FROM (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = 'sga_target') sga,
     (SELECT TO_NUMBER(value) AS value FROM v$parameter WHERE name = 'pga_aggregate_target') pga,
     (SELECT value FROM v$pgastat WHERE name = 'maximum PGA allocated') max_pga;

假设我们需要的设置是5G,那么我们可以执行下面的语句:
CONN / AS SYSDBA
-- Set the static parameter. Leave some room for possible future growth without restart.
ALTER SYSTEM SET MEMORY_MAX_TARGET=13G SCOPE=SPFILE;

-- Set the dynamic parameters. Assuming Oracle has full control.
ALTER SYSTEM SET MEMORY_TARGET=20G SCOPE=SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET=0 SCOPE=SPFILE;
ALTER SYSTEM SET SGA_TARGET=0 SCOPE=SPFILE;

-- Restart instance.
SHUTDOWN IMMEDIATE;
STARTUP;
当数据库重启后,MEMORY_TARGET参数就可以在不重启实例的情况下随意改变大小了。如:
ALTER SYSTEM SET MEMORY_TARGET=4G SCOPE=SPFILE;

AMM调整

除现有的用于内存管理的V$视图外,Oracle 11g还新增加了下面4个视图用于自动内存管理:

 ◆V$MEMORY_CURRENT_RESIZE_OPS
 ◆V$MEMORY_DYNAMIC_COMPONENTS
 ◆V$MEMORY_RESIZE_OPS
 ◆V$MEMORY_TARGET_ADVICE

为每个动态组件分配的内存大小使用视图V$MEMORY_DYNAMIC_COMPONENTS显示:

COLUMN component FORMAT A30

SELECT  component, current_size, min_size, max_size
FROM    v$memory_dynamic_components
WHERE   current_size != 0;

COMPONENT                      CURRENT_SIZE   MIN_SIZE   MAX_SIZE
------------------------------ ------------ ---------- ----------
shared pool                       197132288  192937984  197132288
large pool                          4194304    4194304    4194304
java pool                          41943040   41943040   41943040
SGA Target                        318767104  285212672  318767104
DEFAULT buffer cache               71303168   41943040   75497472
PGA Target                        104857600  104857600  138412032

6 rows selected.

SQL>

V$MEMORY_CURRENT_RESIZE_OPS和V$MEMORY_RESIZE_OPS分别显示了组件当前改变大小操作的信息和上一次改变大小操作的信息。

V$MEMORY_TARGET_ADVICE提供了帮助调整MEMORY_TARGET参数的信息,它显示了一段MEMORY_TARGET设置可用的范围,根据当前的设置,估算完成当前负载所需要的DB Time值。

SELECT * FROM v$memory_target_advice ORDER BY memory_size;

MEMORY_SIZE MEMORY_SIZE_FACTOR ESTD_DB_TIME ESTD_DB_TIME_FACTOR    VERSION
----------- ------------------ ------------ ------------------- ----------
        303                .75         3068              1.0038          2
        404                  1         3056                   1          2
        505               1.25         3056                   1          2
        606                1.5         3056                   1          2
        707               1.75         3056                   1          2
        808                  2         3056                   1          2

6 rows selected.

SQL>

企业管理器中也包括了内存管理配置和顾问功能,位于“内存顾问”页面(顾问中心内存顾问)

点击“建议(Advice)”按钮显示“内存大小建议”屏幕,它包括了一个来自视图V$MEMORY_TARGET_ADVICE的图形显示界面。

分享到:
评论

相关推荐

    oracle 11g 自动内存的管理

    oracle 11g 自动内存的管理。。。。。。。

    Oracle11g五大新特性

    从分区、数据压缩技术、自动内存管理、统计信息收集、 SecureFiles五个方面详细介绍了Oracle 11g的新特性:分区就不用说了,正是分区的存在让Oracle高效的处理海量数据成为可能;Oracle从9i开始羞羞答答的引入表级...

    Oracle11gR1下的自动内存管理(AMM)

    火龙果软件工程技术中心 Oracle在简化内存管理方面过去几年做了巨大的努力,从Oracle9i通过PGA_AGGREGATE_TARGET参数实现PGA自动管理开始,Oracle10g通过SGA_TARGET参数实现了SGA的自动管理,Oracle11g更是惊人地...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     《Oracle11g宝典》是Oracle数据库管理员、安全管理员、网络管理员、应用开发人员的参考指南,还是Oracle技术支持和培训机构、Oracle学习班、高等院校计算机专业数据库课程的参考教材和上机指导教材。每类人员都...

    oracle 11g 性能优化扫描版

    oracle 11g数据库性能优化扫描版。目录: 第一章 优化表性能 第二章 选择和优化索引 第三章 优化实例内存 第四章 监控系统性能 第五章 最小化系统资源争夺 第六章 分析操作系统性能 第七章 检修数据库 第八章 创建...

    oracle 10g 性能优化与调整

    oracle 10g 性能优化与调整 oracle 10g 性能优化与调整 oracle 10g 性能优化与调整 oracle 10g 性能优化与调整

    深入了解oracle自动内存管理asmm

    每一个Oracle的初学者在入门阶段都会接触到SGA/PGA的知识,如果是从10g开始学习那么会多或少会对 ASMM有所了解,从使用的角度来说ASMM的出现极大地简化了Oracle内存初始化参数的设置,在ASMM的使 用上高级DBA和初学...

    Oracle11g数据库入门第4章

    进程全局区(Process Global Area,PGA) 用户全局区(User Global Area,UGA) 系统全局区(System Global Area,SGA) 固定SGA 重做缓冲区 块缓冲区缓存 共享池 大池 Java池 ...自动内存管理 小结

    ORACLE11G R2 RAC ON HP-UX11.31 IA64

    1.3.11 配置自动存储管理ASM... 29 1.3.12 创建RAC数据库... 32 1.3.13 配置RAC数据库监听... 40 1.4 RAC管理... 44 1.4.1 查看RAC服务状态... 44 1.4.2 数据库启停... 44 1.4.3 RAC服务启停... 44 1.5 附件...

    Oracle 10g服务管理器

    先把要用到的Oracle 10g服务 启动方式设置为手动,以后系统启动的时候不会自动启动,这样不要用Oracle的时候可节省 600M左右的内存 当你要用Oracle的时候,直接运行这个程序,即可自动帮你启动服务,当你不要用...

    Oracle11g客户端安装及plsql配置

    不需要安装oracle客户端,通过pl/sql就可以远程连接oracle数据库,很值得学习,自己亲手实验得出的结论,带截图,很适合现在oracle的学习者和不想安装oracle客户端就想远程连接oracle数据库的小虾们。 优点是:如果...

    Oracle10g 白皮书之自我管理数据库

    Oracle10g 白皮书之自我管理数据库 Oracle 数据库是一款真正实现自我管理的数据库,具有智能自我管理框架、创新性自我诊断引擎、自动调节优化器以及自动内存管理功能。

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

    第Ⅰ部分 Oracle Database 11g管理 1 第1章 Oracle Database 11g体系结构概述 3 1.1 Oracle产品系列 4 1.1.1 Oracle服务器系列 4 1.1.2 Oracle开发工具 7 1.1.3 Oracle应用程序 9 1.2 预备知识 9 1.2.1 ...

    Oracle11gR2数据库新特性

    自动内存管理 ADDM for RAC 数据卫士( Dataguard )技术革新 闪回技术 闪回存档 RAC和ASM RAC One Node ASM 数据安全 Database Vault Audit Vault 高级压缩 OLAP表压缩 LOB字段压缩 Expdp导出文件压缩 Rman备份压缩

    oracle 11g overview

    探究自动内存管理、多列统计信息、联机修补等更多特性。 缓存和连接池 探究 SQL 结果缓存、PL/SQL 函数缓存以及数据库驻留连接池。 SQL 操作:Pivot 和 Unpivot 使用简单的 SQL 以电子表格类型的交叉表报表显示...

    oracle 官方培训

    Oracle数据库培训大纲(2天) 基本内容 时间安排(天) 课程内容要点 基础和管理 1天 Oracle结构组件 Oracle服务器入门 管理Oracle实例 建立数据库 管理控制文件 管理表空间和数据文件 ...Oracle 10g自动SQL调整

Global site tag (gtag.js) - Google Analytics