如何启用oracle11g的全自动内存管理以及计算memory_max_target及memory_target

  • A+
所属分类:oracle

chatGPT账号

如何启用oracle11g的全自动内存管理以及计算memory_max_target及memory_target

结论

1,memory_max_target及memory_target参数的配置,则会启用全自动内存管理功能

2,memory_target=sga_target+max(pga_aggregate_target+maximum pga allocated)

3,memory_target分配范围必须要在参数memory_max_target

4,memory_max_target参数分配原则,一要考虑数据库负载的持续变化发展以及物理内存的空间是否充足

5,sga_target及pga_aggregate_target若配置为0,则全自动内存管理,SGA及PGA组件分配完全由ORACLE根据业务负载分配,没有最小值的限制
否则,若2参数为非0,则SGA及PGA分配不能少于指定的值

6,建议在生产环境采用第5步后者的分配方式,以防内存分配抖动大量出现,引发严重的性能问题

7,数据库启动可以采用SPFILE或者PFILE,二者调整参数稍有不同,一定要注意二者的区别

8,对于RAC数据库,若采用ALTER SYSTEM方式调整开启全自动内存管理方式,且是一个实例一个实例调整,一定要添加选项sid='sid值',否则会报错
调整完当前节点,再调整其它节点

9,本文测试环境为RAC 2节点11.2.0.3数据库,基于ASM存储的SPFILE,并在另一篇文章测试基于PFILE调整全自动内存管理的RAC数据库

背景

如果在启动oracle 11g数据库后,想由原来的SGA及PGA自动管理改为SGA及PGA全自动内存管理,需要作哪些工作,又要了解哪些参数呢?
与全自动内存管理的参数memory_max_size及memory_target的值如何设定呢?
本文我们主要学习这些知识,供后期运维所需。

测试

1,查看SGA_TARGET的参数值
SQL> show parameter sga_target

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
sga_target                           big integer 556m

2,查看PGA参数值
SQL> show parameter pga_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 187M

3,查看自数据库启动以来PGA分配过的最大值
SQL> select value from v$pgastat where name='maximum PGA allocated';
VALUE
----------
161836032

SQL> select 161836032/1024/1024 mb from dual;
MB
----------
154.338867

4,综上所述,从理论上来讲,memory_target=sga_taget + max(pga_aggregate_target + maximum PGA allocated)
memory_target=556m+max(187m,154m)=556m+187m=743m
注意:如果你物理内存充足,可用空间充足,可以把memory_target在上述计算的基础再增大一点

5,与全自动内存管理还有一个参数memory_max_size,又该如何设定呢?
首先此参数配置有几个原则:
1,此参数控制memory_target可以分配的最大值
2,分配此参数值一定要考虑业务发展的需要,可以把此参数值在第4步计算的基础上加大一些
所以,配置memory_max_target=800m

6,现在全自动内存管理的2个参数的值已经计算完毕,开始在数据库层面进行具体的调整,这里根据是否采用SPFILE或者PFILE,动作稍稍有所区别
7,先看如果数据库启动采用SPFILE
---即设定为第5步计算的值(若为RAC,添加选项sid)
alter system set memory_max_target=800m  scope=spfile sid='*';
8,重启数据库实例
shutdown immediate
startup
9,动态调整memory_target及sga_target及pga_aggregate_target几个参数的值
---743m为第4步计算的值
--- 对于当前操作的RAC数据库实例,一定要添加 sid='jingfa1',否则会报ORA-32018: parameter cannot be modified in memory on another instance
alter system set memory_target=743m;
alter system set sga_target=0;
alter system set pga_aggregate_target=0;

注意:如果你配置sga_target及pga_aggregate_target为0,则完全由ORACLE动态根据数据库负载无限制调整sga及pga的大小(这种方式到时内存分配抖动过大,会引发严重的性能问题);
但是,如果你配置sga_target及pga_aggregate_target为非0值,则为内存动态调整时,其为最小值,即不能少于这个值(建议在生产环境采用这种方式)

10,如果是RAC数据库,还要启动其它的节点
startup nomount
alter system set memory_target=743m sid='jingfa2';
alter system set sga_target=0 sid='jingfa2';
alter system set pga_aggregate_target=0 sid='jingfa2';
alter database mount;
alter database open;

免责声明

发文时比特币价格:$10078

当前比特币价格:[crypto coins=”BTC” type=”text” show=”price”]

当前比特币涨幅:[crypto coins=”BTC” type=”text” show=”percent”]

免责声明:

本文不代表路远网立场,且不构成投资建议,请谨慎对待。用户由此造成的损失由用户自行承担,与路远网没有任何关系;

路远网不对网站所发布内容的准确性,真实性等任何方面做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,路远网对项目的真实性,准确性等任何方面均不做任何形式的承诺和保障;

网站内所有涉及到的区块链(衍生)项目,路远网不对其构成任何投资建议,用户由此造成的损失由用户自行承担,与路远网没有任何关系;

路远区块链研究院声明:路远区块链研究院内容由路远网发布,部分来源于互联网和行业分析师投稿收录,内容为路远区块链研究院加盟专职分析师独立观点,不代表路远网立场。

本文是全系列中第42 / 286篇:行业技术

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的电报
  • 这是我的电报扫一扫
  • weinxin
chatGPT账号
路远

发表评论

您必须登录才能发表评论!