暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle windows server的不合理内存消耗等于12.2.0.1中的SGA_MAX_SIZE (使用手动MM)

askTom 2017-09-04
267

问题描述

嗨,

我刚刚安装了最新的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实例中,因此不使用它是没有意义的。

例如

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论