Oracle 12c PGA内存自动管理功能

–内存管理的新功能:引入PGA 的上限尺寸限制

 

管理program global area (PGA)

传统的 PGA 内存管理

  • Oracle 9i Database 中,导入了自动 PGA 内存(PGA 自动调整功能)
  • 通过PGA_AGGREGATE_TARGET初始化参数自动导出实例中活跃的工作区域中,可以使用的PGA内存总量

–Oracle可以自动调整分类处理以及哈希结合中所使用的SQL工作区域

 

pga 9i

 

 

自动 PGA 的内存操作与限制

 

  • 通过PGA_AGGREGATE_TARGET 初始化参数所指定的值就是目标值,但并不一定能残留在指定值以内的内存尺寸之中

–比指定值尺寸更大的案例

  • 大量的进程同时开始分类处理的案例
  • 连接到实例的进程数增加的情况

–如SGA 的 SGA_TARGET初始化参数一样,这并不是无法超过指定值尺寸的结构

  • 直到OS的空白区域中,虚拟内存不足,或者进程到底可以使用的内存上限时,就会发生ORA-4030错误

–OS 整体内存枯竭,可能使得系统整体面临危险

 

Oracle 12c引入了PGA 的上限尺寸限制

PGA_AGGREGATE_LIMIT 参数

 

  • 设定实例全体中可以获得的PGA的上限值

–超过上限执行获得时就会发生ORA-4036

–SYS 用户,后台进程不属于这种情况

  • 默认值:较大值

–2048 MB or PGA_AGGREGATE_TARGET × 2 or PROCESSES × 3MB

–默认值在警报日志中的输出例

Using default pga_aggregate_limit of 2048 MB

  • 可以动态变更 (alter system)

–可以设定的值的范围为0,或者比默认值更大的值

 

Oracle 12c引入了PGA 的上限尺寸限制

PGA_AGGREGATE_LIMIT 的操作图

  • 超过总计值时就会报错(ORA-4036)

※ SYS 用户不在错误范围内

 

pga_aggregate_limit

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *