您的位置:首页 > 数据库 > Oracle

Oracle 11gR2 联机文档中关于内存管理的新特性

2012-01-18 16:42 351 查看
Oracle 11gR2 联机文档中关于内存管理的新特性

If you did not enable automatic memory management upon database creation (either by selecting the proper options in DBCA or by setting the appropriate initialization parameters for the
CREATE DATABASE
SQL statement), you can enable it at a later time. Enabling automatic memory management involves a shutdown and restart of the database.

To enable automatic memory management

Start SQL*Plus and connect to the database as
SYSDBA
.

Calculate the minimum value for
MEMORY_TARGET
as follows:

Determine the current sizes of
SGA_TARGET
and
PGA_AGGREGATE_TARGET
by entering the following SQL*Plus command:

SHOW PARAMETER TARGET

SQL*Plus displays the values of all initialization parameters with the string
TARGET
in the parameter name.

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 0
memory_target                  big integer 0
pga_aggregate_target           big integer 90M
sga_target                     big integer 272M
Run the following query to determine the maximum instance PGA allocated since the database was started:


select value from v$pgastat where name='maximum PGA allocated';


Compute the maximum value between the query result from step 2b and
PGA_AGGREGATE_TARGET
. Add
SGA_TARGET
to this value.

memory_target = sga_target + max(pga_aggregate_target, maximum PGA allocated)


For example, if
SGA_TARGET
is 272M and
PGA_AGGREGATE_TARGET
is 90M as shown above, and if the maximum PGA allocated is determined to be 120M, then
MEMORY_TARGET
should be at least 392M (272M + 120M).Choose the value for
MEMORY_TARGET
that you want to use.

This can be the minimum value that you computed in step 2, or you can choose to use a larger value if you have enough physical memory available.

For the
MEMORY_MAX_TARGET
initialization parameter, decide on a maximum amount of memory that you would want to allocate to the database for the foreseeable future. That is, determine the maximum value for the sum of the SGA and instance PGA sizes. This number can be larger than or the same as the
MEMORY_TARGET
value that you chose in the previous step.

Do one of the following:

If you started your Oracle Database instance with a server parameter file, which is the default if you created the database with the Database Configuration Assistant (DBCA), enter the following command:

ALTER SYSTEM SET MEMORY_MAX_TARGET = nM SCOPE = SPFILE;

where n is the value that you computed in Step 4.

The
SCOPE
=
SPFILE
clause sets the value only in the server parameter file, and not for the running instance. You must include this
SCOPE
clause because
MEMORY_MAX_TARGET
is not a dynamic initialization parameter.

If you started your instance with a text initialization parameter file, manually edit the file so that it contains the following statements:

memory_max_target = nM memory_target = mM

where n is the value that you determined in Step 4, and m is the value that you determined in step 3.

Note:
In a text initialization parameter file, if you omit the line for
MEMORY_MAX_TARGET
and include a value for
MEMORY_TARGET
, 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
.

Shut down and restart the database.

If you started your Oracle Database instance with a server parameter file, enter the following commands:

ALTER SYSTEM SET MEMORY_TARGET = nM; ALTER SYSTEM SET SGA_TARGET = 0; ALTER SYSTEM SET PGA_AGGREGATE_TARGET = 0;

where n is the value that you determined in step 3.

Note:
The preceding steps instruct you to set
SGA_TARGET
and
PGA_AGGREGATE_TARGET
to zero so that the sizes of the SGA and instance PGA are tuned up and down as required, without restrictions. You can omit the statements that set these parameter values to zero and leave either or both of the values as positive numbers. In this case, the values act as minimum values for the sizes of the SGA or instance PGA.

See Also:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: