QUESTION NO: 413
【题目示意】
此题考察关于AMM的知识。
【解析】
MEMORY_TARGET specifies the Oracle system-wide usable memory. The database tunes memory to the MEMORY_TARGET value, reducing or enlarging the SGA and PGA as needed.
MEMORY_TARGET should be set higher than or equal to the sum of the current sizes of the SGA and PGA.
In a text-based initialization parameter file, if you omit MEMORY_MAX_TARGET and include a value for MEMORY_TARGET, then the database automatically sets MEMORY_MAX_TARGET to the value of MEMORY_TARGET. If you omit the line for MEMORY_TARGET and include a value for MEMORY_MAX_TARGET, the MEMORY_TARGET parameter defaults to zero. After startup, you can then dynamically change MEMORY_TARGET to a nonzero value, provided that it does not exceed the value of MEMORY_MAX_TARGET.
Total memory usage can grow beyond the value of MEMORY_TARGET. For example, memory is allocated to PL/SQL tables and varrays regardless of the value of MEMORY_TARGET as long as memory is available at the operating system level.
In the Default value field, IMMEDIATE mode autotuning requests are necessary to avoid ORA-04031 errors. The DEFERRED andIMMEDIATE modes are reflected in the OPER_MODE column of the V$MEMORY_RESIZE_OPS view.
——摘自官方手册
只需要设置一个目标内存大小初始化参数( MEMORY_TARGET ) 和一个最大内存大小初始化参数( MEMORY_MAX_TARGET),数据库就会根据处理需求在SGA 与实例 PGA 之间动态交换内存。
自动内存管理是用两个初始化参数进行配置的:
MEMORY_TARGET:动态控制SGA和PGA时,Oracle总共可以使用的共享内存大小,这个参数是动态的,因此提供给Oracle的内存总量是可以动态增大,也可以动态减小的。它不能超过MEMORY_MAX_TARGET参数设置的大小。默认值是0。
MEMORY_MAX_TARGET:这个参数定义了MEMORY_TARGET最大可以达到而不用重启实例的值,如果没有设置MEMORY_MAX_TARGET值,默认等于MEMORY_TARGET的值。
使用动态内存管理时,SGA_TARGET和PGA_AGGREGATE_TARGET代表它们各自内存区域的最小设置,要让Oracle完全控制内存管理,这两个参数应该设置为0。
题414即将自动内存管理模式更改为ASMM。
【实验】
SQL> show parameters target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 404M
memory_target big integer 404M
parallel_servers_target integer 32
pga_aggregate_target big integer 0
sga_target big integer 0
可以看到所有的SGA_TARGET 和 PGA_TARGET都为0
SQL> show parameters shared
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
hi_shared_memory_address integer 0
max_shared_servers integer
shared_memory_address integer 0
shared_pool_reserved_size big integer 7549747
shared_pool_size big integer 0
shared_server_sessions integer
shared_servers integer 1
可以看到shared_pool 为0,所以题413只有D正确。
【小结】
AMM 的引入使得Oracle 内存管理更加灵活多样。 组合出来有 5 种内存管理形式:
自动内存管理 ;
自动共享内存管理 ;
手工共享内存管理 ;
自动 PGA 管理 ;
手动 PGA 管理 。
【答案】D
相关参考
http://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams143.htm#REFRN10285
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29438052/viewspace-1079174/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29438052/viewspace-1079174/