Gestión de la instancia
Gestión de los argumentos de inicialización
1. Modificar los argumentos de inicialización
a. Tipos de argumentos
Los argumentos se pueden clasificar en dos categorías:
-
argumentos dinámicos;
-
argumentos estáticos.
Los argumentos dinámicos se pueden modificar usando una sentencia SQL mientras que la instancia esté en funcionamiento. Según el caso, el argumento puede modificarse a nivel de sesión y/o de sistema (para todas las sesiones). A nivel de sistema, la modificación puede ser inmediata (se aplica a las sesiones actuales) o diferida (solo se aplica a las sesiones futuras).
Los argumentos estáticos no se pueden modificar dinámicamente mientras que la instancia esté en funcionamiento; hay que modificar el valor del argumento en el archivo de argumentos y volver a arrancar la instancia.
Las columnas ISSES_MODIFICABLE e ISSYS_MODIFICABLE de la vista V$PARAMETER dan información del tipo de argumento. La columna ISSES_MODIFICABLE vale TRUE o FALSE dependiendo de si el argumento es modificable o no, a nivel de la sesión. La columna ISSYS_MODIFICABLE vale FALSE si el argumento no es modificable a nivel del sistema y DEFERRED o IMMEDIATE dependiendo de si es modificable en diferido o inmediatamente.
Los diferentes argumentos se describen en la documentación Oracle® Database Reference.
b. Las sentencias SQL ALTER SYSTEM y ALTER SESSION
Las sentencias SQL ALTER SESSION y ALTER SYSTEM permiten modificar dinámicamente el valor de los argumentos de inicialización, respectivamente a nivel de la sesión y del sistema.
Sintaxis simplificada:
ALTER SESSION SET argumento = valor [...];
ALTER SYSTEM SET argumento = valor [...] [ COMMENT = 'texto' ]
[ DEFERRED ] [ SCOPE = MEMORY | SPFILE | BOTH ];
Opciones:
argumento |
Nombre del argumento. |
valor |
Valor asignado al argumento. |
COMMENT = ’texto’ |
Comentario asociado a la modificación del argumento. Se incluye en el archivo de argumentos del servidor, si este último es el destino de la modificación (consulte la cláusula SCOPE); visible en la columna UPDATE_COMMENT de la vista V$PARAMETER si la memoria es el destino de la modificación (consulte la cláusula SCOPE). |
DEFERRED |
Si se incluye, indica que la modificación solo afecta a las futuras sesiones, no a las actualmente conectadas. Solo tiene sentido... |
Gestión dinámica de la memoria
1. Aspectos principales
Desde Oracle9i, la SGA y la PGA son dinámicas. Se pueden modificar dinámicamente mientras la instancia está funcionando, es decir, es posible aumentar o disminuir su valor sin tener que parar la base de datos. Adicionalmente, desde Oracle10g la memoria compartida se puede administrar automáticamente y desde Oracle11g la totalidad de la memoria (SGA y PGA) también se puede (consulte la sección La instancia del capítulo Las bases de la arquitectura Oracle).
Varios argumentos relativos a la gestión de la memoria (PGA o SGA) pueden modificables dinámicamente mediante la sentencia SQL ALTER SYSTEM:
-
MEMORY_TARGET
-
SGA_TARGET
-
DB_CACHE_SIZE y eventualmente los diferentes argumentos DB_nK_CACHE_SIZE (n con valores 2, 4, 8, 16 o 32)
-
SHARED_POOL_SIZE
-
LARGE_POOL_SIZE
-
JAVA_POOL_SIZE
-
STREAMS_POOL_SIZE
-
RESULT_CACHE_MAX_SIZE
-
PGA_AGGREGATE_TARGET
-
PGA_AGGREGATE_LIMIT
Lo único que no se puede modificar dinámicamente es el tamaño de la Redo Log Buffer (argumento LOG_BUFFER, aunque su valor por defecto generalmente es suficiente).
El tamaño máximo de la memoria de la instancia se define mediante el argumento MEMORY_MAX_TARGET y el tamaño máximo de la SGA mediante el argumento SGA_MAX_SIZE. Estos dos argumentos no son dinámicos y se calculan, por defecto, al inicio de la instancia si no se definen en el archivo de argumentos.
Desde la versión 12c, el tamaño máximo de la PGA se define mediante el argumento PGA_AGGREGATE_LIMIT. Este argumento es dinámico y se calcula por defecto al inicio de la instancia si no se define en el archivo de argumentos. El valor por defecto es igual al mayor de los valores 2 x PGA_AGGREGATE_TARGET y PROCESSES x 3 MB, con un mínimo de 2 GB (de hecho 1976 MB) y un máximo igual al 120% de la memoria física del servidor, menos el tamaño total de la SGA. Oracle recomienda no asignar a este argumento un valor inferior al valor por defecto. Si el argumento se modifica para la instancia en curso y el nuevo valor es inferior al valor por defecto, se produce un error.
Ejemplo:
ORA-02097: el argumento no se puede modificar, porque el valor indicado
no es válido
ORA-00093: pga_aggregate_limit debe estar comprendido entre 1976M y 100000G
Por el contrario, no se produce ningún error si el argumento...