Nvidal’s Blog

Just another WordPress.com weblog

Manejo de memoria 11G (New Features)

 Manejo de memoria en 11G

Oracle 10g introduce un cambio en el uso de la memoria, la separación del SGA y el PGA como estructura de memoria independiente y la configuración automática  en las áreas de SGA (ASMM). Esto caracterizo sin dudas  un gran avance.  La memoria compartida SGA contiene información y datos de control de una instancia, comprendido por los procesos server y lo procesos de backgroud, y el PGA, que es una región de memoria no compartida que contiene información y data de control de los procesos server. La versión 11G release 2 nos trae un manejo totalmente automático de la memoria SGA y PGA (AMM) y no solo del SGA (ASMM). aunque sigue soportando la opción de manejo manual de la memoria y configuración del manejo automático de memoria compartida  SGA.

El manejo de la memoria envuelve mantener el tamaño óptimo de la instancia de oracle según la  demanda de los cambios en la base de datos, el manejo de la memoria configurada manualmente se convierte en una configuración estática, si la instancia necesita más memoria para cualquiera de su estructura la misma no cambia, todo lo contrario cuando tenemos una configuración automática en donde el valor de la memoria se ajusta a los requerimientos de la instancia, si hay memoria disponible, oracle puede aumentar cualquiera de las áreas que demanden mas memoria e igualmente puede reducir su tamaño si los requerimientos no demandan toda la memoria configurada el SGA y PGA.

La mejor forma de manejar la memoria de una instancia es permitir a la instancia de oracle manejarla automáticamente y optimizarla por ti. Con solo definir el parámetro MEMORY_TARGET y opcionalmente MEMORY_MAX_TARGET. La instancia optimiza el tamaño de la memoria, redistribuye memoria a requerimiento entre el SGA y el PGA. Como el manejo de la memoria es dinámico, puedes cambiarla en cualquier momento sin reiniciar la base de datos. El tamaño máximo (MEMORY_MAX_TARGET) sirve como el tamaño limite así que no puedes definir este tamaño demasiado alto y si el mismo no es definido será igual a MEMORY_TARGET.

Definiendo el Manejo de Memoria automático envuelve bajar y subir la base de datos.

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

2. Calculate the minimum value for MEMORY_TARGET as follows:

a. 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

b. 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’;

c. 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).

3. 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.

4. 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.

5. 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.

6. Shut down and restart the database.

See Chapter 3, “Starting Up and Shutting Down” on page 3-1 for instructions.

7. 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;

Monitoring and Tuning Automatic Memory Management:

select * from v$memory_target_advice order by memory_size;

(Continuara …)

septiembre 21, 2009 - Posted by | Database, Oracle

1 comentario »


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: