问题描述
1) 为什么以下每个rman通道分配的进程内存几乎都超过了 _ pga_max_size?
2) 为什么以下分配的总rman通道进程的内存可能远远超过全局pga_target?
2) 为什么以下分配的总rman通道进程的内存可能远远超过全局pga_target?
SQL>
SQL>
SQL> SELECT a.ksppinm AS parameter, c.ksppstvl AS VALUE, a.ksppdesc AS description, b.ksppstdf AS "Default?"
2 FROM x$ksppi a, x$ksppcv b, x$ksppsv c WHERE a.indx = b.indx AND a.indx = c.indx AND a.ksppinm IN
3 ('pga_aggregate_target','_pga_max_size','_smm_max_size','_smm_px_max_size') ORDER BY a.ksppinm;
PARAMETER VALUE DESCRIPTION Default?
--------------------- ------------------ -------------------------------------------------- ----------
_pga_max_size 209715200 Maximum size of the PGA memory for one process TRUE
_smm_max_size 102400 maximum work area size in auto mode (serial) TRUE
_smm_px_max_size 524288 maximum work area size in auto mode (global) TRUE
pga_aggregate_target 1073741824 Target size for the aggregate PGA memory consumed FALSE
by the instance
SQL>
SQL>
SQL> select component, current_size/1024/1024 "CURRENT_SIZE", min_size/1024/1024 "MIN_SIZE", max_size/1024/1024 "MAX_SIZE",
2 user_specified_size/1024/1024 "USER_SPECIFIED_SIZE", last_oper_type "TYPE" from v$memory_dynamic_components where rownum < 100;
COMPONENT CURRENT_SIZE MIN_SIZE MAX_SIZE USER_SPECIFIED_SIZE TYPE
---------------------------------------------------------------- ------------ ---------- ---------- ------------------- -------------
shared pool 656 528 656 0 GROW
large pool 416 416 416 0 STATIC
java pool 64 64 64 0 STATIC
streams pool 0 0 0 0 STATIC
SGA Target 3072 3072 3072 0 STATIC
DEFAULT buffer cache 1888 1888 1904 0 SHRINK
KEEP buffer cache 0 0 0 0 STATIC
RECYCLE buffer cache 0 0 0 0 STATIC
DEFAULT 2K buffer cache 0 0 0 0 STATIC
DEFAULT 4K buffer cache 0 0 0 0 STATIC
DEFAULT 8K buffer cache 0 0 0 0 STATIC
DEFAULT 16K buffer cache 0 0 0 0 STATIC
DEFAULT 32K buffer cache 0 0 0 0 STATIC
Shared IO Pool 0 0 0 0 STATIC
PGA Target 1024 1024 1024 1024 STATIC
ASM Buffer Cache 0 0 0 0 STATIC
16 rows selected.
SQL>
SQL>
SQL> select sid, spid, s.program, event, pga_used_mem,pga_max_mem from v$process p, v$session s
2 where addr = s.paddr and s.program like '%rman%' order by pga_used_mem desc;
SID SPID PROGRAM EVENT PGA_USED_MEM PGA_MAX_MEM
------- ------------------------ ------------------------------------------------ --------------------------------- ------------ -----------
1123 120921 rman@JCHXRST (TNS V1-V3) Backup: MML read backup piece 542165387 562245814
1057 120917 rman@JCHXRST (TNS V1-V3) Backup: MML read backup piece 542127691 562245814
1024 120915 rman@JCHXRST (TNS V1-V3) Backup: MML read backup piece 541392107 562753046
892 120907 rman@JCHXRST (TNS V1-V3) SQL*Net message from client 106517430 113455286
1090 120919 rman@JCHXRST (TNS V1-V3) Backup: MML restore backup piece 21407539 24588470
958 120914 rman@JCHXRST (TNS V1-V3) SQL*Net message from client 980323 1913014
6 rows selected.
SQL>
SQL> 专家解答
1) 限制在工作区域上-一个过程可以有许多这样的区域。例如,具有活动哈希连接和排序的SQL语句。
2) pga_aggregate_target是一个目标,而不是固定的上限。实际分配的金额可以大于此。MOS note 1392549.1有几个例子说明它是如何与其他存储器目标参数一起工作的。
2) pga_aggregate_target是一个目标,而不是固定的上限。实际分配的金额可以大于此。MOS note 1392549.1有几个例子说明它是如何与其他存储器目标参数一起工作的。
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




