Oracle12c 新特性:限制PGA使用内存的大小
发表于:2025-01-25 作者:千家信息网编辑
千家信息网最后更新 2025年01月25日,我们都知道,在12c之前,对于PGA内存的管理是使用PGA_AGGREGATE_TARGET参数来控制的,但这个参数也只是一个参考值,Oracle实例只是尽量保证总的PGA使用量在这个值范围内,当会话
千家信息网最后更新 2025年01月25日Oracle12c 新特性:限制PGA使用内存的大小
我们都知道,在12c之前,对于PGA内存的管理是使用PGA_AGGREGATE_TARGET参数来控制的,但这个参数也只是一个参考值,Oracle实例只是尽量保证总的PGA使用量在这个值范围内,当会话使用的PGA内存超过这个限制时,Oracle也不能做出什么强制措施来限制使用内存的大小。
12.1.0.1版本中引入了新特性:使用PGA_AGGREGATE_LIMIT参数来限制Oracle实例PGA使用内存的上限。后台进程ckpt每三秒检查一次PGA使用的内存总量,如果超过限制就采取终止会话的方式来降低PGA内存的使用量,对于SYS用户进程和后台进程不包括job队列不会被终止掉。有了这个限制,不会造成PGA内存疯涨,导致内存耗尽。
官方文档:http://docs.oracle.com/database/121/TGDBA/tune_pga.htm#TGDBA95344
默认地PGA_AGGREGATE_LIMIT参数为2G或200%的PGA_AGGREGATE_TARGET值或PROCESSES参数值*3M
测试数据库版本12.1.0.2
SQL> select * from v$version;BANNER CON_ID-------------------------------------------------------------------------------- ----------Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production 0PL/SQL Release 12.1.0.2.0 - Production 0CORE 12.1.0.2.0 Production 0TNS for Linux: Version 12.1.0.2.0 - Production 0NLSRTL Version 12.1.0.2.0 - Production 0
查看PGA_AGGREGATE_LIMIT参数值大小为2G
SQL> show parameter pgaNAME TYPE VALUE------------------------------------ ----------- ------------------------------pga_aggregate_limit big integer 2Gpga_aggregate_target big integer 250M
创建测试用户
SQL> alter session set container=pdb_orcl;Session altered.SQL> create user zx identified by zx;User created.SQL> grant dba to zx;Grant succeeded.SQL> conn zx/zx@pdb_orclConnected.
创建一个包用于演示占用PGA
SQL> create or replace package demo_pkg 2 as 3 type array is table of char(2000) index by binary_integer; 4 g_data array; 5 end; 6 /Package created.
查看当前会话sid和使用PGA内存情况
SQL> select userenv('sid') from dual;USERENV('SID')-------------- 22--当前会话sid为22SQL> select a.name, to_char(b.value, '999,999,999') bytes, 2 to_char(round(b.value/1024/1024,1), '99,999.9' ) mbytes 3 from v$statname a, v$mystat b 4 where a.statistic# = b.statistic# 5 and a.name like '%ga memory%';NAME BYTES MBYTES---------------------------------------------------------------- ------------ ---------session uga memory 2,301,312 2.2session uga memory max 2,424,824 2.3session pga memory 3,715,176 3.5session pga memory max 3,715,176 3.5--当前会话使用PGA内存为3.5MB
执行前面创建的包,查看PGA内存使用情况
--循环执行200000次查看PGA内存使用情况SQL> begin 2 for i in 1 .. 200000 3 loop 4 demo_pkg.g_data(i) := 'x'; 5 end loop; 6 end; 7 /PL/SQL procedure successfully completed.SQL> select a.name, to_char(b.value, '999,999,999') bytes, 2 to_char(round(b.value/1024/1024,1), '99,999.9' ) mbytes 3 from v$statname a, v$mystat b 4 where a.statistic# = b.statistic# 5 and a.name like '%ga memory%';NAME BYTES MBYTES---------------------------------------------------------------- ------------ ---------session uga memory 470,213,072 448.4session uga memory max 470,213,072 448.4session pga memory 471,773,288 449.9session pga memory max 471,773,288 449.9--共使用449MB内存,可以算出循环执行200000*5次占用的PGA就会超过设置的2GSQL> begin 2 for i in 1 .. 1000000 3 loop 4 demo_pkg.g_data(i) := 'x'; 5 end loop; 6 end; 7 /begin*ERROR at line 1:ORA-04036: PGA memory used by the instance exceeds PGA_AGGREGATE_LIMIT--报错ORA-4036超过了PGA_AGGREGATE_LIMIT设置的2G
调整PGA_AGGREGATE_LIMIT为4G后再次执行报错的过程,就没有问题了
SQL> conn / as sysdbaConnected.SQL> alter system set PGA_AGGREGATE_LIMIT=4G;System altered.SQL> conn zx/zx@pdb_orclConnected.SQL> begin 2 for i in 1 .. 1000000 3 loop 4 demo_pkg.g_data(i) := 'x'; 5 end loop; 6 end; 7 /PL/SQL procedure successfully completed.SQL> show parameter pgaNAME TYPE VALUE------------------------------------ ----------- ------------------------------pga_aggregate_limit big integer 4Gpga_aggregate_target big integer 250M
取消PGA限制,设置pga_aggregate_limit=0即可。
alter system set PGA_AGGREGATE_LIMIT=0;
内存
限制
参数
情况
进程
大小
使用量
只是
后台
实例
版本
用户
循环
测试
特性
上限
再次
参考值
官方
总量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
医护人员绘画软件开发
msql数据库频繁读写优化
gsx数据库
运营商多久检查网络安全
交换机和服务器哪个好学
ibm免费云服务器测评
网络安全饭圈乱象手抄报文字
服务器运转监测与管理
招聘系统数据库表结构
提高效率的数据库管理方式
服务器带宽万兆
服务器上的共享文件在哪里
高考阅卷系统网络安全要求
海康威视网络安全工程师面试
网络安全架构加固
青岛服务器代理
网络技术用句
网件7800无线打印服务器
pg数据库高校研究
越南网络安全新法生效
免费同人志数据库和漫画书馆
校园网络安全宣传海报
泊头有招软件开发的吗
怎么找服务器地址
南平数据库审计系统开发
数据库环境配置
软件开发认证考试费用
小天办公下载后 输入服务器地址
三明学院网络安全大赛
自己写数据库