No se puede establecer MEMORY_TARGET para Oracle 11.2


2

Estoy intentando configurar una instalación de Oracle en una máquina de desarrollador (Windows 7 Professional 64bit).

La máquina tiene 16 GB de RAM y me gustaría configurar MEMORY_MAX_TARGET a 8 g pero tengo MEMORY_TARGET configurado a 4 g de forma predeterminada porque es suficiente para la mayoría del trabajo realizado en esa máquina.Pero en caso de que necesite más memoria, puedo cambiar su tamaño dinámicamente.

Sin embargo, Oracle no me deja configurar MEMORY_TARGET en 4G:

Aquí está mi configuración actual:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0  Production
TNS for 64-bit Windows: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 - Production

SQL> show parameter 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 8G
memory_target      big integer 0
parallel_servers_target    integer  64
pga_aggregate_target     big integer 250M
sga_target       big integer 0

SQL> show parameter policy

NAME         TYPE  VALUE
------------------------------------ ----------- ------------------------------
parallel_degree_policy    string  MANUAL
workarea_size_policy     string  AUTO

Ahora cuando trato de correr

SQL> ALTER SYSTEM SET MEMORY_TARGET=4G scope=both;
ALTER SYSTEM SET MEMORY_TARGET=4G scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least
6432M

No entiendo por qué MEMORY_TARGET no se puede configurar en 4G?Por lo que sé, no puede exceder memory_max_target, pero 4G es claramente menor que 8G (¿y de dónde viene el 6432M?)

According to the manual esto debería ser posible.Además, no pude configurar PGA_AGGREGATE_TARGET a cero, incluso si el manual afirma que esto es posible.

¿Que me estoy perdiendo aqui?

  0

Puede haber varias razones.Por ejemplo, faltan páginas grandes (grandes) en el nivel del sistema operativo.Compruebe alert.log, tal vez encuentre algún error de nivel de sistema operativo allí.Recuerdo que en 11gR1 no era posible simplemente porque había un error en Oracle, nunca probaron esta opción con más de 2 GB de RAM. 07 oct. 132013-10-07 08:12:51

  0

@Ivan: I * can * set 'memory_max_target' a 8GB sin problemas, solo puedo * not * set' memory_target' a nada menos que eso (y estoy usando 11gR2) 07 oct. 132013-10-07 08:33:32

+1

Tenga en cuenta que el objetivo SGA/PGA, así como otros parámetros, no se desactivan cuando se usa memory_target.Todavía representan un valor "mínimo" para el parámetro.Por lo tanto, incluso si utiliza la administración automática de memoria, debe asignar manualmente al menos el 40% de la RAM a las regiones de memoria.Intente verificar los parámetros como el tamaño del área de clasificación, el caché del búfer, sga, pga.Si estos valores superan los 4 GB, entonces tienes una explicación. 07 oct. 132013-10-07 09:13:29

  0

@Ivan: 'sga_target' se establece en 0 (como se puede ver en la salida) en cuanto a' pga_aggregate_target' No puedo configurar eso en '0' (en contraste con el manual) para habilitar la administración automática de memoria. 07 oct. 132013-10-07 09:30:27

  0

y qué parámetros como sort_area_size, sort, sorm_area_retained_size, db_cache_size y todos los parámetros de db_ * chache *Intente crear pfile desde spfile, elimine todos los parámetros que no necesita e intente iniciar la base de datos con ese pfile.'startup pfile = '/tmp/pfile.ora'' 07 oct. 132013-10-07 09:41:25

3

Primero mira qué otros parámetros están configurados:

CREATE pfile='pfile.txt' FROM spfile;

¿Es posible que db_cache_size, shared_pool_size, sga_target u otros parámetros relacionados con la memoria estén configurados en no cero?Recuerde que al usar AMM esos parámetros especifican la memoria mínima asignada para un grupo en particular.Por lo tanto, si sga_target es de 6 GB, no se le permitirá establecer memory_target en 4 GB.

También la suma de las variables internas __sga_target, __db_cache_size, etc. puede ser más que su valor especificado de 4GB.

Si ve esos síntomas, puede limpiar pfile bounce Oracle con pfile y volver a crear spfile.En el mismo paso, también puede configurar PGA_AGGREGATE_TARGET a cero.

STARTUP pfile='pfile.txt'
CREATE spfile from pfile='pfile.txt';