问题描述
嗨,
我刚刚安装了最新的Oracle 12.2.0.1企业版,我注意到与12.1.0.2在Windows Oracle RDBMS内核可执行文件的内存消耗方面有所不同。
该数据库安装在具有16GB服务器内存的Windows server 2012R2上。
数据库配置手动内存管理,所以我们有以下设置: SGA_TARGET = 0和MEMORY_TARGET = 0
其他系统参数为: SGA_MAX_SIZE = 16G
DB_CACHE_SIZE = 3G
PGA_AGGREGATE_TARGET = 400M
现在我们看到windows服务器上的oracle进程已经消耗了全部16 gb,而不是大约预期的6 gb...
显示SGA (看起来正确) --->
总系统全局区域17179869184字节
固定大小8767392字节
可变大小13925091424字节
数据库缓冲区3221225472字节
重做缓冲区24784896字节
-池消耗 (看起来正确)
从v $ sgastat选择池,名称,回合 (字节/1024/1024/1024) GB,其中回合 (字节/1024/1024/1024)> 0按字节顺序desc,池,名称;
池名称GB
-
缓冲缓存3
共享池免费内存2
我们可以降低SGA_MAX_SIZE以避免这种内存消耗,但这并不能解释为什么会有这种不同的行为。
使用手动内存管理,所获取的windows server内存应该是不同oracle sga组件的总和,而不是立即使用完整的sga_max_size。
此版本的预期新行为还是错误?
问候。
我刚刚安装了最新的Oracle 12.2.0.1企业版,我注意到与12.1.0.2在Windows Oracle RDBMS内核可执行文件的内存消耗方面有所不同。
该数据库安装在具有16GB服务器内存的Windows server 2012R2上。
数据库配置手动内存管理,所以我们有以下设置: SGA_TARGET = 0和MEMORY_TARGET = 0
其他系统参数为: SGA_MAX_SIZE = 16G
DB_CACHE_SIZE = 3G
PGA_AGGREGATE_TARGET = 400M
现在我们看到windows服务器上的oracle进程已经消耗了全部16 gb,而不是大约预期的6 gb...
显示SGA (看起来正确) --->
总系统全局区域17179869184字节
固定大小8767392字节
可变大小13925091424字节
数据库缓冲区3221225472字节
重做缓冲区24784896字节
-池消耗 (看起来正确)
从v $ sgastat选择池,名称,回合 (字节/1024/1024/1024) GB,其中回合 (字节/1024/1024/1024)> 0按字节顺序desc,池,名称;
池名称GB
-
缓冲缓存3
共享池免费内存2
我们可以降低SGA_MAX_SIZE以避免这种内存消耗,但这并不能解释为什么会有这种不同的行为。
使用手动内存管理,所获取的windows server内存应该是不同oracle sga组件的总和,而不是立即使用完整的sga_max_size。
此版本的预期新行为还是错误?
问候。
专家解答
我的解释是这样的 (假设在所有情况下memory_max_target = 0和memory_target = 0)
1) 仅指定sga_target = 0
我们遵守任何设置,如果不存在,则使用默认值
2) 仅指定sga_target = n
我们遵守任何设置,我们将消耗最多 'n'
3) sga_target = n,sga_max_size = NN
如果平台支持动态增长到sga_max_size *,我们将从 'n' * 开始。但是,如果不能,我们必须将sga_max_size * 无论如何 * 预先保留到oracle实例中,因此不使用它是没有意义的。
例如
1) 仅指定sga_target = 0
我们遵守任何设置,如果不存在,则使用默认值
2) 仅指定sga_target = n
我们遵守任何设置,我们将消耗最多 'n'
3) sga_target = n,sga_max_size = NN
如果平台支持动态增长到sga_max_size *,我们将从 'n' * 开始。但是,如果不能,我们必须将sga_max_size * 无论如何 * 预先保留到oracle实例中,因此不使用它是没有意义的。
例如
init.ora v1 =========== db_name="basic" compatible=12.2.0 diagnostic_dest=c:\oracle memory_max_target=0 memory_target=0 audit_file_dest="c:\oracle\admin\basic\adump" audit_trail=db -- pga_aggr例如ate_target=400m db_cache_size=3G sga_target=0 SQL> startup nomount pfile=c:\temp\init.ora ORACLE instance started. Total System Global Area 3472883712 bytes Fixed Size 8752664 bytes Variable Size 234881512 bytes Database Buffers 3221225472 bytes Redo Buffers 8024064 bytes init.ora v2 =========== db_name="basic" compatible=12.2.0 diagnostic_dest=c:\oracle memory_max_target=0 memory_target=0 audit_file_dest="c:\oracle\admin\basic\adump" audit_trail=db -- pga_aggr例如ate_target=400m db_cache_size=3G sga_target=0 sga_max_size=8G SQL> startup nomount pfile=c:\temp\init.ora ORACLE instance started. Total System Global Area 8589934592 bytes Fixed Size 8767392 bytes Variable Size 5351934048 bytes Database Buffers 3221225472 bytes Redo Buffers 8007680 bytes复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
592次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
556次阅读
2025-04-18 14:18:38
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
479次阅读
2025-04-08 09:12:48
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
470次阅读
2025-04-20 10:07:02
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
456次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
429次阅读
2025-04-22 00:13:51
Oracle 19c RAC更换IP实战,运维必看!
szrsu
428次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
413次阅读
2025-04-17 17:02:24
火焰图--分析复杂SQL执行计划的利器
听见风的声音
357次阅读
2025-04-17 09:30:30
3月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
355次阅读
2025-04-15 14:48:05