–内存管理的新功能:引入PGA 的上限尺寸限制
管理program global area (PGA)
传统的 PGA 内存管理
- Oracle 9i Database 中,导入了自动 PGA 内存(PGA 自动调整功能)
- 通过PGA_AGGREGATE_TARGET初始化参数自动导出实例中活跃的工作区域中,可以使用的PGA内存总量
–Oracle可以自动调整分类处理以及哈希结合中所使用的SQL工作区域
自动 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 用户不在错误范围内
Comment