签到成功

知道了

CNDBA社区CNDBA社区

oracle PGA_AGGREGATE_LIMIT参数详解

2022-08-27 16:05 1338 0 原创 oracle
作者: hbhe0316
SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_limit                  big integer 2G
pga_aggregate_target                 big integer 798M

在自动化 PGA 内存管理模式下,Oracle 数据库通过动态控制分配到工作区的 PGA 内存量来尝试遵从 PGA_AGGREGATE_TARGET 值。
但是,有时因为以下原因,http://www.cndba.cn/hbhe0316/article/108606

http://www.cndba.cn/hbhe0316/article/108606
http://www.cndba.cn/hbhe0316/article/108606

PGA 内存使用量可能会超过 PGA_AGGREGATE_TARGET 设置:
PGA_AGGREGATE_TARGET 设置起到的是目标的作用,而非限制。
PGA_AGGREGATE_TARGET 仅控制可优化部分内存的分配。
使用大量 PGA 可能会导致高交换率。出现这种情况时,系统可能会无法响应,并且不稳定。这种时候需要考虑使用 PGA_AGGREGATE_LIMIT 初始化参数限制整体 PGA 使用量。

12c 引入了新的参数 PGA_AGGREGATE_LIMIT 以允许数据库管理员限制 pga 内存使用总量。
使用 PGA_AGGREGATE_LIMIT初始化参数可以为 PGA 内存使用量指定硬性限制。如果超过了 PGA_AGGREGATE_LIMIT 值,
则 Oracle 数据库按照以下顺序,中断或者终止使用了最多不可优化 PGA 内存的会话或进程:
中止使用最多不可优化 PGA 内存的会话调用。
如果 PGA 内存使用量仍超过 PGA_AGGREGATE_LIMIT,则终止使用了最多不可优化 PGA 内存的会话和进程。
使用最多不可优化内存会话的调用将被中止。并行查询将被视为一个单元。如果 PGA 内存使用总量仍超过限制,则将终止使用最多不可优化内存的会话。
不会对除作业队列进程之外的 SYS 进程和后台进程执行这一部分中所述的任何操作。取而代之的操作是,
如果它们使用了最多不可优化内存,则会定期将其 PGA 使用量的简短摘要写入到跟踪文件中。
显式设置 PGA_AGGREGATE_LIMIT 与将其设置为默认值,在行为上没有差别。
PGA_AGGREGATE_LIMIT 初始化参数动态设置为 PGA 内存的实例范围硬性限制。由于该参数根据内存情况的变化做出响应,您无需显式设置参数值。默认情况下,PGA_AGGREGATE_LIMIT 设置为以下值中的较大者:http://www.cndba.cn/hbhe0316/article/108606

2 GB
200% 的 PGA_AGGREGATE_TARGET
(PROCESSES 初始化参数设置值)* 3 MB
该参数不会超过物理内存大小减去总 SGA 大小的 120%。http://www.cndba.cn/hbhe0316/article/108606http://www.cndba.cn/hbhe0316/article/108606http://www.cndba.cn/hbhe0316/article/108606

如果指定了值 0,则表示实例所使用的 PGA 内存总量没有限制。
PGA_AGGREGATE_LIMIT 初始化参数可以动态设置;并不需要数据库重新启动。可以设置 PGA_AGGREGATE_LIMIT 的值,不论是否使用了自动内存管理。

后台进程 CKPT 每三秒检查一次内存用量是否超过了 PGA_AGGREGATE_LIMIT 初始化参数的值。如果达到或超过了限制,
则此进程中断使用最多不可优化 PGA 内存的会话调用。如果这些会话仍没有释放足够内存,则终止它们。
请注意,由于 pga 值仅每三秒检查一次,因此 pga 内存有可能超过 PGA_AGGREGATE_LIMIT。此外,如果在此期间该 pga 值减少到限制之下,
则将不会捕获在这三秒间隔内超过限制的情况。如果进程在三秒的间隔内快速分配然后释放内存,则可能会出现这种情况。http://www.cndba.cn/hbhe0316/article/108606

如果达到了 PGA_AGGREGATE_LIMIT 值,则将报告如下错误。http://www.cndba.cn/hbhe0316/article/108606http://www.cndba.cn/hbhe0316/article/108606

ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT

Cause: Private memory across the instance exceeded the limit specified in the PGA_AGGREGATE_L

版权声明:本文为博主原创文章,未经博主允许不得转载。

oracle

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
hbhe0316

hbhe0316

关注

1.只有承认无知,才能装下新的东西; 2.进步来自一点点滴滴的积累; 3.广博让你更优秀,而专业让你无法替代; 4.挫折和失败能够转换为一种财富。

  • 889
    原创
  • 1
    翻译
  • 13
    转载
  • 24
    评论
  • 访问:1038760次
  • 积分:1523
  • 等级:核心会员
  • 排名:第6名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ